我创建了一个新的应用程序注册,并为Application.Read.All和User.Read.All设置了作用域。我将一个自定义作用域公开为access_as_user。使用v2令牌终结点仍然提供v1令牌,这是现在的主要问题。
v1令牌端点:https://login.microsoftonline.com/tenantid/oauth2/token
v2令牌端点:https://login.microsoftonline.com/tenantid/oauth2/v2.0/token
两个端点都提供相同版本的令牌,即版本1.0为什么会这样?如果我注册了多租户应用程序,那么它将向两个端点提供版本2.0的令牌。
我的要求是为单租户应用程序获得v2.0令牌。有什么方法可以实现这一点吗?
1条答案
按热度按时间i7uaboj41#
我尝试在我的环境中重现相同的结果,结果如下:
我注册了一个单租户应用程序,并授予了API权限,如下所示:
当我检查此应用程序的清单时,* 接受的令牌版本 * 为空,如下所示:
我通过Postman使用
v2.0
标记端点为自定义范围生成了标记,如下所示:回应:
当我在jwt.ms中解码上述令牌时,令牌版本为1.0,如下所示:
要获取v2.0令牌,您需要更改应用程序的清单,如下所示:
指令集
当我再次生成令牌并对其进行解码时,我得到的令牌版本为2.0,如下所示:
在您的情况下,请在清单文件中将
accessTokenAcceptedVersion
更改为2,然后再次生成令牌。