【发布时间】:2017-12-28 21:23:27
【问题描述】:
我们在 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,则在应用程序的内部认证流程中处理密码页面
【问题讨论】:
-
我了解您想要实现的目标。但我认为它应该构建在您的应用程序中。我们与 Azure AD 没有任何关系。因为您需要集成两个身份验证端点。
-
是的。我可以直接重定向到预设电子邮件地址的 oAuth Azure 密码窗口吗?
-
能否做到这一点很难说。但是理论上是可以的。对于这种情况,它与 Azure AD 无关,它只是指向您的应用程序本身的链接。
标签: azure asp.net-mvc-4 authentication azure-active-directory