oauth-2.0 Microsoft Graph API未返回刷新标记

3pmvbmvn  于 2022-10-31  发布在  其他
关注(0)|答案(3)|浏览(226)

我在https://apps.dev.microsoft.com上创建了一个应用
具有以下应用程序权限:
一个月一个月一个月一个月
下面是唯一一个让我能够订阅另一个租户上的另一个用户的通知的流程,如here所述

管理员同意

然后通过此URL成功授予管理员许可

https://login.microsoftonline.com/common/adminconsent?client_id=bbb35336-faee-4c10-84b4-34136634db41&state=1234&redirect_uri=https%3A%2F%2Fdashmeetings.com%2Fmicrosoft%2Foauth

获取访问令牌

然后从获取访问令牌

POST https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token

带标题

Content-Type=application/x-www-form-urlencoded

其中{tenant}是在回叫URL中返回的tenant的值,
和正文(具有键值对)

grant_type=client_credentials
client_id=bbb35336-faee-4c10-84b4-34136634db41
client_secret=xxx
scope=https://graph.microsoft.com/.default

这会传回存取Token,但不会传回重新整理Token。
我想这可能是因为没有请求offline_access
如何获得刷新令牌?

kiayqfof

kiayqfof1#

您部分正确,只有在您请求offline_access范围 * 并且 * 您使用authorization_code授权流时,您才会收到refresh_token
当使用implicit授权时,刷新令牌不可用,当使用client_credentials授权时,刷新令牌也是不必要的。当使用client_credentials授权时,用户没有经过身份验证,因此不需要“刷新”令牌,因为您可以在需要时简单地请求新令牌。

kqhtkvqz

kqhtkvqz2#

不需要refresh_token
只要管理员同意未被撤销,就可以在需要时请求新的access_token

pkln4tw6

pkln4tw63#

如果你想得到refresh_token,这是一个长期的令牌,你可以把offline_access附加到你的作用域中。
或者,您也可以在作用域上使用basic,因为它包含offline_access

相关问题