MVCアプリケーションでカスタムトークンベースの認証を実装しました。これで、Azure ADもOpenID Connectを使用して、以下のように動作しました。MVCアプリケーション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を入力した場合に提供されたEメールアドレスがあなたのAzureアクティブに既存のユーザーアカウントからのものである場合、あなたの要件を調べる時に旋回している場合は、アプリケーションの内部認証フロー
私は達成したいことを理解しています。しかし、私はそれがあなたのアプリケーションで構築されるべきだと思います。 Azure ADでこの認証フローを行うことは何もありません。 2つの認証エンドポイントを統合する必要があるためです。 –
はい。プリセットされた電子メールアドレスのoAuth Azureパスワードウィンドウに直接リダイレクトできますか? – user3527063
これを達成できるかどうかは言うまでもありません。しかし、それは理論のために可能です。このシナリオでは、Azure ADに関するものではなく、アプリケーション自体へのリンクです。 –