クッキーおよびOIDCミドルウェアを構成する
このガイドの目的のために、シンプルなホスト型ログインを使用します。標準クッキーと、ASP.NET Coreで利用できるOIDCミドルウェアを使用できるため、NuGetパッケージをインストールしてください。UseCookieAuthentication
の呼び出しに登録されたクッキーミドルウェアです。2つ目は、UseOpenIdConnectAuthentication
の呼び出しで実行されるOIDCミドルウェアです。
ユーザーがOIDCミドルウェアを使用してAuth0にサインインすると、ユーザーの情報はセッションクッキー内に自動的に保存されます。上記の通りにミドルウェアを構成するだけで、ユーザーセッションは管理されます。
Connect(OIDC)ミドルウェアはまた、ユーザーが認証されたらAuth0から送信されるIDトークンからクレームすべてを抽出し、それをClaimsIdentity
のクレームとして追加します。
ログアウトを実装する
AuthenticationManager
クラスのSignOutAsync
メソッドを使用し、サインアウトしたい認証スキームを伝えて、アプリケーションセッションとAuth0セッションの両方をコントロールできます。
クッキーミドルウェアのサインアウトと、それによるアプリケーションの認証クッキーの消去の例として、以下の呼び出しを作成できます。
SignOutAsync
メソッドを呼び出し、サインアウトするために認証スキームとしてAuth0
を伝えることで、ユーザーをAuth0からログアウトできます。
OnRedirectToIdentityProviderForSignOut
イベントを処理して、OIDCミドルウェアを登録するときに別の構成を追加する必要があります。イベント内で、Auth0クッキーを消去するAuth0ログアウトエンドポイントにリダイレクトする必要があります。
管理者権限の実装
グループをASP.NET Coreアプリケーションに組み入れる最も簡単な方法は、ASP.NET Coreで利用可能な組み込みのロールベースの認可を使用することです。これを達成するには、ユーザーが割り当てられるそれぞれのグループについて、[Authorize(Roles = "Admin")]
属性で装飾することで、簡単に特定のアクションをAdmin
のみに利用可能にできます。また、コントローラー内でUser.IsInRole("Admin")
を呼び出して、ユーザーがコードの特定のロールかどうかを確認できます。
ASP.NET OIDCミドルウェアは、で返されたすべてのクレームを、クレームとしてClaimsIdentity
に自動的に追加します。このため、authorization
クレームから情報を抽出し、クレームのJSONボディーを逆シリアル化して、グループごとに、http://schemas.microsoft.com/ws/2008/06/identity/claims/role
クレームをClaimsIdentity
に追加する必要があります。