ラボ 19 - アプリケーションを登録する
ログインの種類: Microsoft 365 管理
予想所要時間: 30 分
演習 1 - アプリケーションを登録する
タスク 1 - アプリの登録
アプリケーションを登録すると、アプリケーションと Microsoft ID プラットフォームとの間の信頼関係が確立されます。 この信頼は一方向です。つまり、アプリは Microsoft ID プラットフォームを信頼しますが、その逆はありません。
-
Microsoft Entra 管理センター (
https://entra.microsoft.com) にグローバル管理者としてサインインします。注: サインイン中に多要素認証 (MFA) を完了するように求められる場合があります。 続行する前に、プロンプトに従って認証方法を構成または確認します。
-
左側のナビゲーションで、[Entra ID] の下にある [アプリの登録] を選択します。
-
[アプリの登録] ページで、[+ 新規登録] を選択します。
-
[アプリケーションの登録] ブレードで既定値を使用して、”デモ アプリ” という名前のアプリを登録します。 リダイレクト URI を入力する必要はありません。
![[アプリケーションの登録] ページで名前と既定の設定が強調表示されている画面イメージ](/SC-300-Identity-and-Access-Administrator.JA-JP/Instructions/Labs/media/lp3-mod3-register-an-application.png)
-
登録ボタンを選択します。
-
完了すると、[デモ アプリ] ページが表示されます。
タスク 2 - プラットフォーム設定を構成する
リダイレクト URI など、アプリケーションの種類ごとの設定は、Microsoft Entra 管理センターの [プラットフォームの構成] で構成されます。 Web や シングルページ アプリケーションなどの一部のプラットフォームでは、リダイレクト URI を手動で指定する必要があります。 モバイルやデスクトップなどの他のプラットフォームでは、他の設定を構成するときに自動的に生成されるリダイレクト URI から選択できます。
ターゲットのプラットフォームまたはデバイスに基づいてアプリケーション設定を構成するには、次の手順を行います。
そのプラットフォーム設定を構成して、登録済みのアプリケーションのリダイレクト URI を追加および変更します。
-
Microsoft Entra 管理センターの [アプリの登録] で、アプリケーションを選択します。
-
[管理] で、 [認証] (プレビュー) を選択します。
-
[リダイレクト URI の構成] で、 [+ リダイレクト URI の追加] を選択します。
-
[リダイレクト URI を追加するプラットフォームの選択] で、アプリケーションの種類 (プラットフォーム) のタイルを選択して、その設定を構成します。
![Azure portal の [プラットフォームの構成] ウィンドウのスクリーンショット](/SC-300-Identity-and-Access-Administrator.JA-JP/Instructions/Labs/media/configure-platforms.png)
プラットフォーム 構成設定 Web アプリの [リダイレクト URI] (認証後に Microsoft ID プラットフォームによってユーザーのクライアントがリダイレクトされ、セキュリティ トークンが送信される場所) を入力します。 サーバーで実行される標準の Web アプリケーションについては、このプラットフォームを選択します。 シングルページ アプリ アプリの [リダイレクト URI] (認証後に Microsoft ID プラットフォームによってユーザーのクライアントがリダイレクトされ、セキュリティ トークンが送信される場所) を入力します。 JavaScript、または Angular、Vue.js、React.js、Blazor WebAssembly などのフレームワークでクライアント側の Web アプリをビルドしている場合は、このプラットフォームを選択します。 iOS/macOS アプリの [バンドル ID] を入力します。これは、 Info.plist の XCode または [ビルド設定] にあります。 バンドル ID を指定すると、リダイレクト URI が自動的に生成されます。 Android AndroidManifest.xml ファイルにあるアプリの [パッケージ名] を入力し、 署名ハッシュを生成して入力します。 これらの設定を指定すると、リダイレクト URI が自動的に生成されます。 モバイル アプリケーションとデスクトップ アプリケーション [推奨されるリダイレクト URI] のいずれかを選択するか、 [カスタム リダイレクト URI] を指定します。 デスクトップ アプリケーションの場合は、https://login.microsoftonline.com/common/oauth2/nativeclient をお勧めします。 最新の Microsoft Authentication Library (MSAL) を使用していない、またはブローカーを使用していないモバイル アプリケーションには、このプラットフォームを選択します。 また、デスクトップ アプリケーションにも、このプラットフォームを選択します。 -
プラットフォームとして [Web] を選択します。
-
リダイレクト URI に「
https://localhost」と入力します。 -
[構成] を選択して、プラットフォームの構成を完了します。
タスク 3 - 資格情報、証明書、クライアント シークレットを追加する
資格情報は、Web API にアクセスする Confidential クライアント アプリケーションによって使用されます。 Confidential クライアントの例として、Web アプリ、その他の Web API、またはサービス型およびデーモン型アプリケーションなどがあります。 資格情報により、アプリケーションはそれ自体として認証され、実行時にユーザーによる操作は必要ありません。
証明書とクライアント シークレット (文字列) の両方を資格情報として Confidential クライアント アプリの登録に追加できます。
![アプリの登録の [証明書およびシークレット] ウィンドウを示す Azure portal のスクリーンショット](/SC-300-Identity-and-Access-Administrator.JA-JP/Instructions/Labs/media/portal-05-app-reg-04-credentials.png)
注: 証明書は、”公開キー” とも呼ばれ、クライアント シークレットよりも高いレベルの保証を提供するため、推奨される資格情報の種類です。 ** 信頼された公開証明書を使用する場合は、証明書とシークレット機能を使用して証明書を追加できます。 証明書ファイルの種類は .cer、.pem、.crt のいずれかである必要があります。
注: クライアント シークレットは、”アプリケーション パスワード” とも呼ばれ、アプリで自身を識別するために証明書の代わりに使用できる文字列値です。 ** 2 種類の資格情報のうち、使いやすい方です。 多くの場合は開発時に使用されますが、証明書より安全性が低いと見なされています。 運用環境で実行するアプリケーションでは、証明書を使用する必要があります。
-
Microsoft Entra 管理センターの [アプリの登録] で、アプリケーションを選択します。
-
[証明書とシークレット]、[新しいクライアント シークレット] の順に選択します。
-
クライアント シークレットの説明と期間を追加します。
- 説明 = SC300 ラボのシークレット
- 期間 = 90 日 (3 か月)
-
[追加] を選択します。
-
クライアント アプリケーション コードで使用するシークレットの値をメモ帳に保存します 。[証明書とシークレット] ページに新しいシークレット値が表示されます。 この値は一度だけ表示されるため、これをコピーすることが重要です。ページを更新して戻ると、マスクされた値としてのみ表示されます。
Web アプリを登録すると、API のコードで API のコンシューマーにきめ細かなアクセス許可を付与するのに使用できるスコープをいつでも追加できます。
タスク 5 - スコープを追加する
クライアント アプリケーションのコードによって、保護されたリソース (Web API) への要求と共にアクセス トークンを渡すことにより、Web API で定義された操作を実行するアクセス許可が要求されます。 Web API では、操作に必要なスコープ (アプリケーションのアクセス許可とも呼ばれます) が受け取ったアクセス トークンに含まれている場合にのみ、要求された操作が実行されます。
まず、次の手順で Employees.Read.All という名前のスコープの例を作成します。
-
Microsoft Entra 管理センターの [アプリの登録] で、アプリケーションを選択します。
-
[管理] で [API の公開] を選択し、[+ スコープの追加] を選択します。
![Azure portal のアプリ登録の [API の公開] ペイン](/SC-300-Identity-and-Access-Administrator.JA-JP/Instructions/Labs/media/portal-02-expose-api.png)
-
アプリケーション ID URI を設定するように求められます。 値を api://DemoAppAPI に設定します。
注: アプリ ID URI は、API のコードで参照するスコープのプレフィックスとして機能し、グローバルに一意である必要があります。 入力されている既定値 (api://<application-client-id> 形式) を使用するか、
https://contoso.com/apiのようにより読みやすい URI を指定することもできます。 -
Save and continue を選択します。
-
次に、 [スコープの追加] ペインでスコープの属性を指定します。 このチュートリアルでは、3 列目 ([値]) の値を使用します。
フィールド 内容 値 スコープ名 スコープの名前。 一般的なスコープの名前付け規則は、resource.operation.constraint です。 Employees.Read.All 同意できるユーザー このスコープにユーザーが同意できるかどうかと、管理者の同意が必要かどうか。 より高い特権のアクセス許可にするには、 [管理者のみ] を選択します。 管理者とユーザー 管理者の同意の表示名 管理者のみに表示される、スコープの目的についての簡単な説明。 従業員レコードへの読み取り専用アクセス 管理者の同意の説明 管理者のみに表示される、スコープによって付与されるアクセス許可の詳細な説明。 すべての従業員データへの読み取り専用アクセスをアプリケーションに許可します。 ユーザーの同意の表示名 スコープの目的に関する簡単な説明。 [同意できるユーザー] を [管理者とユーザー] に設定した場合にのみユーザーに表示されます。 従業員レコードへの読み取り専用アクセス ユーザーの同意の説明 スコープによって付与されるアクセス許可の詳細な説明。 [同意できるユーザー] を [管理者とユーザー] に設定した場合にのみユーザーに表示されます。 従業員データへの読み取り専用アクセスをアプリケーションに許可します。 -
[状態] を [有効] に設定し、 [スコープの追加] を選択します。
-
(省略可能) 定義されているスコープに対してアプリのユーザーによる同意を求めるメッセージを表示しないようにするために、クライアント アプリケーションによる Web API へのアクセスを ‘‘事前承認する’’ ことができます。 ** ユーザーには同意を拒否する機会がないため、信頼できるクライアント アプリケーション ‘‘だけ’’ を事前承認します。 **
-
[認可済みのクライアント アプリケーション] で、 [クライアント アプリケーションの追加] を選択します。
-
事前承認するクライアント アプリケーションの [アプリケーション (クライアント) ID] を入力します。 たとえば、以前に登録した Web アプリケーションのそれです。
-
[承認済みのスコープ] で、同意を求めるメッセージを表示しないスコープを選んでから、 [アプリケーションの追加] を選択します。
-
この省略可能な手順を行った場合、クライアント アプリは認可済みのクライアント アプリ (PCA) になり、ユーザーはアプリにサインインするときに同意を求められません。
-
タスク 6 - 管理者の同意が必要なスコープを追加する
次に、管理者のみが同意できる Employees.Write.All という名前の別の例のスコープを追加します。 通常、管理者の同意が必要なスコープは、多くの場合、ユーザーが対話的にサインインしていないバックエンド サービスまたはデーモンとして実行されるクライアント アプリケーションによる高い特権操作へのアクセス権を付与するために使用されます。
-
Employees.Write.All のスコープの例を追加するには、上記の手順に従って、これらの値を [スコープの追加] ペインで指定します。
フィールド 値の例 スコープ名 Employees.Write.All 同意できるユーザー 管理者のみ 管理者の同意の表示名 従業員レコードへの書き込みアクセス 管理者の同意の説明 すべての従業員データへの書き込みアクセスをアプリケーションに許可します。 ユーザーの同意の表示名 なし (空のまま) ユーザーの同意の説明 なし (空のまま) -
[状態] を [有効] に設定し、[スコープの追加] を選択します。
注: 前のセクションで説明した両方のスコープの例を正しく追加すると、この画像のように、Web API のアプリ登録の [API の公開] ペインに表示されます。
![2 つの公開されたスコープを示す [API の公開] ペインのスクリーンショット。](/SC-300-Identity-and-Access-Administrator.JA-JP/Instructions/Labs/media/portal-03-scopes-list.png)
この画像に示すように、スコープの完全な文字列は、Web API の [アプリケーション ID URI] とスコープの [スコープ名] を連結したものです。
注: たとえば、Web API のアプリケーション ID URI が
https://contoso.com/apiで、スコープ名が Employees.Read.All である場合、完全なスコープはhttps://contoso.com/api/Employees.Read.Allになります
注:次に、上記の手順に従って定義した Web API へのアクセスとスコープを使用して、クライアント アプリの登録を構成します。 クライアント アプリの登録に Web API へのアクセス許可が付与されると、Microsoft ID プラットフォームによってクライアントに OAuth 2.0 アクセス トークンが発行されます。 クライアントから Web API を呼び出すと、アクセス トークンが表示されます。そのスコープ (scp) 要求は、クライアントのアプリ登録で指定したアクセス許可に設定されています。 公開するスコープは、必要に応じて後から追加することもできます。 Web API を使用すると、複数の操作に関連付けられた複数のスコープを公開できることを考慮してください。 リソースは、受け取った OAuth 2.0 アクセス トークンのスコープ (scp) 要求を評価することによって、実行時に Web API へのアクセスを制御します。
演習の概要
この演習では、Microsoft Entra ID でアプリケーションを登録し、アプリケーション ID URI とスコープを定義して API を公開しました。 この演習では、アプリケーションを Microsoft Entra ID で表す方法と、アプリケーションでクライアントにアクセス許可を公開する方法を示しました。
演習 2 - カスタム ロールを使用してアプリの登録を管理する
タスク 1 - 新しいカスタム ロールを作成してアプリ登録を管理するためのアクセス権を付与する
アプリ管理用の新しいカスタム ロールを作成する必要があります。 この新しいロールは、資格情報管理の実行に必要な特定の権限のみに限定する必要があります。
-
https://entra.microsoft.comで全体管理者アカウントを使用して Microsoft Entra 管理センターにサインインします。 -
左側のナビゲーションで、[Entra ID] の下にある [ロールと管理者] を選択します。
-
上部のメニューから [+ 新しいカスタム役割] を選択します。
![[新しいカスタム ロール] メニュー オプションが強調表示されている [ロールと管理者] ブレードを表示している画面イメージ](/SC-300-Identity-and-Access-Administrator.JA-JP/Instructions/Labs/media/lp3-mod1-new-custom-role.png)
-
[新しいカスタム ロール] ダイアログの [基本] タブで、[名前] ボックスに「マイ カスタム アプリ ロール」と入力します。
-
残りのオプションを確認してから、[次へ] を選択します。
-
[アクセス許可] タブで、使用可能なアクセス許可を確認します。
-
[アクセス許可の名前または説明で検索] ボックスに「資格情報」と入力します。
-
結果から [管理] アクセス許可を選択し、[次へ] を選択します。
microsoft.directory/servicePrincipals/managePasswordSingleSignOnCredentials - Manage password single sign-on credentials or service principals. microsoft.directory/servicePrincipals/synchronizationCredentials/manage - Manage application provisioning secrets and credentials.![検索、アクセス許可の管理、[次へ] が強調表示された [新しいカスタム ロールのアクセス許可] タブを表示している画面イメージ](/SC-300-Identity-and-Access-Administrator.JA-JP/Instructions/Labs/media/lp3-mod1-custom-role-permissions.png)
これら 2 つを選ぶ理由 - アプリケーション プロビジョニングの場合、これら 2 つの項目は、作成中のアプリケーションまたはサービス プリンシパルのシングル サインオンを有効にして強制するために必要な最小限のアクセス許可です。エンタープライズ アプリケーションを一連のユーザーまたはグループに割り当てることができます。 他の権限も付与される可能性があります。 使用可能なアクセス許可の完全な一覧は
https://docs.microsoft.com/azure/active-directory/roles/custom-enterprise-app-permissionsで取得できます。 -
[次へ] を選択します。
-
変更内容を確認し、[作成] を選択します。
演習の概要
この演習では、資格情報管理に重点を置いたアクセス許可セットを持つカスタム ディレクトリ ロールを作成しました。 この演習では、カスタム ロールを使用して、最小限の特権によるきめ細かなアプリ ガバナンスをサポートする方法を示しました。