0

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アクティブに既存のユーザーアカウントからのものである場合、あなたの要件を調べる時に旋回している場合は、アプリケーションの内部認証フロー

+0

私は達成したいことを理解しています。しかし、私はそれがあなたのアプリケーションで構築されるべきだと思います。 Azure ADでこの認証フローを行うことは何もありません。 2つの認証エンドポイントを統合する必要があるためです。 –

+0

はい。プリセットされた電子メールアドレスのoAuth Azureパスワードウィンドウに直接リダイレクトできますか? – user3527063

+0

これを達成できるかどうかは言うまでもありません。しかし、それは理論のために可能です。このシナリオでは、Azure ADに関するものではなく、アプリケーション自体へのリンクです。 –

答えて

0

にパスワードページを扱いますディレクトリテナントであれば、Microsoft Graphを利用して照会して確認することができます。

たとえば、次のグラフApi REST呼び出しは、提供された電子メールアドレスがテナント内の既存ユーザーのものかどうかを判断するのに役立ちます。

https://graph.microsoft.com/v1.0/users?$filter=startswith(mail%2C+'[email protected]') 
関連する問題