UseCookieAuthentication の呼び出しによって登録されています。2 つ目は OIDC ミドルウェアで、UseOpenIdConnectAuthentication の呼び出しによって設定されます。
ユーザーが OIDC ミドルウェアを使用して Auth0 にサインインすると、その情報は自動的にに保存されます。必要なのは、上記のようにミドルウェアを設定することだけで、あとはユーザーセッションの管理を自動的に処理します。
また、 Connect (OIDC) ミドルウェアは、ユーザーの認証後に Auth0 から送信されるからすべてのクレームを抽出し、それらをClaimsIdentity にクレームとして追加します。
ログアウトを実装する
AuthenticationManager クラスの SignOutAsync メソッドを使用し、サインアウトしたい認証スキームを渡すことで、アプリケーション セッションと Auth0 セッションの両方を制御できます。
たとえば、cookie ミドルウェアからサインアウトしてアプリケーションの認証 cookie をクリアするには、次のように呼び出します。
SignOutAsync メソッドを呼び出し、サインアウト対象の認証スキームとして Auth0 を渡すことで、Auth0 からユーザーをログアウトできます。
OnRedirectToIdentityProviderForSignOut イベントを処理する追加の構成も必要です。イベント内では、Auth0 の cookie をクリアするため、Auth0 のログアウトエンドポイント にリダイレクトする必要があります。
Admin 権限の実装
[Authorize(Roles = "Admin")] 属性でそのクレームを修飾することで、特定のアクションを Admin ユーザーのみが実行できるよう簡単に制限できます。また、コントローラー内から User.IsInRole("Admin") を呼び出して、ユーザーが特定のロールに属しているかどうかをコードで確認することもできます。
ASP.NET OIDC ミドルウェアは、 で返されるすべてのクレームを、自動的に ClaimsIdentity のクレームとして追加します。したがって、authorization クレームから情報を抽出し、そのクレームの JSON 本文をデシリアライズして、各グループについて http://schemas.microsoft.com/ws/2008/06/identity/claims/role クレームを ClaimsIdentity に追加する必要があります。