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

Auth0を使用すると、アプリケーションに手軽に認証を追加して、ユーザープロファイル情報にアクセスすることができます。このガイドは、新規または既存のASP.NET OWINアプリケーションにMicrosoft.Owin.Security.OpenIdConnect Nugetパッケージを使って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

プロジェクトを構成する

NuGetからインストールする

Auth0をASP.NET OWINに統合するには、Microsoft.Owin.Security.OpenIdConnectおよびMicrosoft.Owin.Security.Cookies NuGetパッケージが使用できます。

Install-Package Microsoft.Owin.Security.OpenIdConnect
Install-Package Microsoft.Owin.Security.Cookies

Was this helpful?

/

資格情報を構成する

SDKが適切に動作するためには、Web.configで次のプロパティを設定します:

  • auth0:Domain:Auth0テナントのドメインです。Auth0 Dashboardにあるアプリケーションの[Settings(設定)]の[Domain(ドメイン)]フィールドで確認できます。カスタムドメインを使用している場合は、この値をカスタムドメインの値に設定してください。

  • auth0:ClientId:Auth0 Dashboardで作成したAuth0アプリケーションのIDです。Auth0 Dashboardにあるアプリケーションの[Settings(設定)]の[Client ID(クライアントID)]フィールドで確認できます。

3

ミドルウェアを構成する

ASP.NET OWINアプリケーションで認証を有効にするには、StartupクラスのConfigurationメソッドに移動し、クッキーミドルウェアとOIDCミドルウェアを構成します。

認証の作動にはクッキーミドルウェアとOpenID Connectミドルウェアの両方が(この順番で)要求されるため、どちらも必ず登録してください。OpenID ConnectミドルウェアはAuth0による認証をハンドリングします。ユーザーの認証が完了すると、そのIDはクッキーミドルウェアに保存されます。

コードスニペットではAuthenticationTypeがAuth0に設定されています。次のセクションでAuthenticationTypeを使用しOpenID Connectミドルウェアにチャレンジして、認証フローを開始します。RedirectToIdentityProvider通知イベントが正しいログアウトURLを構築します。

4

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

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

HttpContext.GetOwinContext().Authentication.Challengeを呼び出し、認証スキームとして"Auth0"を渡します。これにより、以前登録されたOIDC認証ハンドラーが発動されます。対応するAuthenticationPropertiesRedirectUri含む)を必ず指定してください。

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

checkpoint.header

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

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

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

5

アプリケーションにログアウトを追加する

ユーザーをアプリケーションからログアウトさせるには、コントローラーのアクションからHttpContext.GetOwinContext().Authentication.SignOutCookieAuthenticationDefaults.AuthenticationType認証スキームで呼び出します。

さらに、ユーザーをAuth0からログアウトさせたい場合は(この際にシングルサインオンに依拠している他のアプリケーションからもログアウトさせる可能性があります)、 HttpContext.GetOwinContext().Authentication.SignOut"Auth0"認証スキームで呼び出します。

checkpoint.header

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

  • Logoutアクションに移動すると、ユーザーがログアウトする。

  • ログアウト中Auth0にリダイレクトし、その後ログアウト中にただちにアプリケーションにリダイレクトで戻る。

6

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

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

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

checkpoint.header

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

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

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 Marketplace - Discover integrations you can enable to extend Auth0’s functionality

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.