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です。設定されていない場合、ユーザーはログイン後にアプリケーションに戻りません。サンプルプロジェクトに沿って進めている場合は、
http://localhost:3000``/callback
に設定してください。ログアウトURLを構成する
ログアウトURLとは、Auth0がユーザーをログアウト後にリダイレクトするアプリケーション内URLです。設定されていない場合、ユーザーはアプリケーションからログアウトできず、エラーを受け取ります。サンプルプロジェクトに沿って進めている場合は、
http://localhost:3000
に設定してください。2
プロジェクトを構成する
NuGetからインストールする
Auth0をASP.NET OWINに統合するには、Microsoft.Owin.Security.OpenIdConnect
およびMicrosoft.Owin.Security.Cookies
NuGetパッケージが使用できます。OWINクッキーミドルウェアとSystem.Webクッキーを同時に構成すると不具合が発生します。この問題の影響を抑えるには、詳細について「System.Web cookie integration
issues(System.Webクッキーの統合不具合)」ドキュメントでご確認ください。
資格情報を構成する
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認証ハンドラーが発動されます。対応するAuthenticationProperties
(RedirectUri
含む)を必ず指定してください。HttpContext.GetOwinContext().Authentication.Challenge
の呼び出し成功後、ユーザーはAuth0にリダイレクトされます。その後アプリケーションにリダイレクトで戻された際に、OIDCミドルウェアとクッキーミドルウェアの両方にサインインしています。これにより、ユーザーは後続の要求でも認証されるようになります。チェックポイント
Loginの構成が完了したら、アプリケーションを実行して次の点を確認します:Login
アクションに移動すると、Auth0にリダイレクトされる。- 資格情報を入力すると、リダイレクトでアプリケーションに戻る。
5
アプリケーションにログアウトを追加する
ユーザーをアプリケーションからログアウトさせるには、コントローラーのアクションから
HttpContext.GetOwinContext().Authentication.SignOut
をCookieAuthenticationDefaults.AuthenticationType
認証スキームで呼び出します。さらに、ユーザーをAuth0からログアウトさせたい場合は(この際にシングルサインオンに依拠している他のアプリケーションからもログアウトさせる可能性があります)、
HttpContext.GetOwinContext().Authentication.SignOut
を"Auth0"
認証スキームで呼び出します。チェックポイント
Logoutの構成が完了したら、アプリケーションを実行して次の点を確認します:Logout
アクションに移動すると、ユーザーがログアウトする。- ログアウト中Auth0にリダイレクトし、その後ログアウト中にただちにアプリケーションにリダイレクトで戻る。
6
ユーザープロファイル情報を表示する
ミドルウェアはAuth0からトークンを取得すると、IDトークンからユーザー情報とクレームを抽出し、
ClaimsIdentity
として利用できるようにします。抽出した情報にはコントローラーのUser
プロパティを使ってアクセスします。ユーザープロファイルを作成するには、User
からユーザーの名前、メールアドレス、プロファイル画像を取得し、コントローラー内からビューに渡します。チェックポイント
ユーザープロファイルを表示するようアクションをセットアップし終えたら、アプリケーションを実行して次の点を確認します:- ログイン成功後に
Profile
アクションに移動すると、ユーザープロファイルが表示される。
次のステップ
成功です!ここまで来れば、アプリケーションにログイン、ログアウト、ユーザープロファイル情報が備わっているはずです。これでクイックスタートチュートリアルは終了ですが、機能はまだまだたくさんあります。Auth0でできることについて詳しくは、以下をご覧ください。- Auth0 Dashboard - Auth0のテナントやアプリケーションを構成して管理する方法について説明します
- Auth0 Marketplace - Auth0の機能性を拡張できる各種の統合を見つけられます