【问题标题】:Cant Authenticate Single Tenant Angular Application无法验证单租户 Angular 应用程序
【发布时间】:2021-10-20 17:35:03
【问题描述】:

我正在创建一个 Angular 应用程序,该应用程序应使用 MS Azure AD 单租户应用程序进行身份验证,该应用程序只能在一个组织中使用。以下是我尝试过的配置

auth: {
      clientId: 'MY_CLIENT_ID',
      //  authority: 'https://login.microsoftonline.com/MY_TENANT_ID',
      //authority: 'https://login.microsoftonline.com/MY_ORGANIZATION_DOMAIN',
      authority: 'https://login.microsoftonline.com/organizations',
      redirectUri: 'http://localhost:6735'
    }, 

以上所有的授权方式我都试过了。它转到 Microsoft 的登录页面,但在提供正确的凭据后,它使用 URL 中的一些代码重定向并且登录不会发生。

http://localhost:6735/#code=0.ASgAmOTRM_cEXkaKjvmSz2YuZyqUYHleyNlFoNYtQ5kOUEUAAAA.AQABAAIAAAD--DLA3VO7QrddgJg7WevrHDMc_BSj9GrzkrZl2zT2QVp1Hml8h7qs1PSWM_umvMyKRk5U0C7IbDSpdEpL9SGjWzBFHBXBXh10eLEioVh1N8-hXeNyfLJFSqXShYPooCX8UnlUnIQqgFhULy_o1f7ybLLbMELBomOnJZQKZuJoxj6UJgtERnAE1TZ5-nx4YkPHSrlOD5aYSF6Pziu2Xfh8UOMArIUMAoXe_RUoqULKSIHFsxXypPpCNDo1ddWsxId96BbDdPhHix2IWCuz3SNtKC6i_22qiQSxHJnT3NlcoxyMS0-9f9tSMSEOmrzCU0y5mbuw7-OGYPO8Na3juGParCuPQhE7ZJyXcwFkKodEdGs-C1U-f5Bc_imtik4B8x6sRB2pa-DOAueRQHsLdUUBQn6w5xRmZ97KKXxuL0A59EHbNhNu59EFoVJB6zTTT3hBHLFg7qL9g2nkfZLAlfpp9IfqnsoZVl9xT0CIbl7NvsRFnjpsyp6Sw4oFvyEHiXuRvKLkl3Jz8O56PJody2hHEeqXuQvnWbZ9nk00MPOvArQ7bKyoCusCPQQp64uoPSLW9G389a3ihHLiiNlzJik2dHWjez2wBpSPwZCOingPRi3Mtkh5pIbxfijejQmWZlXB_wf_GaNPYPGNRXYygeo-2OZ9koWDKhQ5S6GP5ktjGPfDtlh6EJNCHAIuuHbK2IN2vjbxdO4_YVLX1NKq0Hh51B4-zNdsiFlZuVsy5RyA3ZQZGsnR1NIKV_wm5jMmdDsgAA&client_info=eyJ1aWQiOiJlYzczZDQ5OS1iYzFiLTRhZWUtYjMyZi0xYjlmOTMyODRiNjAiLCJ1dGlkIjoiMzNkMWU0OTgtMDRmNy00NjVlLThhOGUtZjk5MmNmNjYyZTY3In0&state=eyJpZCI6IjY3YWVjYjVkLWE5YjUtNDBhMy1iZDE5LWRmYmNmNjcxNTkwZiIsIm1ldGEiOnsiaW50ZXJhY3Rpb25UeXBlIjoicmVkaXJlY3QifX0=&session_state=9e6ae9e7-45ae-4fee-b4b2-921f628093ec

【问题讨论】:

  • 对于单租户权限必须是--https://login.microsoftonline.com/MY_TENANT_ID。如果是 SPA,请检查您是否在门户中的应用注册中选择了 platfom 作为 SPA,并给出重定向 uri (-http:///localhost:4200/--) 或(--http:///localhost:6735/- -)(最后是斜线)并确保您在应用程序代码中配置了相同的 uri,或者只是(redirecturi:'/')。然后再试一次。

标签: azure azure-active-directory microsoft-graph-api


【解决方案1】:

请检查以下是否是您的解决方法

  1. 如果您的应用程序受众是单个租户,您必须先提供tenant id 的授权:

 auth: {
        clientId: 'your_client_id',
        authority: 'https://login.microsoftonline.com/{your_tenant_id}'
         }
        };
  1. 默认情况下,MSAL 配置为将重定向 URI 设置为运行它的当前页面。如果您希望在与运行 MSAL 的页面不同的页面上接收授权代码,您可以在配置中进行设置。使用的任何重定向 URI 都必须在门户注册中配置
  2. 如果是 SPA,请检查您是否在门户中的应用注册中选择了 platfom 作为 SPA,并检查清单文件中的 URI 类型为 Spa 。确保您没有在 azure 中配置多个平台(例如,同一 localhost uri 的 SPA 和 Web 应用程序)。
  3. 尝试在末尾添加 '/' 这样的重定向 uri:http://localhost:4200/ 或 http://localhost:6735/ 或 redirecturi:'/' 和确保您在应用程序代码中配置了相同的 uri,然后重试。
  4. 确保您的客户端 ID 和租户 ID 正确提供。本地主机可能在开发时使用。如果仍然无法使用,请在应用程序和门户中的重定向 uri 中配置 https 方案。

参考:

  1. AzureAD/microsoft-authentication-library-for-js (github.com)
  2. Quickstart: | Microsoft Docs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2021-02-12
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    相关资源
    最近更新 更多