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