【问题标题】:Does ADAL.js support the new Authorization code grant with PKCE extensions?ADAL.js 是否支持带有 PKCE 扩展的新授权代码授予?
【发布时间】:2019-08-22 03:53:45
【问题描述】:

根据https://oauth.net/2/grant-types/implicit/ 的新安全指南,不建议使用隐式流。由于ADAL.js使用了隐式流,会不会受到影响,新应用推荐使用ADAL.js隐式流吗?

【问题讨论】:

    标签: oauth-2.0 adal.js


    【解决方案1】:

    是的,我同意根据新指南,不建议使用隐式流程。目前,ADAL js 使用 OAuth 2.0 隐式流程,出于安全原因,它不返回刷新令牌(刷新令牌的生命周期比访问令牌长,因此在恶意行为者手中更危险)。

    它旨在在请求令牌的资源与客户端应用程序相同时返回 ID 令牌。返回 ID 令牌时,它由库缓存。 所以当我们使用 authenticationContext.acquireToken(resource, callback) 时,它允许应用程序静默获取令牌,而无需再次提示用户。 ADAL js 使用隐藏的 iframe 向 Azure AD 发出令牌请求。

    但是要使用 PKCE 流程,我们可以通过传递 code_challenge 以及正文中的其他参数来对 https://login.microsoftonline.com/tenant_id/outh2/authorize 端点进行 http post 调用,并获取授权码。并使用该代码并通过传递 code_verifier 以及正文中的其他参数来调用 https://login.microsoftonline.com/tenant_id/outh2/token 端点并获取令牌。

    如果您使用的是 SPA,并且没有后端组件或打算通过 JavaScript 调用 Web API,请使用 OAuth 2.0 隐式授权流程。 但是如果你有一个后端组件并且你正在使用后端代码中的一个 API,那么隐式流就不合适了。在这种情况下,您可以使用 OAuth2.0 身份验证代码授予流程或 OAuth2.0 客户端凭据授予流程,它提供了获取反映分配给应用程序本身权限的令牌的能力。

    【讨论】:

      猜你喜欢
      • 2020-08-23
      • 1970-01-01
      • 1970-01-01
      • 2020-11-25
      • 2019-05-03
      • 2023-03-27
      • 2019-02-04
      • 2020-01-31
      • 2021-03-24
      相关资源
      最近更新 更多