チュートリアル: Android (Kotlin) モバイル アプリを登録して構成する

このチュートリアル シリーズでは、外部テナントを使用して認証する Android (Kotlin) モバイル アプリを構築する方法について説明します。 顧客のテナント内にアプリを登録し、Android (Kotlin) アプリを作成し、サインイン、サインアウトを実装し、保護された Web API を呼び出します。

このチュートリアルでは、次のことを行います。

  • 顧客テナント内にアプリケーションを登録します。
  • プラットフォーム リダイレクト URL を追加します
  • パブリック クライアント フローを有効にします。
  • 委任されたアクセス許可を Microsoft Graph に追加します

前提条件

アプリケーションの登録

Microsoft Entra を使用してアプリケーションでユーザーをサインインできるようにするには、作成するアプリケーションを Microsoft Entra 外部 ID に認識させる必要があります。 アプリの登録によって、アプリと Microsoft Entra の間に信頼関係が確立されます。 アプリケーションを登録すると、外部 ID によって、アプリケーション (クライアント) ID と呼ばれる一意識別子が生成されます。これは、認証要求を作成するときにアプリを識別するために使用される値です。

Microsoft Entra 管理センターにアプリを登録する方法を次の手順に示します。

  1. アプリケーション開発者以上として Microsoft Entra 管理センターにサインインします。

  2. 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコン を使用し、[ディレクトリとサブスクリプション] メニューから外部テナントに切り替えます。

  3. [ID]>[アプリケーション]>[アプリの登録] を参照します。

  4. [+ 新規登録] を選択します。

  5. 表示される [アプリケーションの登録] ページで、次のようにします。

    1. アプリのユーザーに表示されるわかりやすいアプリケーションの [名前] を入力します (例: ciam-client-app)。
    2. [サポートされているアカウントの種類] で、 [この組織のディレクトリ内のアカウントのみ] を選択します。
  6. [登録] を選択します。

  7. 登録が成功すると、アプリケーションの [概要] ペインが表示されます。 アプリケーションのソース コードで使用するアプリケーション (クライアント) ID を記録します。

プラットフォーム リダイレクト URL を追加する

アプリの登録にアプリの種類を指定するには、次の手順に従います。

  1. [管理] で、 [認証] を選択します。
  2. [プラットフォーム構成] ページで、[プラットフォームの追加] を選択し、[Android] オプションを選択します。
  3. プロジェクトのパッケージ名を入力します。 サンプル コードをダウンロードした場合、この値は com.azuresamples.msaldelegatedandroidkotlinsampleapp です。
  4. [Android アプリの構成] ペインの [署名ハッシュ] セクションで、[開発用署名ハッシュの生成] を選択します。これは開発環境ごとに変わります。お使いのターミナルでオペレーティング システムの KeyTool コマンドをコピーして実行します。
  5. KeyTool によって生成された署名ハッシュを入力します。
  6. [構成] をクリックします。
  7. [Android の構成] ペインから [MSAL 構成] をコピーし、後でアプリを構成するために保存します。
  8. 完了 を選択します。

パブリック クライアント フローを有効にする

アプリをパブリック クライアントとして識別するには、次の手順に従います。

  1. [管理] で、 [認証] を選択します。

  2. [詳細設定] で、[パブリック クライアント フローを許可する] に対して [はい] を選択します。

  3. [保存] を選択して変更を保存します。

  1. [アプリの登録] ページで、作成したアプリケーション ("ciam-client-app" など) を選択して、その [概要] ページを開きます。

  2. [管理] の下にある [API のアクセス許可] を選択します。 構成済みアクセス許可一覧から、お使いのアプリケーションに User.Read アクセス許可が割り当てられています。 ただし、テナントが外部テナントであるため、コンシューマー ユーザー自身はこのアクセス許可に同意できません。 管理者は、テナント内のすべてのユーザーに代わってこのアクセス許可に同意する必要があります。

    1. [<ご使用のテナント名> に管理者の同意を与えます] を選択してから、[はい] を選択します。
    2. [最新の情報に更新] を選択し、両方のスコープの [状態] に "<ご使用のテナント名> に付与されました" と表示されていることを確認します。

次のステップ

チュートリアル: 認証用に Android アプリを準備する