【问题标题】:How to get Refresh Token from Active Directory Access Token.?如何从 Active Directory 访问令牌中获取刷新令牌。?
【发布时间】:2019-11-06 03:17:56
【问题描述】:

我有一个 Angular 6+ 网络应用程序。网页通过 Microsoft ADAL 向 Azure Active Directory 发出请求,以使用户通过身份验证。身份验证用户的流程工作正常。用户从 Azure Active Directory 获取登录页面。身份验证成功后,我得到一个访问令牌 (JWT)。

我面临的问题是,令牌的到期时间为 1 小时。由于令牌到期,用户会在一小时后自动注销。为了避免这种情况,我正在尝试刷新令牌。

我阅读了以下 URL 并了解刷新令牌可用于刷新令牌。这是 OAuth 2.0 授权代码流程。

https://docs.microsoft.com/en-us/dotnet/api/microsoft.identitymodel.clients.activedirectory.authenticationcontext.acquiretokensilentasync?view=azure-dotnet

但是,在我实施的流程中,我没有看到在响应标头中发送了“refresh_token”。以下是我在响应标头中看到的值。

adal.expiration.key
adal.access.token.key
adal.session.state
adal.login.request.
appLanguage
adal.token.keys
adal.error
adal.error.description
adal.state.login
authToken
userid
module
adal.token.renew.status
adal.nonce.idtoken
adal.login.error
adal.idtoken

我在 SO 中写了很多文章和问题,但我不明白如果我让用户通过 Azure Active Directory 进行身份验证,我如何获得刷新令牌。

编辑:

我在 SO 中添加了以下类似的问题。由于该线程是在 2016 年编写的,因此我无法弄清楚如何设置其中提到的“身份验证设置”。

https://stackoverflow.com/questions/36320641/how-to-configure-azure-ad-to-enable-refresh-tokens

【问题讨论】:

    标签: azure-active-directory


    【解决方案1】:

    听起来您正在使用隐式授权流。该流中没有刷新令牌。刷新令牌的方式是通过重定向,这可以在隐藏的 iframe 中完成。如果需要,当您向 ADAL.js 或 MSAL.js 请求令牌时,ADAL.js 或 MSAL.js 会在后台为您进行刷新。隐式授权流程要求 AAD 中的用户会话在刷新时处于活动状态。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-25
    • 2019-09-09
    • 2018-02-17
    • 2021-08-25
    • 2017-03-22
    • 2021-08-13
    • 1970-01-01
    • 2015-01-08
    相关资源
    最近更新 更多