Skip to main content
ASP.NET Core 実装の完全なソースコードは、この GitHub リポジトリで確認できます。 このガイドでは、シンプルなホスト型ログインを使用します。ASP.NET Core で利用できる標準の Cookie および OIDC ミドルウェアを使用するため、NuGet パッケージをインストールしておいてください。
次に、アプリケーションのミドルウェア パイプラインで、Cookie と OIDC のミドルウェアを構成します。 上記のコードからわかるように、2 種類の認証ミドルウェアを設定しています。 1 つ目は cookie ミドルウェアで、UseCookieAuthentication の呼び出しによって登録されています。2 つ目は OIDC ミドルウェアで、UseOpenIdConnectAuthentication の呼び出しによって設定されます。 ユーザーが OIDC ミドルウェアを使用して Auth0 にサインインすると、その情報は自動的にに保存されます。必要なのは、上記のようにミドルウェアを設定することだけで、あとはユーザーセッションの管理を自動的に処理します。 また、 Connect (OIDC) ミドルウェアは、ユーザーの認証後に Auth0 から送信されるからすべてのクレームを抽出し、それらをClaimsIdentity にクレームとして追加します。

ログアウトを実装する

AuthenticationManager クラスの SignOutAsync メソッドを使用し、サインアウトしたい認証スキームを渡すことで、アプリケーション セッションと Auth0 セッションの両方を制御できます。 たとえば、cookie ミドルウェアからサインアウトしてアプリケーションの認証 cookie をクリアするには、次のように呼び出します。
同様に、SignOutAsync メソッドを呼び出し、サインアウト対象の認証スキームとして Auth0 を渡すことで、Auth0 からユーザーをログアウトできます。
上記を機能させるには、OIDC ミドルウェアの登録時に OnRedirectToIdentityProviderForSignOut イベントを処理する追加の構成も必要です。イベント内では、Auth0 の cookie をクリアするため、Auth0 のログアウトエンドポイント にリダイレクトする必要があります。
また、 で、アプリケーションの Allowed Logout URLs にアプリケーションの URL を追加してください。詳細については、ログアウト を参照してください。

Admin 権限の実装

グループを 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 に追加する必要があります。
次に、管理者がタイムシートを承認できるようにするActionを追加します: