使用刷新令牌
生成访问令牌时出现invalid_grant
错误
POST https://login.microsoftonline.com/common/oauth2/v2.0/token
响应
{
"error": "invalid_grant",
"error_description":
"AADSTS50173: The provided grant has expired due to it being revoked. The user might have changed or reset their password. The grant was issued on '2018-06-13T23:20:02.9860000Z' and the TokensValidFrom date for this user is '2018-06-15T17:21:11.0000000Z'\r\nTrace ID: 4237d0b8-51fe-43c2-9b5c-ca9148175400\r\nCorrelation ID: d192091b-6277-4ef9-859a-87ba7f87491a\r\nTimestamp: 2018-06-18 07:22:59Z",
"error_codes": [50173],
"timestamp": "2018-06-18 07:22:59Z",
"trace_id": "4237d0b8-51fe-43c2-9b5c-ca9148175400",
"correlation_id": "d192091b-6277-4ef9-859a-87ba7f87491a"
}
要求用户更改密码,密码已更改。即使在更改密码后也会看到此错误。在这种情况下,刷新令牌是否会变为无效?
答案 0 :(得分:2)
答案 1 :(得分:1)
环境:Office 365-Okta-本地Active Directory。
错误消息:
提供的授权由于已被撤消而过期,因此需要新的身份验证令牌。用户可能已更改或重置了密码。授予是在'{authTime}'发出的,此用户的TokensValidFrom日期(令牌无效)是'{validDate}'。
解决方法:
您需要做的就是暂时将用户的UserPrincipalName
更改为托管域的密码,更新密码,然后再将UserPrincipalName
更改为联合域。
第一步是您需要获取用户的ObjectId
和UserPrincipalName
。
运行此命令以获取ObjectId
和用户的UserPrincipalName
:
Get-AzureADUser -SearchString pat.doe
现在,运行以下命令将UPN更改为托管域:
Set-AzureADUser -ObjectId 11bb4111-11a0-1114-8501-111180bf51d3 -UserPrincipalName pat.doe@onmicrosoft.com
接下来,使用以下命令更新密码:
Set-AzureADUserPassword -ObjectId 11bb4111-11a0-1114-8501-111180bf51d3
将UPN更改回联邦域。运行以下命令:
Set-AzureADUser -ObjectId 11bb4111-11a0-1114-8501-111180bf51d3 -UserPrincipalName pat.doe@contoso.com
就是这样。现在,在Okta或权威源(Active Directory)中重置密码。
答案 2 :(得分:0)
如果在使用 azure-cli 时遇到此错误,则可以通过以下方式解决:
az account clear
az login
发生这种情况是因为更改密码后,基于自己的密码的令牌将失效。然后,您需要清除帐户以再次登录。
更多信息here