MVC应用程序Azure AD和自定义身份验证支持

时间:2017-12-28 21:23:27

标签: azure asp.net-mvc-4 authentication azure-active-directory

我们在MVC应用程序中实现了基于自定义令牌的身份验证。现在我们也使用OpenID Connect启用了Azure AD,如下所述。

 app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
       {
           ClientId = ADClientId,
           Authority = ADauthority,
           Notifications = new OpenIdConnectAuthenticationNotifications()
           {
               RedirectToIdentityProvider = (context) =>
               {

                   if (context.Request.Path.Value == "/Account/ExternalLogin" || (context.Request.Path.Value == "/Account/LogOff"))
                   {

                       string appBaseUrl = context.Request.Scheme + "://" + context.Request.Host + context.Request.PathBase;
                       context.ProtocolMessage.RedirectUri = appBaseUrl + "/";
                       context.ProtocolMessage.PostLogoutRedirectUri = appBaseUrl;
                   }
                   else
                   {

                       context.State = Microsoft.Owin.Security.Notifications.NotificationResultState.Skipped;
                       context.HandleResponse();
                   }
                   return Task.FromResult(0);
               },
           }

我们需要修改下面的场景。如果您有任何技术建议,请告诉我 1)登录页面 - 获取用户电子邮件地址

2)检查用户ID以及是否为Azure AD电子邮件 - 然后转到用户输入密码的Microsoft身份验证页面

3)如果用户输入自定义用户ID,请在应用程序的内部认证流程中处理密码页面

1 个答案:

答案 0 :(得分:0)

如果在检查提供的电子邮件地址是否来自Azure Active Directory租户中的现有用户帐户时转动了您的要求,则可以使用Microsoft Graph进行查询和确认。

例如,以下Graph Api REST调用将有助于确定提供的电子邮件地址是否是租户中现有用户的电子邮件地址。

https://graph.microsoft.com/v1.0/users?$filter=startswith(mail%2C+'email@domain.com')