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

Cow*_*org 5 azure oauth-2.0 asp.net-web-api azure-active-directory

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

为了获取访问令牌,客户端应用程序向此 https://login.microsoftonline.com/{tenant}/oauth2/token发出POST

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

这就是他们得到的

"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"
Run Code Online (Sandbox Code Playgroud)

该令牌工作正常,而且似乎永远不会过期。

juu*_*nas 6

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

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