代码之家  ›  专栏  ›  技术社区  ›  Rhendar

Azure Active Directory令牌

  •  0
  • Rhendar  · 技术社区  · 6 年前

    我刚开始使用带有Web API的Azure Active Directory身份验证。现在,我的单页应用程序simple上的登录页面将用户引导到Microsoft登录页面,在该页面中输入他们的凭据,然后重定向回我的SPA。重定向后,访问令牌现在是URL的一部分。是否可以通过JSON而不是URL的一部分获取该令牌?这是一个安全风险,使令牌对用户可见吗?如果没有其他方法获得令牌,那么处理它的最佳方法是什么?我应该读取URL并从中提取令牌,然后重新将用户重定向到实际的网站吗?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Imran Arshad    6 年前

    您必须注意隐式流,令牌仍将在客户机站点(通常是本地存储)维护。因此,即使您将令牌隐藏在URL中,您仍将存储在客户端,这是您在SPA中必须管理的事情之一。您必须将令牌与每个HTTP请求一起发送到您的Web API,以便在该端进行身份验证。

    在隐式流中,令牌的使用寿命很短,您不能在较长的访问周期内发出刷新令牌。对于这种流,您需要使用官方库(adal.js)

    https://github.com/AzureAD/azure-activedirectory-library-for-js

    更多资源

    https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-implicit-grant-flow

        2
  •  1
  •   Mayuresh Jaiswal    6 年前

    您可以使用adal.js库获取令牌。有一个预先定义的函数,在AD身份验证后或在开始检查时,如果您已登录,则必须调用该函数,可以使用isauthenticated函数检查您是否已登录,并使用getaccesstoken函数在身份验证后获取令牌。