如何通过 Azure AD B2C 使用身份验证功能在 Azure Web App 上添加身份验证?
Posted
技术标签:
【中文标题】如何通过 Azure AD B2C 使用身份验证功能在 Azure Web App 上添加身份验证?【英文标题】:How to add authentication on Azure Web App using Authentication feature via Azure AD B2C? 【发布时间】:2021-07-05 05:38:36 【问题描述】:我想为使用 Azure AD B2C 在 Azure Web 应用上运行的 Web 应用程序添加身份验证。
为此,我遵循了以下步骤:
-
在 Azure AD B2C 上创建租户
添加应用注册和客户端密钥
添加用户流
从 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 位于同一租户的客户端?
【问题讨论】:
【参考方案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
-
点击添加平台并选择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 中启用它。
-
转到 Azure B2C 门户>应用注册>您的应用>身份验证。
2.转到 Azure B2C 门户>应用程序(旧版)>您的应用程序。
Microsoft 身份提供者是否仅提供“身份验证”功能 是否支持与 Azure Web 应用程序位于同一租户的客户端?
是的。
【讨论】:
感谢它的工作!但是为什么我必须允许隐式流动?我可以使用访问代码授予而不是隐含流吗? @hitochan 因为您可能试图在浏览器中获取id token
和access token
,这是隐式流的一个功能。当然你也可以使用auth code flow,这需要你在浏览器中获取授权码。
@hitochan 您好,如果发布的答案解决了您的问题,请单击复选标记将其标记为答案。这样做可以帮助其他人找到他们问题的答案。见:meta.stackexchange.com/questions/5234/…
我明白了,虽然我不记得在浏览器中更改设置以获取 id 令牌和访问令牌。无论如何,我会自己做更多的研究。非常感谢!
我确认 access_token 已启用...非常感谢您的帮助。以上是关于如何通过 Azure AD B2C 使用身份验证功能在 Azure Web App 上添加身份验证?的主要内容,如果未能解决你的问题,请参考以下文章
使用 azure AD B2C 进行 blazor web api 身份验证
我们如何在 Xamarin 表单中删除/自定义 Azure AD B2C 身份验证 webview 页面标题栏?
azure 应用服务身份验证模块是不是支持 azure ad b2c?
如何使用 Azure AD B2C 保护 Blazor Wasm 应用访问的 Azure 函数?
在 Azure AD 中创建用户之前,是不是可以使用 Azure B2C 自定义策略验证来自社交身份提供商 (iDP) 的电子邮件声明?