次の方法で共有


ネイティブ認証を使用してサンプル Android (Kotlin) アプリでユーザーをサインインする

適用対象: 灰色の X 記号がある白い円。 従業員テナント 白いチェック マーク記号がある緑の円。 外部テナント (詳細情報)

このクイックスタートでは、Microsoft Entra の ネイティブ認証を使用したサインアップ、サインイン、サインアウト、パスワード リセットのシナリオを示す Android サンプル アプリケーションを実行する方法について説明します。

[前提条件]

パブリック クライアントとネイティブ認証フローを有効にする

このアプリがパブリック クライアントであり、ネイティブ認証を使用できることを指定するには、パブリック クライアントとネイティブ認証フローを有効にします。

  1. アプリ登録ページから、パブリック クライアントとネイティブ認証フローを有効にするアプリ登録を選択します。
  2. [管理] で、 [認証] を選択します。
  3. [詳細設定 で、パブリック クライアント フローを許可します。
    1. [次のモバイルとデスクトップのフローを有効にする] で、[はい] を選びます。
    2. ネイティブ認証 を有効にするには、[はい] を選択します。
  4. [保存] ボタンを選びます。

サンプルの Android モバイル アプリケーションを複製する

  1. ターミナルを開き、コードを保持するディレクトリに移動します。

  2. 次のコマンドを実行して、GitHub からアプリケーションを複製します。

    git clone https://github.com/Azure-Samples/ms-identity-ciam-native-auth-android-sample 
    

サンプル Android モバイル アプリケーションを構成する

  1. Android Studio で、複製したプロジェクトを開きます。

  2. app/src/main/res/raw/native_auth_sample_app_config.json ファイルを開きます。

  3. プレースホルダーを見つけてください。

    • Enter_the_Application_Id_Here を、前に登録したアプリのアプリケーション (クライアント) ID に置き換えます。
    • Enter_the_Tenant_Subdomain_Here をディレクトリ (テナント) サブドメインに置き換えます。 たとえば、テナントのプライマリ ドメインが contoso.onmicrosoft.com の場合は、contoso を使用します。 テナント サブドメインがわからない場合は、 テナントの詳細を読み取る方法について説明します。

これでアプリが構成され、実行する準備ができました。

サンプルの Android モバイル アプリケーションを実行してテストする

アプリをビルドして実行するには、次の手順に従います。

  1. ツール バーの [実行構成] メニューからアプリを選択します。

  2. ターゲット デバイス メニューで、アプリを実行するデバイスを選択します。

    デバイスが構成されていない場合は、Android Emulator を使用する Android 仮想デバイスを作成するか、物理 Android デバイスを接続する必要があります。

  3. [実行] ボタンを選択します。 アプリが [電子メールと OTP ] 画面を開きます。

    Android アプリケーションで電子メールを入力するためのユーザー プロンプトのスクリーンショット。

  4. 有効なメール アドレスを入力し、[ サインアップ ] ボタンを選択します。 アプリで送信コード画面が開き、電子メール アドレスに OTP コードが表示されます。

    Android アプリケーションでワンタイム パスコードを入力するためのユーザー プロンプトのスクリーンショット。

  5. 受信トレイに受信する OTP コードを入力し、[ 次へ] を選択します。 サインアップが成功すると、アプリによって自動的にサインインされます。 メールの受信トレイに OTP コードが届かない場合は、[パスコードの再送信] を選択してしばらくしてから 再送信できます

  6. サインアウトするには、[ サインアウト ] ボタンを選択します。

このサンプルでサポートされるその他のシナリオ

このサンプル アプリでは、次の認証フローもサポートされています。

  • 電子メール + パスワード は、パスワードを含む電子メールによるサインインまたはサインアップ フローを対象とします。
  • ユーザー属性を使用した電子メールとパスワードのサインアップ では、電子メールとパスワードによるサインアップと、ユーザー属性の送信について説明します。
  • パスワード リセット には、セルフサービス パスワード リセット (SSPR) が含まれます。
  • Access Protected API では、ユーザーが正常にサインアップまたはサインインしてアクセス トークンを取得した後に、保護された API を呼び出す方法について説明します。
  • Web ブラウザーへのフォールバック では、ユーザーが何らかの理由でネイティブ認証を使用して認証を完了できない場合に、ブラウザー ベースの認証をフォールバック メカニズムとして使用する方法について説明します。

パスワード フローを使用して電子メールをテストする

このセクションでは、メールとパスワードのフロー、およびユーザー属性を使用したメールとパスワードサインアップ、SSPR などのバリエーションをテストします。

  1. ユーザー フローを作成して新しい ユーザー フローを作成 する手順を使用しますが、今回は認証方法として [パスワード付きの電子メール] を選択します。 ユーザー属性として 国/地域市区町村 を構成する必要があります。 または、既存のユーザー フローを変更して、パスワードで電子メールを使用することもできます (外部 ID の選択>ユーザー フロー>SignInSignUpSample>Identity プロバイダー>Email with password>Save)。

  2. 新しいユーザー フローにアプリを追加するには、アプリケーションを新しいユーザー フローに関連付ける手順を使用します。

  3. サンプル アプリを実行し、省略記号メニュー (...) を選択して、その他のオプションを開きます。

  4. テストするシナリオ ( [Email + password]\(電子メール + パスワード \) や [ Email + password sign-up with user attributes]\(ユーザー属性を使用した電子メール + パスワード + パスワードのサインアップ \) や [パスワードのリセット]など) を選択し、プロンプトに従います。 パスワードリセットをテストするには、まずユーザーをサインアップし、テナント内のすべてのユーザーに対して電子メールワンタイムパスコードを有効にする必要があります。

保護された API フローのテスト呼び出し

「ネイティブ認証を使用してサンプル Android モバイル アプリで保護された Web API を呼び出す」の手順を使用して、保護された Web API をサンプル Android モバイル アプリから呼び出します。

次のステップ

チュートリアル: ネイティブ認証用に Android アプリを準備します。