【问题标题】:Want to change incoming request to identity or openIDConnect想要将传入请求更改为身份或 openIDConnect
【发布时间】:2020-09-22 00:51:34
【问题描述】:

我从 Microsoft Docs 中看到,他们在策略中仅提供这 3 个基本、证书和 MSI。 https://docs.microsoft.com/en-us/azure/api-management/api-management-authentication-policies#AuthenticationPolicies

这是否意味着我无法完成 OIDC?

【问题讨论】:

    标签: azure asp.net-core oauth azure-api-management azure-policy


    【解决方案1】:

    简短回答:如果您使用后端 API 更改 API 使用者的身份验证,API 管理不会发生任何变化。

    下面给出了解释身份验证策略如何与 API 消费者身份验证无关的长答案。

    基本概念

    API 管理位于您的 API 和使用者之间。

    从术语的角度来看,在这种情况下,您的 API 称为后端 API。 Frontend API是API管理的URL,可以分享给你的消费者。

    关于 API 管理,请参阅 this page for further basic terminology

    在我看来,有两个不同的问题:一个是关于消费者 OAuth 身份验证的问题,另一个是关于需要在 APIM 中配置哪些身份验证策略的问题。

    消费者身份验证

    因此,如果您希望您的消费者使用 JWT 身份验证或 OAuth 身份验证进行身份验证,则流程很简单。消费者将从身份服务获取身份验证令牌,然后使用该令牌调用您的 API。

    只要您不使用 API 管理策略对其进行修改,它就应该可以工作。 API 管理不需要知道权限或有关权限的任何其他详细信息。

    APIM 身份验证策略

    根据您的设计,您可以选择后端 API(即您在 APIM 中托管的 API)是否应具有验证前端 API 的逻辑 - 以确保只有已知方在调用您的 API。

    根据documentation,可以配置:

    • 基本身份验证策略,并在每次向后端 API 请求时发送用户名和密码
    • 证书身份验证策略并随每个请求向后端 API 发送证书指纹
    • 使用 Azure AD 身份验证的托管标识。

    所有这三个策略只是帮助您的后端 API 确保调用者的身份(即本例中的 APIM Fronend API)。这与消费者身份验证和 OAuth 无关。

    例如。您可以设置您的 API,使消费者需要使用 Facebook 身份验证进行身份验证。此外,您可以通过证书身份验证来识别只有有效的 APIM 实例将消费者请求从前端 API 重定向到后端 API。

    希望这可以澄清。

    【讨论】:

    • 我认为答案仍然相关。如果您想调用因其他身份验证而受到保护的任何第三方 API,您应该从代码中调用它,而不是在 APIM 中配置任何内容,因为 APIM 策略只与您的后端 API 相关。 APIM 身份验证策略仅适用于 APIM 与您的 API 之间的通信,不适用于第三方 API。希望这可以澄清。
    【解决方案2】:

    正如article所说:

    如果您的后端 API 已经使用任何平台使用 OAuth2.0 进行保护,则 API 使用者应将 Authorization 标头传递给 API 管理。 您无需在 API 管理中添加任何策略。 标头将由 API 使用者发送,API 管理将相同的标头发送到后端 API

    使用基本身份验证和set header manually

    <authentication-basic username="username" password="password" />
    <set-header name="Authorization" exists-action="override">
       <value>@("Bearer " + (string)context.Variables["token"])</value>
    </set-header>
    

    【讨论】:

      猜你喜欢
      • 2015-07-25
      • 2018-03-11
      • 1970-01-01
      • 2016-01-04
      • 1970-01-01
      • 2014-04-28
      • 1970-01-01
      • 2021-12-21
      • 2021-05-28
      相关资源
      最近更新 更多