3 azure audience azure-active-directory
我有两个 Azure 守护程序应用程序。App A和App B。
App B按预期工作。我调用/oauth2/v2.0/token访问令牌。然后我解码令牌并提取角色。
App A不..当我解码并验证令牌时,它显示“无效受众”。
当我使用 jwt.ms 查看令牌时,区别在于App A放入api://了该aud部分.. 而App B不是。
例如..
App A: { "aud":"api://3srlk3j..."}
App B:{“aud”:“323f4lk2...”}
是什么导致一个人为一个人添加api://而不是为另一个人添加?
Audience 的值还由清单文件中的 accesstokenacceptedversion 控制。\n解码令牌时,您可以检查颁发者是否具有 v1 或 v2 终结点
\n"iss": "https://login.microsoftonline.com/xxxxx/v2.0",\nRun Code Online (Sandbox Code Playgroud)\n例如,这里我有 v2 端点,因此清单中的 accesstokenacceptedversion 必须设置为 2,默认情况下可能为 null 或 1。
\n"accessTokenAcceptedVersion": 2,\nRun Code Online (Sandbox Code Playgroud)\n因此,请为您的网络应用程序 A 检查相同的内容并进行相应的设置。(同时为网络应用程序 B 检查相同的内容),然后尝试生成令牌。
\n\n此外,如果仅靠上述方法无法解决该错误,则问题可能出在 Web API 的配置数据上。当我们说 ClientId 时,它是“公开 API”选项下的值,其中显示“应用程序 ID URI\n根据您请求访问令牌的方式,令牌的受众可能是客户端 id 或应用程序 ID URI API 的。
\n\n这里公开一个 API,它的 App ID Uri 为 api://xxxxx,必须在应用程序设置中将其设置为客户端 ID。
\n "AzureAd": {\n "Instance": "https://login.microsoftonline.com/",\n "Domain": "myportal.onmicrosoft.com",\n "TenantId": "mytenant-guid",\n "ClientId": "api://xxxxx"\n },\nRun Code Online (Sandbox Code Playgroud)\n因此,请检查两个应用程序(A 和 B)中的匹配情况及其应用程序注册中各自的应用程序 ID URI。
\n| 归档时间: |
|
| 查看次数: |
1407 次 |
| 最近记录: |