【问题标题】:Customize Azure AD token using Client Credential Grant Type使用客户端凭据授予类型自定义 Azure AD 令牌
【发布时间】:2020-05-13 20:10:42
【问题描述】:

我有一个 API api/GetPets 被多个客户端使用,这些客户端也是 API 的 ClientA, ClientB 具有相同的 Azure 客户端 ID *****

虽然 ClientA 进行身份验证并使用 api/GetPets ,但我想在令牌中获取客户端名称或以某种方式识别调用 API 的客户端。有什么解决方案可以解决这个问题吗?

【问题讨论】:

    标签: c# .net authentication azure-active-directory


    【解决方案1】:

    区分调用客户端应用程序的方法是它们使用不同的客户端 ID。

    如果要区分它们,则必须分别注册,使它们具有不同的客户端ID。

    【讨论】:

    • 考虑到移动到单独的客户端 ID 目前不是一个可行的选择,是否有任何其他解决方法来解决这个问题。自定义令牌,代表请求或其他东西。 @juunas
    • 令牌自定义是在应用注册级别完成的,因此会影响两个客户端,因为他们使用的是同一个客户端。代表包括用户信息,但应用程序声明将是相同的。
    【解决方案2】:

    @junnas 的回答是正确的,可能是最好的方法。我能想到的唯一其他方法是在 HTTP 请求上显式传递客户端名称,但是;这仅适用于 100% 受信任的客户端。否则,没有什么可以阻止任何具有有效身份验证令牌的客户端篡改 HTTP 请求上的客户端名称。如果客户端名称在签名的身份验证令牌 (JWT) 中,任何篡改都会被检测到并被阻止。

    【讨论】:

      猜你喜欢
      • 2019-12-03
      • 1970-01-01
      • 1970-01-01
      • 2020-11-18
      • 1970-01-01
      • 2019-06-16
      • 2020-02-25
      • 2017-03-11
      • 2021-04-10
      相关资源
      最近更新 更多