ASP.NET OWINアプリケーションにログインを追加する
Auth0を使用すると、アプリケーションに手軽に認証を追加して、ユーザープロファイル情報にアクセスすることができます。このガイドは、新規または既存のASP.NET OWINアプリケーションにMicrosoft.Owin.Security.OpenIdConnect
Nugetパッケージを使って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を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)]フィールドで確認できます。
ASP.NET OWINアプリケーションで認証を有効にするには、StartupクラスのConfigurationメソッドに移動し、クッキーミドルウェアとOIDCミドルウェアを構成します。
認証の作動にはクッキーミドルウェアとOpenID Connectミドルウェアの両方が(この順番で)要求されるため、どちらも必ず登録してください。OpenID ConnectミドルウェアはAuth0による認証をハンドリングします。ユーザーの認証が完了すると、そのIDはクッキーミドルウェアに保存されます。
コードスニペットではAuthenticationTypeがAuth0に設定されています。次のセクションでAuthenticationTypeを使用しOpenID Connectミドルウェアにチャレンジして、認証フローを開始します。RedirectToIdentityProvider通知イベントが正しいログアウトURLを構築します。
ユーザーによるASP.NET OWINアプリケーションへのログインを許可するには、コントローラーにLogin
アクションを追加します。
HttpContext.GetOwinContext().Authentication.Challenge
を呼び出し、認証スキームとして"Auth0"
を渡します。これにより、以前登録されたOIDC認証ハンドラーが発動されます。対応するAuthenticationProperties
(RedirectUri
含む)を必ず指定してください。
HttpContext.GetOwinContext().Authentication.Challenge
の呼び出し成功後、ユーザーはAuth0にリダイレクトされます。その後アプリケーションにリダイレクトで戻された際に、OIDCミドルウェアとクッキーミドルウェアの両方にサインインしています。これにより、ユーザーは後続の要求でも認証されるようになります。
checkpoint.header
Loginの構成が完了したら、アプリケーションを実行して次の点を確認します:
Login
アクションに移動すると、Auth0にリダイレクトされる。資格情報を入力すると、リダイレクトでアプリケーションに戻る。
ユーザーをアプリケーションからログアウトさせるには、コントローラーのアクションからHttpContext.GetOwinContext().Authentication.SignOut
をCookieAuthenticationDefaults.AuthenticationType
認証スキームで呼び出します。
さらに、ユーザーをAuth0からログアウトさせたい場合は(この際にシングルサインオンに依拠している他のアプリケーションからもログアウトさせる可能性があります)、 HttpContext.GetOwinContext().Authentication.SignOut
を"Auth0"
認証スキームで呼び出します。
checkpoint.header
Logoutの構成が完了したら、アプリケーションを実行して次の点を確認します:
Logout
アクションに移動すると、ユーザーがログアウトする。ログアウト中Auth0にリダイレクトし、その後ログアウト中にただちにアプリケーションにリダイレクトで戻る。
ミドルウェアは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
Sign up for an or to your existing account to integrate directly with your own tenant.