Auth0を使用すると、アプリケーションに手軽に認証を追加して、ユーザープロファイル情報にアクセスすることができます。このガイドは、新規または既存のASP.NET
MVCアプリケーションにAuth0.AspNetCore.Authentication SDKを使ってAuth0を統合する方法を説明します。
1
Auth0を構成する
Auth0のサービスを利用するには、Auth0 Dashboadに設定済みのアプリケーションがある必要があります。Auth0アプリケーションは、開発中のプロジェクトに対してどのように認証が動作して欲しいかを構成する場所です。
アプリケーションを構成する
対話型のセレクターを使ってAuth0アプリケーションを新規作成するか、統合したいプロジェクトを表す既存のアプリケーションを選択します。Auth0のすべてのアプリケーションには英数字からなる一意のクライアントIDが割り当てられており、アプリケーションのコードがSDKを通じてAuth0 APIを呼び出す際に使用されます。このクイックスタートを使って構成されたすべての設定は、Dashboardのアプリケーションを自動更新します。今後、アプリケーションの管理もDashboardで行えます。完了済みの構成を見てみたい場合は、サンプルアプリケーションをご覧ください。Callback URLを構成する
Callback URLとは、Auth0がユーザーを認証後にリダイレクトするアプリケーション内URLです。設定されていない場合、ユーザーはログイン後にアプリケーションに戻りません。サンプルプロジェクトに沿って進めている場合は、
http://localhost:3000/callback
に設定してください。ログアウトURLを構成する
ログアウトURLとは、Auth0がユーザーをログアウト後にリダイレクトするアプリケーション内URLです。設定されていない場合、ユーザーはアプリケーションからログアウトできず、エラーを受け取ります。サンプルプロジェクトに沿って進めている場合は、
http://localhost:3000
に設定してください。2
SDKをインストールして構成する
Nugetからインストールする
Auth0をASP.NET Coreと統合するには、Auth0.AspNetCore.Authentication
NugetパッケージをアプリケーションにインストールすることでSDKを使用できます。ミドルウェアを構成する
ASP.NET Coreアプリケーションで認証を可能にするには、SDKが提供するミドルウェアを使います。Program.cs
ファイルに移動してbuilder.Services.AddAuth0WebAppAuthentication()
を呼び出し、SDKのミドルウェアを登録します。Domain
とClientId
は必ず構成してください。SDKがどのAuth0テナントとアプリケーションを使用すべきかを認識するために必要となるフィールドです。認証と認可がProgram.cs
ファイルで有効になったことを確認します。3
ログイン
ユーザーによるASP.NET MVCアプリケーションへのログインを許可するには、コントローラーに
Login
アクションを追加します。HttpContext.ChallengeAsync()
を呼び出し、Auth0Constants.AuthenticationScheme
を認証スキームとして渡します。これによりSDKが内部に登録しているOIDC認証ハンドラーが発動されます。関連するauthenticationProperties
も必ず指定してください。構築はLoginAuthenticationPropertiesBuilder
で行えます。HttpContext.ChallengeAsync()
の呼び出し成功後、ユーザーはAuth0にリダイレクトされます。その後アプリケーションにリダイレクトで戻された際に、OIDCミドルウェアとクッキーミドルウェアの両方にサインインしています。これにより、ユーザーは後続の要求でも認証されるようになります。チェックポイント
Loginの構成が完了したら、アプリケーションを実行して次の点を確認します:Login
アクションに移動すると、Auth0にリダイレクトされる。- 資格情報を入力すると、リダイレクトでアプリケーションに戻る。
4
ユーザープロファイルを表示する
ミドルウェアはAuth0からトークンを取得すると、IDトークンからユーザー情報とクレームを抽出し、コントローラーで
User.Claims
プロパティとして利用できるようにします。ユーザーの名前、メールアドレス、プロファイル画像を表示するカスタムユーザープロファイルを作成するには、User
から関連する情報を取得し、コントローラー内からビューに渡します。チェックポイント
ユーザープロファイルを表示するようアクションをセットアップし終えたら、アプリケーションを実行して次の点を確認します:- ログイン成功後に
Profile
アクションに移動すると、ユーザープロファイルが表示される。
5
ログアウト
コントローラーのアクション内から
HttpContext.SignOutAsync
をCookieAuthenticationDefaults.AuthenticationScheme
認証スキームで呼び出すと、ユーザーをアプリケーションからログアウトさせられます。さらに、ユーザーをAuth0からもログアウトさせたい場合は(これによりシングルサインオンに依拠している他のアプリケーションからもログアウトさせる可能性があります)、HttpContext.SignOutAsync
をAuth0Constants.AuthenticationScheme
認証スキームで呼び出します。また、LogoutAuthenticationPropertiesBuilder
を使って構築できる適切なauthenticationProperties
も同じ認証スキームで呼び出します。チェックポイント
Logoutの構成が完了したら、アプリケーションを実行して次の点を確認します:Logout
アクションに移動すると、ユーザーが確実にログアウトする。- Auth0からもログアウトすると、Auth0にリダイレクトされ、即座にアプリケーションにリダイレクトで戻される。
次のステップ
成功です!ここまで来れば、アプリケーションにログイン、ログアウト、ユーザープロファイル情報が備わっているはずです。これでクイックスタートチュートリアルは終了ですが、機能はまだまだたくさんあります。Auth0でできることについて詳しくは、以下をご覧ください。- Auth0 Dashboard - Auth0のテナントやアプリケーションを構成して管理する方法について説明します
- auth0-aspnetcore-authentication SDK - このチュートリアルで使用されているSDKをより詳しく説明します
- Auth0 Marketplace - Auth0の機能性を拡張できる各種の統合を見つけられます