【问题标题】:Get token for any AAD user获取任何 AAD 用户的令牌
【发布时间】:2018-10-04 03:24:45
【问题描述】:

要求我为开发人员实现模拟,当然仅针对开发环境。我想知道是否可以在不知道密码的情况下为任何 AAD 用户请求令牌。我想要的流程是:

  1. 开发人员转到 Web 应用程序来选择他想要模拟的用户。
  2. Web 应用程序检查开发人员是否在 AAD 中。
  3. Web 应用程序会检查开发人员是否具有必要的模拟权限。
  4. Web 应用程序返回对开发人员选择的用户有效的令牌。
  5. 开发人员可以使用此令牌对 API 进行身份验证,并且在所有意图和目的上都是模拟用户。

也欢迎这种方法的任何好的替代方案。

【问题讨论】:

    标签: c# azure-active-directory


    【解决方案1】:

    不,您不能像这样冒充用户。 如果您知道他们的密码并且他们没有 MFA 等,则可以通过资源所有者密码凭据授予流程获取访问令牌。

    但是,如果您想以更好的方式做到这一点,您可以让您希望模拟的用户登录到您的应用程序。 为他们获取访问令牌 + 刷新令牌。 然后安全地存储刷新令牌。 现在,您可以随时使用刷新令牌以及应用程序的客户端凭据来获取该用户的令牌。 但是,刷新令牌可以并且确实会过期,例如,如果用户的密码被更改。 但这可以让你实现你想要的。

    【讨论】:

    • 在密码更改时刷新令牌到期之前,您一直拥有我。公司有一条规定,每个月都必须更改密码。由于要模拟的用户从来都不是开发人员,因此他们从不登录测试系统。我不能仅仅为了我们的心血来潮就要求他们每个月都登录。还有什么我可以做的吗?
    • 不,我不这么认为 :( 顺便说一下,您知道不建议使用此类更改规则,因为它们会导致密码错误吗?我知道您可能无法决定.
    猜你喜欢
    • 1970-01-01
    • 2020-03-08
    • 2019-04-18
    • 2019-04-11
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    相关资源
    最近更新 更多