適用対象: 従業員テナント
外部テナント (詳細情報)
このクイックスタートでは、Microsoft Entra の ネイティブ認証を使用したサインアップ、サインイン、サインアウト、パスワード リセットのシナリオを示す Android サンプル アプリケーションを実行する方法について説明します。
[前提条件]
- アクティブなサブスクリプションを持つ Azure アカウント。 アカウントをまだお持ちでない場合は、無料アカウントを作成します。
- この Azure アカウントには、アプリケーションを管理するためのアクセス許可が必要です。 以下のいずれの Microsoft Entra ロールにも、必要なアクセス許可が含まれています。
- アプリケーション管理者
- アプリケーション開発者
- 外部テナント。 作成するには、次の方法から選択します。
- Microsoft Entra 外部 ID 拡張機能を使用して、Visual Studio Code で外部テナントを直接設定します。 (おすすめ)
- Microsoft Entra 管理センターで新しい外部テナント を作成します。
- 電子メール ワンタイム パスコード ID プロバイダー オプションを使用して設定されたユーザー フロー。 詳細については、 外部テナント内のアプリのセルフサービス サインアップ ユーザー フローを作成する方法に関するページを参照してください。 このユーザー フローは、複数のアプリケーションに使用できます。
- Microsoft Entra 管理センターで、次の構成で新しいアプリケーションを登録し、管理者の同意を付与します。 詳細な手順については、「 アプリケーションの登録」を参照してください。 後で使用するために、 アプリケーション (クライアント) ID と ディレクトリ (テナント) ID を 記録します。
- 名前: ciam-client-app
- サポートされているアカウントの種類: この組織のディレクトリ内のアカウントのみ (シングル テナント)
- アプリケーションをユーザー フローに追加する
- Android Studio。
パブリック クライアントとネイティブ認証フローを有効にする
このアプリがパブリック クライアントであり、ネイティブ認証を使用できることを指定するには、パブリック クライアントとネイティブ認証フローを有効にします。
- アプリ登録ページから、パブリック クライアントとネイティブ認証フローを有効にするアプリ登録を選択します。
- [管理] で、 [認証] を選択します。
- [詳細設定 で、パブリック クライアント フローを許可します。
- [次のモバイルとデスクトップのフローを有効にする] で、[はい] を選びます。
- ネイティブ認証 を有効にするには、[はい] を選択します。
- [保存] ボタンを選びます。
サンプルの Android モバイル アプリケーションを複製する
ターミナルを開き、コードを保持するディレクトリに移動します。
次のコマンドを実行して、GitHub からアプリケーションを複製します。
git clone https://github.com/Azure-Samples/ms-identity-ciam-native-auth-android-sample
サンプル Android モバイル アプリケーションを構成する
Android Studio で、複製したプロジェクトを開きます。
app/src/main/res/raw/native_auth_sample_app_config.json ファイルを開きます。
プレースホルダーを見つけてください。
Enter_the_Application_Id_Here
を、前に登録したアプリのアプリケーション (クライアント) ID に置き換えます。Enter_the_Tenant_Subdomain_Here
をディレクトリ (テナント) サブドメインに置き換えます。 たとえば、テナントのプライマリ ドメインがcontoso.onmicrosoft.com
の場合は、contoso
を使用します。 テナント サブドメインがわからない場合は、 テナントの詳細を読み取る方法について説明します。
これでアプリが構成され、実行する準備ができました。
サンプルの Android モバイル アプリケーションを実行してテストする
アプリをビルドして実行するには、次の手順に従います。
ツール バーの [実行構成] メニューからアプリを選択します。
ターゲット デバイス メニューで、アプリを実行するデバイスを選択します。
デバイスが構成されていない場合は、Android Emulator を使用する Android 仮想デバイスを作成するか、物理 Android デバイスを接続する必要があります。
[実行] ボタンを選択します。 アプリが [電子メールと OTP ] 画面を開きます。
有効なメール アドレスを入力し、[ サインアップ ] ボタンを選択します。 アプリで送信コード画面が開き、電子メール アドレスに OTP コードが表示されます。
受信トレイに受信する OTP コードを入力し、[ 次へ] を選択します。 サインアップが成功すると、アプリによって自動的にサインインされます。 メールの受信トレイに OTP コードが届かない場合は、[パスコードの再送信] を選択してしばらくしてから 再送信できます。
サインアウトするには、[ サインアウト ] ボタンを選択します。
このサンプルでサポートされるその他のシナリオ
このサンプル アプリでは、次の認証フローもサポートされています。
- 電子メール + パスワード は、パスワードを含む電子メールによるサインインまたはサインアップ フローを対象とします。
- ユーザー属性を使用した電子メールとパスワードのサインアップ では、電子メールとパスワードによるサインアップと、ユーザー属性の送信について説明します。
- パスワード リセット には、セルフサービス パスワード リセット (SSPR) が含まれます。
- Access Protected API では、ユーザーが正常にサインアップまたはサインインしてアクセス トークンを取得した後に、保護された API を呼び出す方法について説明します。
- Web ブラウザーへのフォールバック では、ユーザーが何らかの理由でネイティブ認証を使用して認証を完了できない場合に、ブラウザー ベースの認証をフォールバック メカニズムとして使用する方法について説明します。
パスワード フローを使用して電子メールをテストする
このセクションでは、メールとパスワードのフロー、およびユーザー属性を使用したメールとパスワードサインアップ、SSPR などのバリエーションをテストします。
ユーザー フローを作成して新しい ユーザー フローを作成 する手順を使用しますが、今回は認証方法として [パスワード付きの電子メール] を選択します。 ユーザー属性として 国/地域 と 市区町村 を構成する必要があります。 または、既存のユーザー フローを変更して、パスワードで電子メールを使用することもできます (外部 ID の選択>ユーザー フロー>SignInSignUpSample>Identity プロバイダー>Email with password>Save)。
サンプル アプリを実行し、省略記号メニュー (...) を選択して、その他のオプションを開きます。
テストするシナリオ ( [Email + password]\(電子メール + パスワード \) や [ Email + password sign-up with user attributes]\(ユーザー属性を使用した電子メール + パスワード + パスワードのサインアップ \) や [パスワードのリセット]など) を選択し、プロンプトに従います。 パスワードリセットをテストするには、まずユーザーをサインアップし、テナント内のすべてのユーザーに対して電子メールワンタイムパスコードを有効にする必要があります。
保護された API フローのテスト呼び出し
「ネイティブ認証を使用してサンプル Android モバイル アプリで保護された Web API を呼び出す」の手順を使用して、保護された Web API をサンプル Android モバイル アプリから呼び出します。
次のステップ
チュートリアル: ネイティブ認証用に Android アプリを準備します。