【问题标题】:Azure AD OAuth2.0: I dont get a refresh tokenAzure AD OAuth 2.0:我没有获得刷新令牌
【发布时间】:2018-07-18 08:41:57
【问题描述】:

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

为了获取访问令牌,客户端应用程序对此进行 POST https://login.microsoftonline.com/{租户}/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"

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 啊哈,谢谢!但是令牌会过期吗? (我正在向我的客户写一条指令,需要知道这一点,如果是这样,api 将返回什么(当使用过期令牌调用时)?
    • 是的,默认情况下它们会在 1 小时后过期。 API 返回的内容取决于令牌过期时的配置方式。通常它们会返回 401。您可以在令牌响应中看到它的有效秒数 (expires_in),因此您可以根据需要自行跟踪。
    • 好的,我现在向邮递员提出了一个请求,将在一个多小时内尝试访问我的 api 并查看结果。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    • 2012-12-10
    • 2014-05-11
    • 2015-11-04
    • 2014-09-22
    • 2015-05-17
    • 1970-01-01
    相关资源
    最近更新 更多