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

ログアウトを実装する

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

管理者権限を実装する

グループを ASP.NET Core アプリケーションに統合する最も簡単な方法は、ASP.NET Core に用意されている組み込みの Role-based Authorization を使用することです。そのためには、次の型の Claim を追加する必要があります
ユーザーに割り当てられている各グループに対して。 クレームが追加されたら、[Authorize(Roles = "Admin")]属性を付与することで、特定の操作をAdminユーザーだけが利用できるように簡単に制限できます。コントローラー内でUser.IsInRole("Admin")を呼び出せば、ユーザーが特定のroleに属しているかどうかをコードから確認することもできます。 ASP.NET OIDCミドルウェアは、で返されたすべてのクレームを、自動的にClaimsIdentityにクレームとして追加します。したがって、authorizationクレームから情報を抽出し、そのクレームのJSON本体をデシリアライズして、各グループについてhttp://schemas.microsoft.com/ws/2008/06/identity/claims/roleクレームをClaimsIdentityに追加する必要があります。
続いて、管理者がタイムシートを承認できるようにするアクションを追加できます。