AzureADアプリケーションとWebアプリを作成しました。 AzureADアプリケーションはAAD認証を使用します。これはうまく機能します。 URLにアクセスして認証されていない場合は、資格情報を入力する必要があります。資格情報を入力すると、アプリケーションに転送されます。
しかし、それから問題が起こります。サインアウトするにはどうすればよいですか。 この質問 を見つけました。オプション2を実装したかったのですが、コードを使用してサインアウトするのではなく、AzureADが提供するリンクを使用します。重要なのは、これをどこに設定すればよいかわからないということです。彼は述べています
ログインとログアウトのための特定のリンクを追加します
しかしここで? Azureのどこで、どのポータル(新しいまたは古い)でこれを構成できますか?彼はサンプルへのリンクも提供しましたが、私はこのサンプルを理解していません(私はAzureに少し慣れていません)。
できることは、アプリケーションでサインアウトURIを作成し、ユーザーがLogout
リンクまたはボタンをクリックすると、ユーザーをそのURIにリダイレクトすることです。
サインアウトURIの形式は次のとおりです。
https://login.microsoftonline.com/{0}/oauth2/logout?post_logout_redirect_uri={1}
どこ {0}
は、テナントIDまたはAzure AD名(something.onmicrosoft.com
)および{1}
は、Azure ADの終了時にサインアウトプロセスが完了した後、ユーザーがリダイレクトされるアプリケーションへのリンクです。
スタートポストで述べたように、提供された例を機能させることができなかった理由をついに見つけました。設定WEBSITE_AUTH_LOGOUT_PATH
は非推奨になり、/.auth/logout
を呼び出してログアウトできるようになりました。
このページ で見つかりました
URIを使用できます
https://login.microsoftonline.com/{0}/oauth2/logout?post_logout_redirect_uri={1}
@Gauravが示唆したように。しかし、これはブラウザのクッキーをクリアしません。リクエストオブジェクトからCookieを明示的に削除する必要がある場合があります。
foreach (string cookie in HttpContext.Current.Request.Cookies.AllKeys) { HttpContext.Current.Response.Cookies[cookie].Expires=DateTime.Now.AddDays(-1);}
ただし、これには、Azure ADが一定の時間間隔でCookieをキャッシュするため、他のソースから同じCookieを使用して送信された要求がAzureADによって正常に認証される可能性があるという問題もあります。私はまだこれに取り組む方法を見つけようとしています。
お役に立てれば。ありがとう