我的目标是:我想从我的api中获取一个access_token。目前我正尝试使用客户端凭证流获取访问令牌:
而我成功地得到了回应:
但是这个响应没有任何作用,因为当我在GraphApi端点中使用access_token作为授权参数时,我得到一个错误响应,说我是missing scp or roles
参数。我在应用程序中定义了角色,并得到了管理员的批准。可能是什么问题?
下面是解码后的jwt access_token:
{
"aud": "a********************ed5",
"iss": "https://sts.windows.net/**********4f-d6b581dd3836/",
"iat": 1660825101,
"nbf": 1660825101,
"exp": 1660829001,
"aio": "E2ZgYPits***********g8R9TAA==",
"appid": "eabbd3*************da6990ed5",
"appidacr": "1",
"idp": "https://sts.windows.net/5a8f9d89-81da-4218-884f-d6b581dd3836/",
"oid": "77e***************8085325",
"rh": "0.AYEAiZ2PWtqBGEKIT9a1gd04NuDTu-rpzyZCiMRhXaaZDtWBAAA.",
"sub": "77e4***************48085325",
"tid": "5a8f9d89-8*****************581dd3836",
"uti": "nl-kk3T*******w2ePAA",
"ver": "1.0"
}
1条答案
按热度按时间lymnna711#
我尝试在我的环境中重现相同的结果,并得到以下结果:
我为Azure AD应用程序创建了一个名为**
DemoRole
**的应用程序角色,如下所示:我将该
DemoRole
分配给以下几个用户:现在,我生成了访问令牌,参数如下:
回应:
我破解令牌的时候,也无法获得如下角色:
要获取解码令牌中的**
roles
**声明,请确保添加自定义API权限并授予管理员许可,如下所示:转到您的应用程序-〉API权限-〉添加权限-〉我的API-〉您的应用程序名称-〉应用程序权限
x1c4d 1x指令集
在授予管理员许可后,我再次生成访问令牌,并在解码的令牌中获得**
roles
**声明,如下所示: