在 Azure api 管理中使用身份验证管理身份标记时持有者令牌不完整

Incomplete bearer token when using authentication-managed-identity tag in azure api management

我一直试图通过 azure API 管理公开一个 API,但我不知道我做错了什么。情况是这样的:

我不确定在哪里可以指定范围。如果我使用完整范围的 uri (api://guid/access.api.management),它将在尝试获取不记名令牌时失败(名为 api 的资源主体://guid/access.api.management 未在租户中找到)。 我什至尝试将 Owner 角色添加到 AppService 的 APIM Identity。

也许我没有正确使用它,我在使用 Azure 云和 API 管理方面还很陌生,所以欢迎提出任何建议。 谢谢。

您公开了受 Azure 保护的 api,目前您有一个 api 应用程序。接下来,您需要创建另一个代表客户端的应用程序,然后将客户端应用程序添加到api应用程序

接下来,转到客户端应用程序

  • 在 'API permissions' 下单击 'Add permission',然后单击“我的 API”选项卡。
  • 找到您的 api 应用程序和 select 合适的范围。
  • 点击'Add permissions'。
  • 为您的 API 授予管理员许可。

接下来,您需要使用auth code flow获取访问令牌,这需要您登录用户并获取授权码,然后使用授权码兑换访问令牌。

1.Request浏览器中的授权码。

https://login.microsoftonline.com/{tenant id}/oauth2/v2.0/authorize?
client_id={client app client id}
&response_type=code
&redirect_uri={redirect_uri}
&response_mode=query
&scope=api://{api app client id}/{scope name}
&state=12345

2.Redeem令牌。

解析token:

我设法使用客户端凭据流并将客户端机密存储在密钥保管库中使其正常工作。