仅对应用程序的一部分进行Azure AD身份验证

时间:2020-04-29 10:55:12

标签: c# asp.net-mvc asp.net-core azure-active-directory

是否可以仅对应用程序的一部分使用Azure AD身份验证?

我在学校工作,我们的团队正在创建一个Web应用程序,一些用户需要使用他们的工作/学校帐户登录。 其他用户可以创建一个个人帐户并使用该帐户登录。他们将使用应用程序的不同部分。

用户应该首先看到的页面是他可以选择自己是哪种类型的用户的页面。 如果用户是“外部用户”,则可以使用其个人帐户登录。 如果用户是“老师”或“学生”,则可以通过Azure AD使用其工作/学校帐户登录。

类似这样的东西。

enter image description here

这是“品牌”下Azure门户上的“主页URL”是什么? 填写此应用后,该应用仍会立即显示Azure AD登录页面。

还是我们需要使用Azure AD B2C?还是只适用于Google,Facebook等社会身份?

2 个答案:

答案 0 :(得分:0)

您可以使用Azure AD和OpenID身份验证流来实现这一目标。

此问题的更多详细信息Mixing Azure AD authentication with Forms authentication

答案 1 :(得分:0)

这是Azure品牌门户下Azure门户上的“主页URL”吗?

您可以在应用程序中注册多种身份验证方案,一种是使用本地数据库的身份验证,另一种是使用Azure AD的身份验证。您应该使应用程序中的登录页面不在Azure一侧,并具有触发差异方案的按钮,例如,AAD scheme:

if (!User.Identity.IsAuthenticated)
{
     return Challenge(new AuthenticationProperties() { RedirectUri = "/" } , AzureADDefaults.AuthenticationScheme);
 }   

最简单的方法是使用ASP.NET Core身份并将Azure AD身份验证添加为外部登录。 Here是代码示例。

对于授权部分,您可以在本地数据库中管理用户和角色,因为默认情况下,AAD登录后,身份框架将帮助在数据库中创建本地用户,但是也可以根据您的要求进行自定义。或者,您可以直接创建策略并检查用户的声明,从AAD或本地数据库登录的用户应具有不同的声明。