我有一个在 .NET 4.7.2 上运行的 ASP.NET Webforms 应用程序,为多个客户端提供服务。其中一位客户拥有 Azure 帐户,他们希望使用其 Azure 用户在我们的应用程序中进行身份验证。
考虑到只有该客户需要此集成,而所有其他客户将继续使用我的应用程序的传统用户/密码流程,我如何实现此集成?
我需要实施什么才能仅为该客户提供此支持?
要为特定客户端实施 Azure AD 身份验证,同时允许其他客户端继续使用传统的用户名/密码身份验证,您可以按照以下步骤操作:
配置应用程序注册:
1.转到注册的应用程序并记下“应用程序(客户端)ID”和“目录(租户)ID”。 2.在“证书和机密”下,创建新的客户端机密并记下该值。 3.在“API权限”下,为User.Read添加Microsoft Graph的权限。
将 Azure AD 身份验证添加到您的应用程序 安装 NuGet 包:
1.安装必要的 NuGet 包以支持 Azure AD 身份验证。对于 .NET 4.7.2 应用程序,您通常需要 Microsoft.Owin.Security.OpenIdConnect 和 Microsoft.IdentityModel.Protocols.OpenIdConnect。 bash 代码片段:
安装包 Microsoft.Owin.Security.OpenIdConnect 安装包 Microsoft.IdentityModel.Protocols.OpenIdConnect
配置OWIN中间件: 1.在您的应用程序中,将 OWIN 配置为使用 Azure AD 身份验证。添加或更新 Startup 类以配置身份验证中间件。 创建控制器来处理 Azure AD 登录:
1.创建AccountController来处理登录、注销和回调操作。
有条件的 Azure AD 身份验证: 1. 实现逻辑以有条件地仅为特定客户端触发 Azure AD 身份验证。这可以通过检查请求上下文(例如,检查域或特定查询参数)然后在条件匹配时触发 Azure AD 登录流程来实现。 配置您的应用程序以处理 Azure AD 身份验证
更新Web.config: 1. 在 Web.config 中添加必要的配置设置。 安全路由或控制器: 1.使用[Authorize]属性来保护需要身份验证的路由或控制器。 积分:
注意:我无法添加 C# 和 xml 代码片段,但如果您添加 C# 标签以在此处添加代码示例,我可以为您提供代码示例供您尝试