Auth0を使用すると、アプリケーションに手軽に認証を追加することができます。このガイドは、.NET AndroidまたはiOSアプリケーションにAndroidやiOS用のAuth0 SDKを使ってAuth0を統合し、認証の追加とユーザープロファイル情報の表示を行う方法について説明します。このクイックスタートを使用するには、以下の手順に従います:
このクイックスタートは、
Xamarin.Android
とXamarin.iOS
の次世代である.NET AndroidとiOSについて説明します。現在、Xamarin.Android
やXamarin.iOS
を使用している場合は、統合が同一でSDKにも互換性があるため、このガイドに従ってください。- Auth0の無料アカウントにサインアップするか、Auth0にログインします。
-
統合したいAndroidまたはiOSのプロジェクトで、.NET 6以降を使用したものを用意します。または、ログインした後に、サンプルアプリケーションを表示してダウンロードすることもできます。
1
Auth0を構成する
Auth0のサービスを利用するには、Auth0 Dashboadに設定済みのアプリケーションがある必要があります。Auth0アプリケーションは、プロジェクトに対してどのように認証が動作して欲しいかを構成する場所です。アプリケーションを構成する
対話型のセレクターを使って「ネイティブアプリケーション」を新規作成するか、統合したいプロジェクトを表す既存のアプリケーションを選択します。Auth0のすべてのアプリケーションには英数字からなる一意のクライアントIDが割り当てられており、アプリケーションのコードがSDKを通じてAuth0 APIを呼び出す際に使用されます。このクイックスタートを使って構成されたすべての設定は、Dashboardのアプリケーションを自動更新します。今後、アプリケーションの管理もDashboardで行えます。完了済みの構成を見てみたい場合は、サンプルアプリケーションをご覧ください。Callback URLを構成する
Callback URLとは、Auth0がユーザーを認証後にリダイレクトするアプリケーション内URLです。設定されていない場合、ユーザーはログイン後にアプリケーションに戻りません。サンプルプロジェクトに沿って進めている場合は、プラットフォームに応じて、これを次のURLの1つに設定します:- Android :
YOUR_PACKAGE_NAME://{yourDomain}/android/YOUR_PACKAGE_NAME/callback
- iOS :
YOUR_BUNDLE_ID://{yourDomain}/ios/YOUR_BUNDLE_ID/callback
ログアウトURLを構成する
ログアウトURLとは、Auth0がユーザーをログアウト後にリダイレクトするアプリケーション内URLです。設定されていない場合、ユーザーはアプリケーションからログアウトできず、エラーを受け取ります。最後に、アプリケーションの**[Application Type(アプリケーションタイプ)]** が**[Native(ネイティブ)]** になっていることをアプリケーションの設定で必ず確認してください。サンプルプロジェクトに沿って進めている場合は、プラットフォームに応じて、これを次のURLの1つに設定します:- Android :
YOUR_PACKAGE_NAME://{yourDomain}/android/YOUR_PACKAGE_NAME/callback
- iOS :
YOUR_BUNDLE_ID://{yourDomain}/ios/YOUR_BUNDLE_ID/callback
2Auth0 SDKをインストールする
.NET AndroidとiOSアプリケーションで、Auth0認証が手軽に実装できるように、Auth0はAndroidとiOSのSDKを提供しています。NuGetパッケージマネージャ([Tools(ツール)] -> [Library Package Manager(ライブラリーパッケージマネージャー)] -> [Package Manager Console(パッケージマネージャーコンソール)])を使用して、AndroidまたはiOSアプリケーションのどちらをビルドするかに応じて、Auth0.OidcClient.AndroidX
またはAuth0.OidcClient.iOS
パッケージをインストールします。NuGetパッケージマネージャーコンソール(Install-Package
)やdotnet
CLI(dotnet add
)を代わりに使用することもできます。3Auth0Clientをインスタンス化する
Auth0をアプリケーションに統合するには、Auth0のドメインとクライアントIDを含むAuth0ClientOptions
のインスタンスを渡して、Auth0Client
クラスをインスタンス化します。SDKは初期設定で、AndroidにはChrome Custom Tabs、iOSにはASWebAuthenticationSessionを利用します。チェックポイント
Auth0Clientが適切にインスタンス化されました。アプリケーションを実行して次の点を確認します: Auth0ClientのインスタンスがActivity(Android)またはUIViewController(iOS)で正しく作成されている。 アプリケーションがAuth0に関連したエラーを投入していない。4Androidを構成する
ユーザーが認証に成功すると、このクイックスタートで前にセットアップしたCallback URLへリダイレクトされます。Androidデバイスでコールバックを扱うには、Callback URLを扱うインテントを登録する必要があります。これを手軽に実現するには、認証フローをインスタンス化するためにLoginAsyncメソッドを呼び出したのと同じアクティビティーにインテントを登録します。必ず、サンプルコードにあるYOUR_ANDROID_PACKAGE_NAME
は実際のアプリケーションのパッケージ名(com.mycompany.myapplication
など)で置き換えてください。また、DataScheme
、DataHost
、DataPathPrefix
のテキストがすべて小文字であることを確認してください。アクティビティーにはLaunchMode = LaunchMode.SingleTask
を設定します。設定しないと、Callback URLが呼び出されるたびに、システムがアクティビティーの新しいインスタンスを作成します。また、Activity
クラスにあるOnNewIntent
イベントでインテントを扱う必要があります。ActivityMediator
シングルトンのSend
メソッドを呼び出して受け取ったURLを渡し、Auth0のOIDCクライアントに認証フローを終わらせるよう通知する必要があります。5iOSを構成する
ユーザーが認証に成功すると、このクイックスタートで前にセットアップしたCallback URLへリダイレクトされます。iOSデバイスでコールバックを扱うには、以下を行います:- アプリケーションの
Info.plist
ファイルをVisual Studioで開いて、[Advanced(詳細)] タブに移動します。 - [URL Types(URLタイプ)] にある**[Add URL Type(URLタイプの追加)]** ボタンをクリックします。
- 識別子 をAuth0、URLスキーマ をアプリケーションの
バンドル識別子
、ロール を[None(なし)]
に設定します。
info.plist
ファイルの例です:さらに、AppDelegate
クラスにあるOpenUrl
イベントでCallback URLを扱う必要があります。ActivityMediator
シングルトンのSend
メソッドを呼び出して受け取ったURLを渡し、Auth0のOIDCクライアントに認証フローを終わらせるよう通知する必要があります。6アプリケーションにログインを追加する
Auth0アプリケーションとAuth0 SDKの構成が完了したら、プロジェクトのためにログインをセットアップする必要があります。これを実現するには、SDKのLoginAsync()
メソッドを使用して、ユーザーをAuth0のユニバーサルログインページにリダイレクトするログインボタンを作成します。エラーがなければ、LoginAsync()
が返すLoginResult
でUser
、IdentityToken
、AccessToken
、RefreshToken
にアクセスすることができます。チェックポイント
ユーザー名とパスワードを使ってログインやサインアップができるようになりました。 ログインボタンをクリックして次の点を確認します: AndroidまたはiOSアプリケーションによってAuth0のユニバーサルログインページにリダイレクトされる。 ログインまたはサインアップできる。 Auth0によってアプリケーションにリダイレクトされる。7アプリケーションにログアウトを追加する
プロジェクトにログインしたユーザーには、ログアウトする方法も必要です。SDKのLogoutAsync()
メソッドを使用してログアウトボタンを作成します。ユーザーはログアウトすると、Auth0ログアウトエンドポイントにリダイレクトされてから、即座に、このクイックスタートで先ほどセットアップしたログアウトURLにリダイレクトで戻されます。チェックポイント
アプリケーションを実行して、ログアウトボタンをクリックします。以下の点を確認します: AndroidまたはiOSアプリケーションによって、アプリケーションの設定で[Allowed Logout URLs(許可されているログアウトURL)]の1つに指定されているアドレスへリダイレクトされる。 アプリケーションにログインしていない。8ユーザープロファイル情報を表示する
ユーザーがログインやログアウトできるようになったら、認証済のユーザーに関連付けられたプロファイル情報を取得できるようにしたいと考えるはずです。たとえば、ログインしたユーザーの名前やプロフィール写真をプロジェクトに表示したいかもしれません。AndroidまたはiOS用のAuth0 SDKでは、LoginResult.User
プロパティを通じてユーザー情報を提供します。 - Android :
次のステップ
成功です!ここまで来れば、アプリケーションにログイン、ログアウト、ユーザープロファイル情報が備わっているはずです。これでクイックスタートチュートリアルは終了ですが、機能はまだまだたくさんあります。Auth0でできることについて詳しくは、以下をご覧ください。- Auth0 Dashboard - Auth0のテナントやアプリケーションを構成して管理する方法について説明します
- auth0-oidc-client-net SDK - このチュートリアルで使用されているSDKをより詳しく説明します
- Auth0 Marketplace - Auth0の機能性を拡張できる各種の統合を見つけられます