Azure APIM OAuth 与 Duende 身份服务器集成

问题描述 投票:0回答:0

我发现了类似的线程,但没有关于 APIM OAuth 与 Duende Identity Server 集成的具体内容。我们希望 APIM 的功能类似于 Postman,您可以在其中设置授权参数(访问令牌 URL、clientId/clientSecret、范围),用户将能够生成令牌。

我们有:

  1. 使用 Postman,我们可以使用 clientId/clientSecret 从 Duende 获取令牌
  2. 我们可以在 APIM 中使用此令牌,方法是将其手动传递到值为“Bearer (tokenString)”的授权请求标头中
  3. 此 API 的所有 APIM 操作都可以使用此令牌直到到期

我们想要达到的目标:

  1. 使用 APIM,我们想使用 clientId/clientSecret 从 Duende 获取令牌。我们已将 OAauth 配置添加到 APIM,以模仿 Postman 中的授权设置。两者的 ClientId/ClientSecret 和范围是相同的。

Postman 身份验证参数

  • 将授权数据添加到:Request Headers
  • Header 前缀:Bearer
  • 授予类型:客户凭证
  • 访问令牌 URL:https://contoso.com/connect/token
  • 客户端身份验证:作为基本身份验证标头发送

APIM 授权参数

  1. 我们添加了一个入站 validate-jwt 政策如下:
    <inbound>
        <base />
        <validate-jwt header-name="Authorization" require-scheme="Bearer">
            <issuer-signing-keys>
                <key>/nD6MI5BtZAtfAViOExO3KDwoHKIaeoiuTqysVDECf2QI=</key>
            </issuer-signing-keys>
            <audiences>
                <audience>@(context.Request.OriginalUrl.Host)</audience>
            </audiences>
            <issuers>
                <issuer>https://contoso.com/connect/token</issuer>
            </issuers>
        </validate-jwt>
    </inbound>
  1. 用户应该能够通过传递 clientId/clientSecret 来使用 API 操作,但是每个使用 APIM OAuth 配置的请求都会以 401 Unauthorized 响应。

  2. 我认为 OAuth 在 APIM 中的设置方式存在问题。或者,APIM 是否会在到期后自动生成新令牌?当 Postman 中的令牌过期时,需要 UI 交互才能生成新令牌。这在 APIM Oauth 中如何工作?

oauth-2.0 azure-api-management duende-identity-server
© www.soinside.com 2019 - 2024. All rights reserved.