ASP.NET MVCアプリケーションにログインを追加する

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です。設定されていない場合、ユーザーはログイン後にアプリケーションに戻りません。

ログアウトURLを構成する

ログアウトURLとは、Auth0がユーザーをログアウト後にリダイレクトするアプリケーション内URLです。設定されていない場合、ユーザーはアプリケーションからログアウトできず、エラーを受け取ります。

2

SDKをインストールして構成する

Nugetからインストールする

Auth0をASP.NET Coreと統合するには、Auth0.AspNetCore.AuthenticationNugetパッケージをアプリケーションにインストールすることでSDKを使用できます。

ミドルウェアを構成する

ASP.NET Coreアプリケーションで認証を可能にするには、SDKが提供するミドルウェアを使います。Program.csファイルに移動してbuilder.Services.AddAuth0WebAppAuthentication()を呼び出し、SDKのミドルウェアを登録します。

DomainClientIdは必ず構成してください。SDKがどのAuth0テナントとアプリケーションを使用すべきかを認識するために必要となるフィールドです。

認証と認可がProgram.csファイルで有効になったことを確認します。

3

ログイン

ユーザーによるASP.NET MVCアプリケーションへのログインを許可するには、コントローラーにLoginアクションを追加します。

HttpContext.ChallengeAsync()を呼び出し、Auth0Constants.AuthenticationSchemeを認証スキームとして渡します。これによりSDKが内部に登録しているOIDC認証ハンドラーが発動されます。関連するauthenticationPropertiesも必ず指定してください。構築はLoginAuthenticationPropertiesBuilderで行えます。

HttpContext.ChallengeAsync()の呼び出し成功後、ユーザーはAuth0にリダイレクトされます。その後アプリケーションにリダイレクトで戻された際に、OIDCミドルウェアとクッキーミドルウェアの両方にサインインしています。これにより、ユーザーは後続の要求でも認証されるようになります。

checkpoint.header

Loginの構成が完了したら、アプリケーションを実行して次の点を確認します:

  • Loginアクションに移動すると、Auth0にリダイレクトされる。

  • 資格情報を入力すると、リダイレクトでアプリケーションに戻る。

4

ユーザープロファイルを表示する

ミドルウェアはAuth0からトークンを取得すると、IDトークンからユーザー情報とクレームを抽出し、コントローラーでUser.Claimsプロパティとして利用できるようにします。

ユーザーの名前、メールアドレス、プロファイル画像を表示するカスタムユーザープロファイルを作成するには、Userから関連する情報を取得し、コントローラー内からビューに渡します。

checkpoint.header

ユーザープロファイルを表示するようアクションをセットアップし終えたら、アプリケーションを実行して次の点を確認します:

  • ログイン成功後にProfileアクションに移動すると、ユーザープロファイルが表示される。

5

ログアウト

コントローラーのアクション内からHttpContext.SignOutAsyncCookieAuthenticationDefaults.AuthenticationScheme認証スキームで呼び出すと、ユーザーをアプリケーションからログアウトさせられます。

さらに、ユーザーをAuth0からもログアウトさせたい場合は(これによりシングルサインオンに依拠している他のアプリケーションからもログアウトさせる可能性があります)、HttpContext.SignOutAsyncAuth0Constants.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:

Did it work?

Any suggestion or typo?

Edit on GitHub
Sign Up

Sign up for an or to your existing account to integrate directly with your own tenant.