Microsoft Graph API - 无法刷新访问令牌

月桂树

我已经在https://apps.dev.microsoft.com注册了一个多租户应用程序,因为 Azure AD 应用程序中没有“管理员同意”提示。我们的应用程序需要管理员同意才能检索有关用户及其日历的信息。

我可以从与该应用程序注册时完全不同的租户那里获得管理员同意,并可以使用提供的访问令牌来检索所有必要的信息,但是显然一个小时后到期,因此我们需要脱机访问。

我曾尝试在https://login.windows.net/common/oauth2/token端点中使用tenantId 而不是“common” ,但是收到与下面相同的消息。

以下是json格式提交到token端点的数据(提交前在node内转换成编码格式):

{ grant_type: 'refresh_token', client_id: 'e5c0d59d-b2c8-4916-99ac-3c06d942b3e3', client_secret: '(redacted)', refresh_token: '(redacted)', scope: 'openid offline_access calendars.read user.read.all' }

当我尝试刷新访问令牌时,我收到一个错误:

{ "error":"invalid_grant", "error_description":"AADSTS65001: The user or administrator has not consented to use the application with ID 'e5c0d59d-b2c8-4916-99ac-3c06d942b3e3'. Send an interactive authorization request for this user and resource.\r\nTrace ID: 2bffaa08-8c56-4872-8f9c-985417402e00\r\nCorrelation ID: c7653601-bf96-46c3-b1ff-4857fb25b7dc\r\nTimestamp: 2017-03-22 02:17:13Z", "error_codes":[65001], "timestamp":"2017-03-22 02:17:13Z", "trace_id":"2bffaa08-8c56-4872-8f9c-985417402e00", "correlation_id":"c7653601-bf96-46c3-b1ff-4857fb25b7dc" }

即使使用标准同意,也会发生此错误。我还尝试使用 node-adal 库而不是原始 http 请求,这会产生完全相同的结果。

我注意到“offline_access”不是我能够在 MS 应用程序门户中设置的权限,但是我猜我得到刷新令牌的事实意味着我可以刷新访问令牌?

作为记录,以下是我用来查看我是否做错了什么的 node-adal 代码:

var self = this;

var authenticationContext = new AuthenticationContext('https://login.windows.net/common');
authenticationContext.acquireTokenWithRefreshToken(
    self.refreshToken,
    self.clientId,
    self.clientSecret,
    'https://graph.microsoft.com/',
    function(a) {
        console.log(a);
    }
);

感谢您在此刷新过程中获得的任何帮助!

Fei Xue - MSFT

请确保您用于刷新令牌的租户与您请求 access_token 的租户相同。

除非在以下情况下,刷新令牌请求对我来说效果很好:

  1. 使用Microsoft帐户从Protal注册应用
  2. 用户 1 在租户 1 中
  3. 将user1作为外部用户添加到tenant2
  4. 从tenant1请求access_token/refresh_token(OK)
  5. 尝试在请求中使用tenant1刷新令牌(OK)
  6. 尝试在请求中使用tenant2刷新令牌(相同的错误消息)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Microsoft Graph-用户API增量令牌

访问Microsoft Graph API的方法

刷新Microsoft Live API的OAuth访问令牌

为Microsoft Graph API获取有效的访问令牌

无法使用Microsoft Graph API访问共享点列表-

Microsoft Graph API不返回刷新令牌

如何从节点脚本获取Microsoft Graph API访问令牌?

Microsoft Graph API无法更新Excel文件

使用PHP从Microsoft Graph API获取访问令牌

Microsoft Graph API:省略用户访问令牌

Microsoft Graph API令牌验证失败

获取Java中Microsoft Graph API的令牌

Microsoft Graph API的访问令牌立即过期

microsoft-graph api:从图中的刷新令牌获取新的访问令牌,而无需重定向URL

Microsoft graph API:无法使用生成的访问令牌获取用户

无法使用Microsoft graph API获取照片

Microsoft Graph API-无法访问单个消息(异常)

访问令牌验证失败Microsoft Graph API

Microsoft Graph REST API无法写邮件

使用OAuthPrompt获取Microsoft Graph API的刷新令牌

使用访问令牌通过Microsoft Graph API与OneDrive进行交互

Microsoft Graph API-不接收刷新令牌

Azure AD Graph API无法访问Microsoft帐户

从 Microsoft Graph API 接收访问令牌但不接收刷新令牌

Microsoft Graph API:条件访问策略

如何使用 ajax 调用获取 Microsoft Graph API 访问令牌

无法获取 Microsoft Graph OAuth 访问令牌

无法成功验证来自 Microsoft Graph API 的访问令牌

在 Microsoft Graph API 中使用 MSAL 刷新令牌的正确实现是什么?