gpt4 book ai didi

由于附加了 "api://",Azure AD 受众无效

转载 作者:行者123 更新时间:2023-12-02 23:02:04 25 4
gpt4 key购买 nike

我有两个 Azure Daemon 应用程序。 应用 A应用 B

App B 按预期工作。我将 /oauth2/v2.0/token 称为访问 token 。然后我解码 token 并提取角色。

App A 没有..当我解码并验证 token 时,它显示“无效受众”。

当我使用 jwt.ms 查看 token 时,不同之处在于 App Aapi:// 放入 aud部分.. 而 App B 则不是。

例如..

应用程序 A:{ "aud":"api://3srlk3j..."}

应用程序 B: { "aud":"323f4lk2..."}

是什么导致一个人为其中一个添加 api:// 而不是另一个?

最佳答案

audience的值也由manifest文件中的accesstokenacceptedversion控制。当您解码 token 时,您可以检查发行者是否有 v1 或 v2 端点

"iss": "https://login.microsoftonline.com/xxxxx/v2.0",

例如,我有 v2 端点,因此 list 中的 accesstokenacceptedversion 必须设置为 2,默认情况下可能为 null 或 1。

"accessTokenAcceptedVersion": 2,

因此,请为您的网络应用程序 A 检查相同的内容并进行相应设置。(同时为网络应用程序 B 检查相同的内容),然后尝试生成 token 。

enter image description here

此外,如果仅上述方法无法解决错误,则问题可能出在 Web API 的配置数据上。当我们说 ClientId 时,它是“公开 API”选项下的值,其中显示“应用程序 ID URI”根据您请求访问 token 的方式, token 的受众可能是 API 的客户端 ID 或应用程序 ID URI。

enter image description here

在此处公开 API 下,它的应用程序 ID Uri 为 api://xxxxx,必须在应用程序的应用程序设置中将其设置为客户端 ID。

 "AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Domain": "myportal.onmicrosoft.com",
"TenantId": "mytenant-guid",
"ClientId": "api://xxxxx"
},

因此,请检查两个应用程序(A 和 B)中的匹配情况及其应用程序注册中各自的应用程序 ID URI。

关于由于附加了 "api://",Azure AD 受众无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69747025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com