Azure AD OAuth2.0:我没有刷新令牌

时间:2018-07-18 08:41:58

标签: azure asp.net-web-api oauth-2.0 azure-active-directory

当客户端应用程序(例如使用我们的api的网页)连接到受Azure AD OAuth2.0保护的Web api

要获取访问令牌,客户端应用程序对此进行POST https://login.microsoftonline.com/ {tenant} / oauth2 / token

但是客户端应用程序没有获得刷新令牌。“客户端应用程序”场景中不需要吗?

这就是他们得到的

"token_type": "Bearer",
"expires_in": "3600",
"ext_expires_in": "0",
"expires_on": "1531906803",
"not_before": "1531902903",
"resource": "https://our-api.azurewebsites.net",
"access_token": "YtNGEzZi1hZGYyLTExNjU4N......rdFqQ"

令牌正常工作,它表示永不过期。

2 个答案:

答案 0 :(得分:3)

如果您获得的令牌带有客户端凭据(客户端ID +客户端密钥或证书),则不会获得刷新令牌。 在这种情况下,您始终可以仅使用应用程序的凭据获取新的访问令牌,因此不需要刷新令牌。

对于具有用户上下文的流,您将获得刷新令牌,因为您不能随意重复用户登录,而必须使用刷新令牌来获取新令牌。

答案 1 :(得分:0)

如果您看到说明文件,则说明:

  

刷新访问令牌:访问令牌是短暂的,必须在它们过期后刷新才能继续访问资源。   您可以通过向以下位置提交另一个POST请求来刷新access_token   / token端点,但是这次提供了refresh_token   代码。