我在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
。
如何获得刷新令牌?
3条答案
按热度按时间kiayqfof1#
您部分正确,只有在您请求
offline_access
范围 * 并且 * 您使用authorization_code
授权流时,您才会收到refresh_token
。当使用
implicit
授权时,刷新令牌不可用,当使用client_credentials
授权时,刷新令牌也是不必要的。当使用client_credentials
授权时,用户没有经过身份验证,因此不需要“刷新”令牌,因为您可以在需要时简单地请求新令牌。kqhtkvqz2#
不需要
refresh_token
。只要管理员同意未被撤销,就可以在需要时请求新的
access_token
。pkln4tw63#
如果你想得到
refresh_token
,这是一个长期的令牌,你可以把offline_access
附加到你的作用域中。或者,您也可以在作用域上使用
basic
,因为它包含offline_access
。