Azure 即使将accessTokenAcceptedVersion更改为2,Microsoft JWT iss也会设置为sts.windows.net

Azure 即使将accessTokenAcceptedVersion更改为2,Microsoft JWT iss也会设置为sts.windows.net,azure,azure-web-app-service,access-token,Azure,Azure Web App Service,Access Token,我创建了一个新的应用程序服务,并在manifest.json中将accessTokenAcceptedVersion设置为2,因为我正在寻找类似的v2令牌。但是,Microsoft生成的accessToken在解码时的iss值始终为sts.windows.net。我希望它是login.microsoftonline.com。请给我一些建议 这是我的实现: 这是我解码时的令牌: 请给出建议。请查看(仅在您共享的链接中): 资源始终拥有自己的令牌(那些具有audclaim的令牌)并且 唯一可以更

我创建了一个新的应用程序服务,并在manifest.json中将accessTokenAcceptedVersion设置为2,因为我正在寻找类似的v2令牌。但是,Microsoft生成的accessToken在解码时的iss值始终为sts.windows.net。我希望它是login.microsoftonline.com。请给我一些建议

这是我的实现:

这是我解码时的令牌:

请给出建议。

请查看(仅在您共享的链接中):

资源始终拥有自己的令牌(那些具有
aud
claim的令牌)并且 唯一可以更改其令牌详细信息的应用程序。这就是为什么 更改客户端的访问令牌可选声明不会 更改请求令牌时接收的访问令牌
user.read
,由Microsoft图形资源拥有

这意味着
accessTokenAcceptedVersion
设置应该在服务端应用程序注册中配置,而不是在客户端应用程序注册中配置

对于Microsoft Graph令牌,我们无法在服务端进行配置,因为Microsoft Graph应用程序注册由Microsoft正式管理

在客户端配置
accessTokenAcceptedVersion
不会将令牌版本更改为2。这是意料之中的

此功能主要用于调用自己的受AAD保护的web API,而不是Microsoft官方API


更新:

如果您想调用自己的API,您应该通过创建服务端应用程序注册,并在其中设置
accessTokenAcceptedVersion


这是的完整文档。

这是否意味着我需要创建两个appservices?一个用于UI,一个用于ApI?@a2441918您访问的令牌是调用Microsoft Graph。在这种情况下,您不需要为API创建应用程序注册,因为API是Microsoft Graph。@a2441918换句话说,我们无法将Microsoft Graph access令牌版本设置为2。但我不想调用Microsoft Graph?是默认的吗?我所需要做的就是将令牌作为承载身份验证发送到我的Api,并在Api上验证令牌,然后将OID与我的数据库进行比较。@a2441918是。两个应用程序注册。在服务端应用程序注册(API)中设置
accessTokenAcceptedVersion