Blazor Serverアプリケーションにログインを追加する
Auth0を使用すると、アプリケーションに手軽に認証を追加して、ユーザープロファイル情報にアクセスすることができます。このガイドは、新規または既存のBlazor ServerアプリケーションにAuth0.AspNetCore.Authentication SDKを使ってAuth0を統合する方法を説明します。
Auth0のサービスを利用するには、Auth0 Dashboadに設定済みのアプリケーションがある必要があります。Auth0アプリケーションは、開発中のプロジェクトに対してどのように認証が動作して欲しいかを構成する場所です。
アプリケーションを構成する
対話型のセレクターを使ってAuth0アプリケーションを新規作成するか、統合したいプロジェクトを表す既存のアプリケーションを選択します。Auth0のすべてのアプリケーションには英数字からなる一意のクライアントIDが割り当てられており、アプリケーションのコードがSDKを通じてAuth0 APIを呼び出す際に使用されます。
このクイックスタートを使って構成されたすべての設定は、Dashboardのアプリケーションを自動更新します。今後、アプリケーションの管理もDashboardで行えます。
完了済みの構成を見てみたい場合は、サンプルアプリケーションをご覧ください。
Callback URLを構成する
Callback URLとは、Auth0がユーザーを認証後にリダイレクトするアプリケーション内URLです。設定されていない場合、ユーザーはログイン後にアプリケーションに戻りません。
ログアウトURLを構成する
ログアウトURLとは、Auth0がユーザーをログアウト後にリダイレクトするアプリケーション内URLです。設定されていない場合、ユーザーはアプリケーションからログアウトできず、エラーを受け取ります。
NuGetからインストールする
Auth0をBlazor Serverと統合するには、Auth0.AspNetCore.Authentication
NuGetパッケージをアプリケーションにインストールすることでSDKを使用できます。
ミドルウェアを構成する
Blazor Serverアプリケーションで認証を可能にするには、SDKが提供するミドルウェアを使います。Program.cs
ファイルに移動してbuilder.Services.AddAuth0WebAppAuthentication()
を呼び出し、SDKのミドルウェアを登録します。
Domain
とClientId
は必ず構成してください。SDKがどのAuth0テナントとアプリケーションを使用すべきかを認識するために必要となるフィールドです。
認証と認可がProgram.cs
ファイルで有効になったことを確認します。
Blazor Serverアプリケーションにユーザーをログインさせるには、LoginModel
をPages
ディレクトリに追加します。
LoginModel
のOnGet
メソッド内でHttpContext.ChallengeAsync()
を呼び出し、Auth0Constants.AuthenticationScheme
を認証スキームとして渡します。これにより当社のSDKが内部に登録しているOIDC認証ハンドラーが発動されます。関連するauthenticationProperties
も必ず指定してください。構築はLoginAuthenticationPropertiesBuilder
で行えます。
HttpContext.ChallengeAsync()
の呼び出し成功後、ユーザーはAuth0にリダイレクトされます。その後アプリケーションにリダイレクトで戻された際に、OIDCミドルウェアとクッキーミドルウェアの両方にサインインしています。これにより、ユーザーは後続の要求でも認証されるようになります。
checkpoint.header
Loginの構成が完了したら、アプリケーションを実行して次の点を確認します:
Login
ページに移動すると、Auth0にリダイレクトされる。資格情報を入力すると、リダイレクトでアプリケーションに戻る。
ミドルウェアはAuth0からトークンを取得すると、IDトークンからユーザー情報とクレームを抽出し、AuthenticationState
を介して利用できるようにします。これはCascadingParameter
として追加できます。
ユーザーの名前や追加クレーム(メールアドレスや画像など)を表示するカスタムのユーザープロファイルページは、AuthenticationState
のUser
プロパティから関連情報を取得し、Blazorコード内からビューに渡すことで作成できます。
checkpoint.header
ユーザープロファイルを表示するようセットアップし終えたら、アプリケーションを実行して次の点を確認します:
ログイン成功後にプロファイルを含んだエンドポイントに移動すると、ユーザーのプロファイルが表示される。
LogoutModel
のOnGet
メソッド内からHttpContext.SignOutAsync
をCookieAuthenticationDefaults.AuthenticationScheme
認証スキームで呼び出すと、ユーザーをアプリケーションからログアウトさせられます。
さらに、ユーザーをAuth0からもログアウトさせたい場合は(これによりシングルサインオンに依拠している他のアプリケーションからもログアウトさせる可能性があります)、HttpContext.SignOutAsync
をAuth0Constants.AuthenticationScheme
認証スキームで呼び出します。また、LogoutAuthenticationPropertiesBuilder
を使って構築できる適切なauthenticationProperties
も同じ認証スキームで呼び出します。
checkpoint.header
Logoutの構成が完了したら、アプリケーションを実行して次の点を確認します:
Logout
ページに移動すると、ユーザーがログアウトする。Auth0からもログアウトすると、Auth0にリダイレクトされ、即座にアプリケーションにリダイレクトで戻される。
Next Steps
Excellent work! If you made it this far, you should now have login, logout, and user profile information running in your application.
This concludes our quickstart tutorial, but there is so much more to explore. To learn more about what you can do with Auth0, check out:
- Auth0 Dashboard - Learn how to configure and manage your Auth0 tenant and applications
- auth0-aspnetcore-authentication SDK - Explore the SDK used in this tutorial more fully
- Auth0 Marketplace - Discover integrations you can enable to extend Auth0’s functionality
Sign up for an or to your existing account to integrate directly with your own tenant.