1
Auth0を構成する
Auth0のサービスを利用するには、Auth0 Dashboadに設定済みのアプリケーションがある必要があります。Auth0アプリケーションは、プロジェクトに認証を構成する場所です。
アプリケーションを構成する
対話型のセレクターを使ってAuth0アプリケーションを新規作成するか、統合したいプロジェクトを表す既存のアプリケーションを選択します。Auth0のすべてのアプリケーションには英数字からなる一意のクライアントIDが割り当てられており、アプリケーションのコードがSDKを通じてAuth0 APIを呼び出す際に使用されます。このクイックスタートを使って構成されたすべての設定は、Dashboardのアプリケーションを自動更新します。今後、アプリケーションの管理もDashboardで行えます。代わりに完了済みの構成を見てみたい場合は、サンプルアプリケーションをご覧ください。Callback URLを構成する
Callback URLとは、Auth0によって認証後のユーザーをダイレクトするアプリケーションURLです。この値を設定していない場合、ユーザーはログイン後にアプリケーションに戻りません。サンプルプロジェクトに沿って進めている場合は、
demo://{yourDomain}/android/YOUR_APP_PACKAGE_NAME/callback
に設定してください。ログアウトURLを構成する
ログアウトURLとは、Auth0によってログアウト後のユーザーをリダイレクトするアプリケーションURLです。この値を設定していない場合、ユーザーはアプリケーションからログアウトできず、エラーを受け取ります。サンプルプロジェクトに沿って進めている場合は、
demo://{yourDomain}/android/YOUR_APP_PACKAGE_NAME/callback
に設定してください。2
Auth0 Android SDKをインストールする
Auth0 Android SDKをプロジェクトに追加します。ライブラリーはAuth0のAuthentication APIとManagement APIに要求を行います。アプリのAndroidとKotlinのプラグインのそれぞれに対して、Java 8+バイトコードをターゲットにするようにします。
build.gradle
依存関係セクションで、以下を追加します。3
マニフェストのプレースホルダーを追加する
SDKにはマニフェストのプレースホルダーが必要です。Auth0は内部でプレースホルダーを使用して、認証のCallback URLを捉える
intent-filter
を定義します。Auth0テナントのドメインとCallback URLスキームを設定する必要があります。アクティビティーに特別なintent-filter
を宣言する必要はありません。これは、マニフェストのプレースホルダーをAuth0ドメイン とスキーム の値で定義したため、ライブラリーがリダイレクトを処理します。ここでは、
auth0Scheme
にdemo
の値を使用したため、カスタムURLスキームをログイン後にAuth0がリダイレクトするURLに使用することができます。Androidアプリのリンクを使用したい場合は、https
を使用する方法もあります。この値の設定に関する詳細情報は、Auth0.Android SDKのREADMEをお読みください。4
アプリケーションを構成する
SDKが正しく機能するためには、次のプロパティをAndroid Studio内でSync Project with Gradle Files を実行するか、コマンドラインから
strings.xml
で設定しなければなりません:com_auth0_domain
:Auth0テナントのドメインです。通常、Auth0 Dashboardにあるアプリケーションの[Settings(設定)]の[Domain(ドメイン)]フィールドで確認できます。カスタムドメインを使用している場合は、その値を代わりに設定してください。com_auth0_client_id
:このクイックスタートで前にセットアップしたAuth0アプリケーションのIDです。Auth0 Dashboardにあるアプリケーションの[Settings(設定)]の[Client ID(クライアントID)]フィールドで確認できます。
AndroidManifest.xml
ファイルがandroid.permissions.INTERNET
のアクセス許可を指定していることを確認します。./gradlew clean assembleDebug
を実行します。Gradleの使用に関する詳細は、Gradleの公式のドキュメンテーションを確認してください。
5
アプリケーションにログインを追加する
アプリケーションに認証をセットアップするには、ユニバーサルログインが最も手軽な方法です。最良のエクスペリエンス、高い安全性、幅広い機能を活用するためにも、ユニバーサルログインの使用をお勧めします。
onCreate
メソッドで、Auth0
クラスの新しいインスタンスを作成し、ユーザー資格情報を保持します。loginWithBrowser
メソッドを作成し、WebAuthProvider
クラスを使用して、Auth0 Dashboardのアプリケーションで有効にした接続で認証します。ここでは、初期設定の一部としてauth0Scheme
マニフェストのプレースホルダーで使用されたスキーム値を渡すことができます。WebAuthProvider#start
関数を呼び出した後、ブラウザーが起動し、ログインページが表示されます。ユーザーが認証を行うと、Callback URLが呼び出されます。Callback URLには、認証プロセスの最終結果が含まれています。チェックポイント
loginWithBrowserを呼び出すアプリケーションにボタンを追加します。このボタンをクリックすると、AndroidアプリケーションによってAuth0ユニバーサルログインページにリダイレクトされ、ユーザー名とパスワードまたはソーシャルプロバイダーを使ってログインまたはサインアップできるようになったことを確認します。 完了したら、Auth0がアプリにリダイレクトで戻すことを確認します。6
アプリケーションにログアウトを追加する
WebAuthProvider
を使用して、認証時にブラウザーで設定されたクッキーを削除すると、ユーザーは次回の認証試行時に、資格情報を再入力するよう求められます。logout
メソッドをアプリに追加してユーザーのセッションを削除し、アプリからログアウトします。ここでは、初期設定の一部としてauth0Scheme
マニフェストのプレースホルダーで使用されたスキーム値を渡すことができます。WebAuthProvider
クラスを使用して、ログアウトを実装します。この呼び出しによってブラウザーが開き、ユーザーはログアウトエンドポイントに移動されます。ユーザーがログアウトをキャンセルする場合は、ユーザーを前のURLにリダイレクトすることを検討してください。チェックポイント
logoutを呼び出し、ユーザーをアプリケーションからログアウトするアプリにボタンを追加します。このボタンをクリックすると、Androidアプリがユーザーをログアウトページにリダイレクトしてからもう一度リダイレクトで戻すこと、そして、アプリケーションにログインしていないことを確認します。7
ユーザープロファイル情報を表示する
AuthenticationAPIClient
クラスを使用して、Auth0からユーザーのプロファイルを取得します。これには以下のものが必要です。- ログインフェーズから返されるアクセストークン
WebAuthProvider.login
にprofile
スコープが含まれる必要がある
email
スコープを指定する必要があります。このクイックスタートで、上のログイン手順中にデフォルトで
openid profile email
スコープが設定されます。チェックポイント
ログイン後にshowUserProfile関数を呼び出します。onSuccessコールバックがユーザーのプロファイル情報を返すことを確認します。次のステップ
成功です!ここまで来れば、アプリケーションにログイン、ログアウト、ユーザープロファイル情報が備わっているはずです。これでクイックスタートチュートリアルは終了ですが、機能はまだまだたくさんあります。Auth0でできることについて詳しくは、以下をご覧ください。- Auth0 Dashboard - Auth0のテナントやアプリケーションを構成して管理する方法について説明します
- Auth0.Android SDK - このチュートリアルで使用されているSDKをより詳しく説明します
- Auth0 Marketplace - Auth0の機能性を拡張できる各種の統合を見つけられます