【解決方法】ASP.NET MVC で Microsoft に組み込まれた azuread 認証でエラーが発生する

プログラミングQA


asp.net mvc で Microsoft の組み込み認証を使用しています。
私はstartup.auth.csで以下の呼び出しを使用しています。 デフォルトページでリダイレクトしないことを許可した後、モバイルで認証を求めるプロンプトが表示されます。

C#
private static string clientId = ConfigurationManager.AppSettings["ida:ClientId"];           
        public void ConfigureAuth(IAppBuilder app)
        {
            app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

            app.UseCookieAuthentication(new CookieAuthenticationOptions());

            app.UseOpenIdConnectAuthentication(
                new OpenIdConnectAuthenticationOptions
                {
                    ClientId = clientId,
                    Authority = authority,                    
                    PostLogoutRedirectUri = postLogoutRedirectUri
                });
        }

私が試したこと:

複数の方法を試しましたが、正しい方法が得られませんでした

解決策 1

ASP.NET で Microsoft の組み込み認証を使用する場合、認証が成功した後に既定のページにリダイレクトする際に問題が発生しているようです。

トラブルシューティングのために次の手順を試してください。

1. リダイレクト URI を確認する: アプリケーションのリダイレクト URI が、アイデンティティ プロバイダーで構成されているものと正確に一致していることを確認します。

2. RedirectUri プロパティを設定します。OpenIdConnectAuthenticationOptions の RedirectUri をアプリケーションのリダイレクト URI に明示的に設定します。

C#
RedirectUri = "http://localhost:port/signin-oidc"

3. 認証失敗の処理:
AuthenticationFailed イベントを監視して、認証エラーを検出して処理します。

C#
Notifications = new OpenIdConnectAuthenticationNotifications
{
    AuthenticationFailed = context =>
    {
        context.Response.Redirect("/Home/Error");
        return Task.FromResult(0);
    }
};

4. スタートアップ クラスの構成を確認します。スタートアップ クラスが OWIN によって正しく認識されていることを確認します。 [assembly: OwinStartup(typeof(YourNamespace.Startup))] 属性。

5. セッションと Cookie の設定を確認します。特にモバイル ブラウザの場合、セッションを維持するために Cookie が正しく構成されていることを確認します。

6. ログの実装: 認証プロセス全体にログを追加して、プロセスが失敗している可能性がある場所を特定します。

7. モバイル固有の問題を調査する: 問題はモバイルで発生するため、認証フローに影響を与える可能性のあるモバイル固有の設定や動作を探します。

コメント

タイトルとURLをコピーしました