サンプル iOS (Swift) モバイル アプリでユーザーをサインインさせる
このガイドでは、ユーザーをサインインするようにサンプル iOS モバイル アプリケーションを構成する方法について説明します。
この記事では、次のタスクを実行します。
- Microsoft Entra 管理センターでアプリケーションを登録します。
- プラットフォーム リダイレクト URL を追加します。
- パブリック クライアント フローを有効にします。
- 外部テナントの詳細に独自の Microsoft Entra 外部 ID を使用するように iOS 構成コード サンプル ファイルを更新します。
- サンプル iOS モバイル アプリケーションを実行してテストします。
前提条件
- Xcode。
- 外部テナント。 お持ちでない場合は、無料試用版にサインアップしてください。
アプリケーションの登録
Microsoft Entra を使用してアプリケーションでユーザーをサインインできるようにするには、作成するアプリケーションを Microsoft Entra 外部 ID に認識させる必要があります。 アプリの登録によって、アプリと Microsoft Entra の間に信頼関係が確立されます。 アプリケーションを登録すると、外部 ID によって、アプリケーション (クライアント) ID と呼ばれる一意識別子が生成されます。これは、認証要求を作成するときにアプリを識別するために使用される値です。
Microsoft Entra 管理センターにアプリを登録する方法を次の手順に示します。
アプリケーション開発者以上として Microsoft Entra 管理センターにサインインします。
複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコン を使用し、[ディレクトリとサブスクリプション] メニューから外部テナントに切り替えます。
[ID]>[アプリケーション]>[アプリの登録] を参照します。
[+ 新規登録] を選択します。
表示される [アプリケーションの登録] ページで、次のようにします。
- アプリのユーザーに表示されるわかりやすいアプリケーションの [名前] を入力します (例: ciam-client-app)。
- [サポートされているアカウントの種類] で、 [この組織のディレクトリ内のアカウントのみ] を選択します。
[登録] を選択します。
登録が成功すると、アプリケーションの [概要] ペインが表示されます。 アプリケーションのソース コードで使用するアプリケーション (クライアント) ID を記録します。
プラットフォーム リダイレクト URL を追加する
アプリの登録にアプリの種類を指定するには、次の手順に従います。
- [管理] で、 [認証] を選択します。
- [プラットフォーム構成] ページで、[プラットフォームの追加] を選択し、[iOS / macOS] オプションを選びます。
- プロジェクトのバンドル ID を入力します。 サンプル コードをダウンロードした場合、この値は
com.microsoft.identitysample.ciam.MSALiOS
です。 - [構成] を選択し、後でアプリを構成するときに入力できるように、[iOS / macOS の構成] ペインに表示される [MSAL 構成] を保存しておきます。
- 完了 を選択します。
パブリック クライアント フローを有効にする
アプリをパブリック クライアントとして識別するには、次の手順に従います。
[管理] で、 [認証] を選択します。
[詳細設定] で、[パブリック クライアント フローを許可する] に対して [はい] を選択します。
[保存] を選択して変更を保存します。
管理者の同意を与える
アプリケーションを登録すると、それに User.Read アクセス許可が割り当てられます。 ただし、テナントが外部テナントであるため、顧客のユーザー自身がこのアクセス許可に同意することはできません。 管理者は、テナント内のすべてのユーザーに代わってこのアクセス許可に同意する必要があります。
[アプリの登録] ページで、作成したアプリケーション ("ciam-client-app" など) を選択して、その [概要] ページを開きます。
[管理] の下にある [API のアクセス許可] を選択します。
- [<ご使用のテナント名> に管理者の同意を与えます] を選択してから、[はい] を選択します。
- [最新の情報に更新] を選択し、そのアクセス許可の [状態] に "<テナント名> に付与されました" と表示されていることを確認します。
サンプルの iOS モバイル アプリケーションを複製する
サンプル アプリケーションを取得するには、GitHub から複製するか、.zip ファイルとしてダウンロードします。
サンプルをクローンするには、コマンド プロンプトを開き、プロジェクトを作成する場所に移動し、次のコマンドを入力します。
git clone https://github.com/Azure-Samples/ms-identity-ciam-browser-delegated-ios-sample.git
サンプル iOS モバイル アプリケーションを構成する
認証と Microsoft Graph リソースへのアクセスを有効にするには、次の手順に従ってサンプルを構成します。
Xcode で、複製したプロジェクトを開きます。
/MSALiOS/Configuration.swift ファイルを開きます。
次のプレースホルダーを見つけます。
Enter_the_Application_Id_Here
を、前に登録したアプリのアプリケーション (クライアント) ID に置き換えます。Enter_the_Redirect_URI_Here
。プラットフォーム リダイレクト URL を追加したときに先ほどダウンロードした Microsoft Authentication Library (MSAL) 構成ファイルの kRedirectUri の値に置き換えます。Enter_the_Protected_API_Scopes_Here
を管理者の同意の付与に記録されている範囲に置き換えます。 スコープを記録していない場合は、このスコープ リストを空のままにすることができます。Enter_the_Tenant_Subdomain_Here
を、ディレクトリ (テナント) サブドメインに置き換えます。 たとえば、テナントのプライマリ ドメインがcontoso.onmicrosoft.com
の場合は、contoso
を使用します。 テナントのサブドメイン名を知らない場合は、テナントの詳細を読み取る方法をご確認ください。
アプリが構成され、実行する準備ができました。
iOS サンプル アプリを実行してテストする
アプリをビルドして実行するには、次のステップに従います。
- コードをビルドして実行するには、Xcode のメニューの [製品] から [実行]を選択します。 ビルドが成功すると、Xcode はシミュレーターでサンプル アプリを起動します。
- [対話的にトークンを取得] を選択して、アクセス トークンを要求します。
- [API - GET の実行] を選択し、保護された ASP.NET Core Web API を呼び出すと、エラーが発生します。
保護された Web API の呼び出しの詳細については、「次のステップ」を参照してください