【问题标题】:How to add authentication on Azure Web App using Authentication feature via Azure AD B2C?如何通过 Azure AD B2C 使用身份验证功能在 Azure Web App 上添加身份验证?
【发布时间】:2021-07-05 05:38:36
【问题描述】:

我想为使用 Azure AD B2C 在 Azure Web 应用上运行的 Web 应用程序添加身份验证。

为此,我遵循了以下步骤:

  1. 在 Azure AD B2C 上创建租户
  2. 添加应用注册和客户端密钥
  3. 添加用户流
  4. 从 Azure Web Apps 上的“身份验证”(左侧面板上),我选择 Microsoft 作为身份提供者,并根据前面步骤中获得的值提供配置。

但是当我访问 Azure Web Apps url 时,我并没有被重定向到登录页面,而是收到以下消息。

{"code":401,"message":"An error of type 'unauthorized_client' occurred during the login process: 'AADB2C90057: The provided application is not configured to allow the 'OAuth' Implicit flow.\r\nCorrelation ID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\nTimestamp: 2021-04-09 10:06:00Z\r\n'"}

另外,在识别提供者的编辑页面中,它说Application with ID xxxxxxxxxxxxxxxx not found in the current tenant. Tenant ID: yyyyyyyyyyyyyyyyy.

这显然意味着我在 Azure B2C 租户上注册的应用程序与 Azure Web Apps 所链接的应用程序不在同一个租户上。

我的问题是“如何通过 Azure AD B2C 使用其“身份验证”功能在 Azure Web App 上添加身份验证?”。 “身份验证”功能的 Microsoft 身份提供者是否仅支持与 Azure Web Apps 位于同一租户的客户端?

【问题讨论】:

    标签: azure azure-active-directory azure-ad-b2c azure-webapps


    【解决方案1】:

    转到Azure App Service-->在设置下点击Authentication AppService Authentication

    编辑身份验证设置并选择RequiresAuthentiction Authentication allow

    然后点击添加身份提供者并从列表中选择身份提供者 Select Provider

    选择身份提供者后,选择应用注册类型。 Microsoft itef 为前 2 个选项创建和注册应用程序注册 --> 如果您选择提供现有应用注册的详细信息,请按照以下步骤操作

    在 AAD 中创建应用注册 点击这个链接--https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal#register-an-application-with-azure-ad-and-create-a-service-principal

    1.填写Application Client Id,即App Registration ID,您将在创建App Registration

    2.提供可以在应用注册时创建的客户端密码

    3.Issuer url 将是 -- https://sts.windows.net/{tenant-id}/v2.0 (替换为您在里面的租户 ID{})

    4.允许的令牌受众将是 -- api://{Application-Client-Id}(替换为您在里面的应用程序客户端 ID{} ) Authentication 并点击添加

    5.最后的任务是添加Authentication scope 在 AAD 中转到您的 AppRegistration,然后点击 Authentication Authentication AAD

    1. 点击添加平台并选择Web

    7.选择后添加重定向URI 重定向 URI 将是 https://{appservice-name}.azurewebsites.net/.auth/login/aad/callback (替换为您在里面的应用服务名称{}) 并选择 ID 令牌 Rediret URL 点击配置

    【讨论】:

      【解决方案2】:

      如何使用“身份验证”在 Azure Web App 上添加身份验证 通过 Azure AD B2C 提供功能?

      根据您的错误,应该是您的应用程序没有启用隐式流造成的。因此,您需要在 Azure B2C 中启用它。

      1. 转到 Azure B2C 门户>应用注册>您的应用>身份验证。

      2.转到 Azure B2C 门户>应用程序(旧版)>您的应用程序。

      Microsoft 身份提供者是否仅提供“身份验证”功能 是否支持与 Azure Web 应用程序位于同一租户的客户端?

      是的。

      【讨论】:

      • 感谢它的工作!但是为什么我必须允许隐式流动?我可以使用访问代码授予而不是隐含流吗?
      • @hitochan 因为您可能试图在浏览器中获取id tokenaccess token,这是隐式流的一个功能。当然你也可以使用auth code flow,这需要你在浏览器中获取授权码。
      • @hitochan 您好,如果发布的答案解决了您的问题,请单击复选标记将其标记为答案。这样做可以帮助其他人找到他们问题的答案。见:meta.stackexchange.com/questions/5234/…
      • 我明白了,虽然我不记得在浏览器中更改设置以获取 id 令牌和访问令牌。无论如何,我会自己做更多的研究。非常感谢!
      • 我确认 access_token 已启用...非常感谢您的帮助。
      猜你喜欢
      • 2019-06-25
      • 1970-01-01
      • 2016-05-06
      • 1970-01-01
      • 1970-01-01
      • 2016-04-26
      • 1970-01-01
      • 2019-07-27
      • 2019-10-15
      相关资源
      最近更新 更多