Auth0を使用すると、アプリケーションに手軽に認証を追加することができます。このガイドは、WPFやWinFormsアプリケーションにWPFまたはWinForms用のAuth0 SDKを使ってAuth0を統合し、認証の追加とユーザープロファイル情報の表示を行う方法について説明します。このクイックスタートを使用するには、以下の手順に従います:
- Auth0の無料アカウントにサインアップするか、Auth0にログインします。
-
統合したいWPFまたはWinFormsプロジェクトを用意します。または、ログインした後に、サンプルアプリケーションを表示してダウンロードすることもできます。
1
Auth0を構成する
Auth0のサービスを利用するには、Auth0 Dashboadに設定済みのアプリケーションがある必要があります。Auth0アプリケーションは、開発中のプロジェクトに対してどのように認証が動作して欲しいかを構成する場所です。アプリケーションを構成する
対話型のセレクターを使ってAuth0アプリケーションを新規作成するか、統合したいプロジェクトを表す既存のアプリケーションを選択します。Auth0のすべてのアプリケーションには英数字からなる一意のクライアントIDが割り当てられており、アプリケーションのコードがSDKを通じてAuth0 APIを呼び出す際に使用されます。このクイックスタートを使って構成されたすべての設定は、Dashboardのアプリケーションを自動更新します。今後、アプリケーションの管理もDashboardで行えます。完了済みの構成を見てみたい場合は、サンプルアプリケーションをご覧ください。Callback URLを構成する
Callback URLとは、Auth0がユーザーを認証後にリダイレクトするアプリケーション内URLです。設定されていない場合、ユーザーはログイン後にアプリケーションに戻りません。サンプルプロジェクトに沿って進めている場合は、http://{yourDomain}:4200/mobile
に設定してください。ログアウトURLを構成する
ログアウトURLとは、Auth0がユーザーをログアウト後にリダイレクトするアプリケーション内URLです。設定されていない場合、ユーザーはアプリケーションからログアウトできず、エラーを受け取ります。サンプルプロジェクトに沿って進めている場合は、http://{yourDomain}:4200/mobile
に設定してください。2Auth0 SDKをインストールする
WPFおよびWinFormsアプリケーションで、Auth0認証が手軽に実装できるように、Auth0はWPFとWinFormsのSDKを提供しています。NuGetパッケージマネージャー([Tools(ツール)] -> [Library Package Manager(ライブラリーパッケージマネージャー)] -> [Package Manager Console(パッケージマネージャーコンソール)]) を使用して、WPFまたはWindows Formsアプリケーションのどちらをビルドするかに応じて、Auth0.OidcClient.WPF
またはAuth0.OidcClient.WinForms
パッケージをインストールします。NuGetパッケージマネージャーコンソール(Install-Package
)やdotnet
CLI(dotnet add
)を代わりに使用することもできます。3Auth0Clientをインスタンス化する
Auth0をアプリケーションに統合するには、Auth0ドメインとクライアントIDを含むAuth0ClientOptionsのインスタンスを渡して、Auth0Clientクラスをインスタンス化します。SDKは初期設定で、.NET6以降にはWebView2を利用し、.NET6より前のバージョンを使用するアプリケーションは古いWebViewに依存します。チェックポイント
Auth0Clientが適切にインスタンス化されました。アプリケーションを実行して次の点を確認します: Auth0Clientが正しくインスタンス化されている。 アプリケーションがAuth0に関連したエラーを投入していない。4アプリケーションにログインを追加する
Auth0アプリケーションとAuth0 SDKの構成が完了したら、プロジェクトのためにログインをセットアップする必要があります。これを実現するには、SDKのLoginAsync()
メソッドを使用して、ユーザーをAuth0のユニバーサルログインページにリダイレクトするログインボタンを作成します。ユーザーが認証に成功すると、このクイックスタートで前にセットアップしたCallback URLへリダイレクトされます。エラーがなければ、LoginAsync()
が返すLoginResult
でUser
、IdentityToken
、AccessToken
、RefreshToken
にアクセスすることができます。チェックポイント
ユーザー名とパスワードを使ってログインやサインアップができるようになりました。 ログインボタンをクリックして次の点を確認します: WPFまたはWinFormsアプリケーションによってAuth0ユニバーサルログインページにリダイレクトされる。 ログインまたはサインアップできる。 Auth0によってアプリケーションにリダイレクトされる。5アプリケーションにログアウトを追加する
プロジェクトにログインしたユーザーには、ログアウトする方法も必要です。SDKのLogoutAsync()
メソッドを使用してログアウトボタンを作成します。ユーザーはログアウトすると、Auth0ログアウトエンドポイントにリダイレクトされてから、即座に、このクイックスタートで先ほどセットアップしたログアウトURLにリダイレクトで戻されます。チェックポイント
アプリケーションを実行してログアウトボタンをクリックし、次の点を確認します: WPFまたはWinFormsアプリケーションによって、アプリケーションの設定で[Allowed Logout URLs(許可されているログアウトURL)]の1つに指定したアドレスへリダイレクトされる。 アプリケーションにログインしていない。6ユーザープロファイル情報を表示する
ユーザーがログインやログアウトできるようになったら、認証済のユーザーに関連付けられたプロファイル情報を取得できるようにしたいと考えるはずです。たとえば、ログインしたユーザーの名前やプロフィール写真をプロジェクトに表示したいかもしれません。WPF・WinForms用のAuth0 SDKでは、LoginResult.User
プロパティを通じてユーザー情報を提供します。チェックポイント
ログイン後にユーザーの名前やその他のユーザープロパティが表示されることを確認してください。
次のステップ
成功です!ここまで来れば、アプリケーションにログイン、ログアウト、ユーザープロファイル情報が備わっているはずです。これでクイックスタートチュートリアルは終了ですが、機能はまだまだたくさんあります。Auth0でできることについて詳しくは、以下をご覧ください。- Auth0 Dashboard - Auth0のテナントやアプリケーションを構成して管理する方法について説明します
- auth0-oidc-client-net SDK - このチュートリアルで使用されているSDKをより詳しく説明します
- Auth0 Marketplace - Auth0の機能性を拡張できる各種の統合を見つけられます