Microsoft Entra 外部 ID を使用すると、組織は顧客の ID を管理し、公開されているアプリケーションと API へのアクセスを安全に制御できます。 顧客が製品を購入したり、サービスに登録したり、アカウントやデータにアクセスしたりできるアプリケーション。 顧客は、デバイスまたは Web ブラウザーに 1 回サインインするだけで、アクセス許可が付与されたすべてのアプリケーションにアクセスできます。
アプリケーションが外部 ID でサインインできるようにするには、外部 ID でアプリを登録する必要があります。 アプリの登録によって、アプリと外部 ID の間に信頼関係が確立されます。
アプリの登録時に、"リダイレクト URI" を指定します。 リダイレクト URI は、ユーザーが認証を行った後、外部 ID によってリダイレクトされるエンドポイントです。 アプリ登録プロセスは、アプリを一意に識別するアプリケーション ID (またはクライアント ID として知られています) を生成します。
外部 ID では、Web アプリやシングルページ アプリなど、さまざまな最新のアプリケーション アーキテクチャの認証がサポートされています。 外部テナントとの相互作用はアプリケーションの種類によって異なるため、登録するアプリケーションの種類を指定する必要があります。
シングルページ アプリを登録する
外部 ID では、シングルページ アプリ (SPA) の認証がサポートされます。
以下の手順は Microsoft Entra 管理センターでアプリを登録する方法を示しています。
アプリケーション開発者以上として Microsoft Entra 管理センターにサインインします。
複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコン を使用し、[ディレクトリとサブスクリプション] メニューから外部テナントに切り替えます。
[ID]>[アプリケーション]>[アプリの登録] を参照します。
[+ 新規登録] を選択します。
表示される [アプリケーションの登録] ページで、アプリケーションの登録情報を入力します。
[名前] セクションで、アプリのユーザーに表示されるわかりやすいアプリケーション名を入力します (例: ciam-client-app)。
[サポートされているアカウントの種類] で、 [この組織のディレクトリ内のアカウントのみ] を選択します。
[リダイレクト URI (省略可能)] で、[シングルページ アプリケーション (SPA)] を選択し、URL ボックスに「http://localhost:3000/
」と入力します。
[登録] を選択します。
登録が完了すると、アプリケーションの [概要] ペインが表示されます。 アプリケーションのソース コードで使用するディレクトリ (テナント) ID とアプリケーション (クライアント) ID を記録します。
リダイレクト URI について
リダイレクト URI とは、承認サーバー (この場合は Microsoft Entra ID) がユーザーとのやり取りを完了した後にそのユーザーを送信する、または承認が成功したときにアクセス トークンや認証コードが送信されるエンドポイントです。
実稼働アプリケーションでは、通常は https://contoso.com/auth-response
などの、お使いのアプリが実行されているパブリック アクセスが可能なエンドポイントです。
アプリの開発時には、お使いのアプリケーションがローカルでリッスンする http://localhost:3000. などのエンドポイントを追加する場合があります。 お使いの登録済みアプリケーションでは、いつでもリダイレクト URI を追加したり、変更したりすることができます。
リダイレクト URI には、次の制限があります。
localhost リダイレクト URL を使用しない場合、応答 URL はスキーム https
で始まる必要があります。
応答 URL では大文字と小文字が区別されます。 大文字と小文字の区別は、実行中のアプリケーションの URL パスの場合と一致している必要があります。 たとえば、ご利用のアプリケーションがそのパス .../abc/response-oidc
の一部として含まれている場合は、応答 URL 内では .../ABC/response-oidc
と指定しないでください。 Web ブラウザーでは大文字と小文字を区別を区別するものとしてパスが処理されるため、.../abc/response-oidc
に関連付けられている cookie は、大文字と小文字が一致しない .../ABC/response-oidc
URL にリダイレクトされた場合に除外される可能性があります。
応答 URL では、アプリケーションで想定されているように、末尾のスラッシュを含めるか除外する必要があります。 たとえば、https://contoso.com/auth-response
や https://contoso.com/auth-response/
は、アプリケーションで一致しない URL として扱われる場合があります。
管理者の同意を与える
アプリケーションを登録すると、それに User.Read アクセス許可が割り当てられます。 ただし、テナントが外部テナントであるため、顧客のユーザー自身がこのアクセス許可に同意することはできません。 管理者は、テナント内のすべてのユーザーに代わってこのアクセス許可に同意する必要があります。
[アプリの登録] ページで、作成したアプリケーション ("ciam-client-app" など) を選択して、その [概要] ページを開きます。
[管理] の下にある [API のアクセス許可] を選択します。
- [<ご使用のテナント名> に管理者の同意を与えます] を選択してから、[はい] を選択します。
- [更新] を選び、そのアクセス許可の [状態] に [<テナント名> に付与されました] と表示されていることを確認します。
API のアクセス許可を付与する (省略可能):
SPA が API を呼び出す必要がある場合は、API を呼び出すことができるように SPA に API アクセス許可を付与する必要があります。 また、呼び出す必要がある Web API を登録する必要もあります。
クライアント アプリ (ciam-client-app) に API のアクセス許可を付与するには、次の手順に従います。
[アプリの登録] ページで、作成したアプリケーション (例: ciam-client-app) を選択して [概要] ページを開きます。
[管理] の下にある [API のアクセス許可] を選択します。
[構成されたアクセス許可] の下で [アクセス許可の追加] を選択します。
[所属する組織で使用している API] タブを選択します。
API の一覧で、API (ciam-ToDoList-api など) を選択します。
[委任されたアクセス許可] オプションを選択します。
アクセス許可の一覧で [ToDoList.Read, ToDoList.ReadWrite] を選択します (必要に応じて検索ボックスを使用します)。
[アクセス許可の追加] ボタンを選択します この時点で、アクセス許可が正しく割り当てられます。 ただし、このテナントは顧客のテナントであるため、コンシューマー ユーザー自身がこれらのアクセス許可に同意することはできません。 この問題に対処するには、管理者が次のように、テナント内のすべてのユーザーに代わってこれらのアクセス許可に同意する必要があります。
[<ご使用のテナント名> に管理者の同意を与えます] を選択してから、[はい] を選択します。
[最新の情報に更新] を選択し、両方のスコープの [状態] に、"<テナント名> に付与されました" と表示されていることを確認します。
[Configured permissions] (構成されたアクセス許可) の一覧でToDoList.Read と ToDoList.ReadWrite のアクセス許可を一度に 1 つずつ選択し、後で使用するためにアクセス許可の完全な URI をコピーします。 完全なアクセス許可 URI は、api://{clientId}/{ToDoList.Read}
または api://{clientId}/{ToDoList.ReadWrite}
のようになります。
リンクを追加してアクセス許可を公開する方法については、Web API に関するセクションを参照してください。
ユーザー フローをテストする (任意)
このアプリ登録で、ユーザー フローをテストするには、認証の暗黙的な許可フローを有効にします。
重要
暗黙的なフローはテスト目的でのみ使用するものとし、運用環境のアプリでのユーザー認証には使用しないでください。 テストが完了したら、削除することをお勧めします。
次の手順に沿って、暗黙的なフローを有効にします。
- アプリケーション開発者以上として Microsoft Entra 管理センターにサインインします。
- 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコン を使用し、[ディレクトリとサブスクリプション] メニューから外部テナントに切り替えます。
- [ID]>[アプリケーション]>[アプリの登録] を参照します。
- 作成したアプリの登録を選びます。
- [管理] で、 [認証] を選択します。
- [暗黙的な許可およびハイブリッド フロー] で、[ID トークン (暗黙的およびハイブリッド フローに使用)] チェックボックスをオンにします。
- [保存] を選択します。
Web アプリを登録する
外部 ID では、Web アプリの認証がサポートされています。
以下の手順は Microsoft Entra 管理センターで Web アプリを登録する方法を示しています。
アプリケーション開発者以上として Microsoft Entra 管理センターにサインインします。
複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコン を使用し、[ディレクトリとサブスクリプション] メニューから外部テナントに切り替えます。
[ID]>[アプリケーション]>[アプリの登録] を参照します。
[+ 新規登録] を選択します。
表示される [アプリケーションの登録] ページで、アプリケーションの登録情報を入力します。
[名前] セクションで、アプリのユーザーに表示されるわかりやすいアプリケーション名を入力します (例: ciam-client-app)。
[サポートされているアカウントの種類] で、 [この組織のディレクトリ内のアカウントのみ] を選択します。
[リダイレクト URI (省略可能)] で、[Web] を選択した後に、URL ボックスで、「http://localhost:3000/
」などの URL を入力します。
[登録] を選択します。
登録が完了すると、アプリケーションの [概要] ペインが表示されます。 アプリケーションのソース コードで使用するディレクトリ (テナント) ID とアプリケーション (クライアント) ID を記録します。
リダイレクト URI について
リダイレクト URI とは、承認サーバー (この場合は Microsoft Entra ID) がユーザーとのやり取りを完了した後にそのユーザーを送信する、または承認が成功したときにアクセス トークンや認証コードが送信されるエンドポイントです。
実稼働アプリケーションでは、通常は https://contoso.com/auth-response
などの、お使いのアプリが実行されているパブリック アクセスが可能なエンドポイントです。
アプリの開発時には、お使いのアプリケーションがローカルでリッスンする http://localhost:3000. などのエンドポイントを追加する場合があります。 お使いの登録済みアプリケーションでは、いつでもリダイレクト URI を追加したり、変更したりすることができます。
リダイレクト URI には、次の制限があります。
localhost リダイレクト URL を使用しない場合、応答 URL はスキーム https
で始まる必要があります。
応答 URL では大文字と小文字が区別されます。 大文字と小文字の区別は、実行中のアプリケーションの URL パスの場合と一致している必要があります。 たとえば、ご利用のアプリケーションがそのパス .../abc/response-oidc
の一部として含まれている場合は、応答 URL 内では .../ABC/response-oidc
と指定しないでください。 Web ブラウザーでは大文字と小文字を区別を区別するものとしてパスが処理されるため、.../abc/response-oidc
に関連付けられている cookie は、大文字と小文字が一致しない .../ABC/response-oidc
URL にリダイレクトされた場合に除外される可能性があります。
応答 URL では、アプリケーションで想定されているように、末尾のスラッシュを含めるか除外する必要があります。 たとえば、https://contoso.com/auth-response
や https://contoso.com/auth-response/
は、アプリケーションで一致しない URL として扱われる場合があります。
管理者の同意を与える
アプリケーションを登録すると、それに User.Read アクセス許可が割り当てられます。 ただし、テナントが外部テナントであるため、顧客のユーザー自身がこのアクセス許可に同意することはできません。 管理者は、テナント内のすべてのユーザーに代わってこのアクセス許可に同意する必要があります。
[アプリの登録] ページで、作成したアプリケーション ("ciam-client-app" など) を選択して、その [概要] ページを開きます。
[管理] の下にある [API のアクセス許可] を選択します。
- [<ご使用のテナント名> に管理者の同意を与えます] を選択してから、[はい] を選択します。
- [更新] を選び、そのアクセス許可の [状態] に [<テナント名> に付与されました] と表示されていることを確認します。
クライアント シークレットの作成
登録したアプリケーションに対してクライアント シークレットを作成します。 Web アプリケーションでは、トークンを要求するときに、このクライアント シークレットを使って自身の ID を証明します。
- [アプリの登録] ページで、作成したアプリケーション ("ciam-client-app" など) を選択して、その [概要] ページを開きます。
- [管理] で、[証明書とシークレット] を選択します。
- [新しいクライアント シークレット] を選択します。
- [説明] ボックスにクライアント シークレットの説明を入力します (例、ciam app client secret)。
- [有効期限] で、シークレットが (組織のセキュリティ規則に基づいて) 有効な期間を選択してから、[追加] を選択します。
- シークレットの値を記録します。 この値は、後の手順での構成に使用します。 シークレットの値は再表示されず、[証明書とシークレット] から移動した後はどのような手段でも取得できません。 必ず記録しておくようにしてください。
API アクセス許可を付与する (省略可能)
Web アプリが API を呼び出す必要がある場合は、API を呼び出すことができるように Web アプリに API アクセス許可を付与する必要があります。 また、呼び出す必要がある Web API を登録する必要もあります。
クライアント アプリ (ciam-client-app) に API のアクセス許可を付与するには、次の手順に従います。
[アプリの登録] ページで、作成したアプリケーション (例: ciam-client-app) を選択して [概要] ページを開きます。
[管理] の下にある [API のアクセス許可] を選択します。
[構成されたアクセス許可] の下で [アクセス許可の追加] を選択します。
[所属する組織で使用している API] タブを選択します。
API の一覧で、API (ciam-ToDoList-api など) を選択します。
[委任されたアクセス許可] オプションを選択します。
アクセス許可の一覧で [ToDoList.Read, ToDoList.ReadWrite] を選択します (必要に応じて検索ボックスを使用します)。
[アクセス許可の追加] ボタンを選択します この時点で、アクセス許可が正しく割り当てられます。 ただし、このテナントは顧客のテナントであるため、コンシューマー ユーザー自身がこれらのアクセス許可に同意することはできません。 この問題に対処するには、管理者が次のように、テナント内のすべてのユーザーに代わってこれらのアクセス許可に同意する必要があります。
[<ご使用のテナント名> に管理者の同意を与えます] を選択してから、[はい] を選択します。
[最新の情報に更新] を選択し、両方のスコープの [状態] に、"<テナント名> に付与されました" と表示されていることを確認します。
[Configured permissions] (構成されたアクセス許可) の一覧でToDoList.Read と ToDoList.ReadWrite のアクセス許可を一度に 1 つずつ選択し、後で使用するためにアクセス許可の完全な URI をコピーします。 完全なアクセス許可 URI は、api://{clientId}/{ToDoList.Read}
または api://{clientId}/{ToDoList.ReadWrite}
のようになります。
ユーザー フローをテストする (任意)
このアプリ登録で、ユーザー フローをテストするには、認証の暗黙的な許可フローを有効にします。
重要
暗黙的なフローはテスト目的でのみ使用するものとし、運用環境のアプリでのユーザー認証には使用しないでください。 テストが完了したら、削除することをお勧めします。
次の手順に沿って、暗黙的なフローを有効にします。
- アプリケーション開発者以上として Microsoft Entra 管理センターにサインインします。
- 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコン を使用し、[ディレクトリとサブスクリプション] メニューから外部テナントに切り替えます。
- [ID]>[アプリケーション]>[アプリの登録] を参照します。
- 作成したアプリの登録を選びます。
- [管理] で、 [認証] を選択します。
- [暗黙的な許可およびハイブリッド フロー] で、[ID トークン (暗黙的およびハイブリッド フローに使用)] チェックボックスをオンにします。
- [保存] を選択します。
Web API を登録する
アプリケーション開発者以上として Microsoft Entra 管理センターにサインインします。
複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコン を使用し、[ディレクトリとサブスクリプション] メニューから外部テナントに切り替えます。
[ID]>[アプリケーション]>[アプリの登録] を参照します。
[+ 新規登録] を選択します。
表示される [アプリケーションの登録] ページで、アプリケーションの登録情報を入力します。
[名前] セクションで、アプリのユーザーに表示されるわかりやすいアプリケーション名 (ciam-ToDoList-api など) を入力します。
[サポートされているアカウントの種類] で、 [この組織のディレクトリ内のアカウントのみ] を選択します。
[登録] を選択して、アプリケーションを作成します。
登録が完了すると、アプリケーションの [概要] ペインが表示されます。 アプリケーションのソース コードで使用するディレクトリ (テナント) ID とアプリケーション (クライアント) ID を記録します。
アクセス許可を公開する
クライアント アプリがユーザーのアクセス トークンを正常に取得するために、API は少なくとも 1 つのスコープ (委任されたアクセス許可とも呼ばれます) を発行する必要があります。 スコープを発行するには、次の手順に従います。
[アプリの登録] ページで、作成した API アプリケーション (ciam-ToDoList-api) を選択して [概要] ページを開きます。
[管理] の [API の公開] を選択します。
ページ上部の [アプリケーション ID URI] の横にある [追加] リンクを選択して、このアプリに一意の URI を生成します。
提案されたアプリケーション ID URI (api://{clientId}
など) を受け入れ、[保存] を選択します。 Web アプリケーションで Web API のアクセス トークンを要求すると、API に対して定義する各スコープのプレフィックスとしてこの URI が追加されます。
[この API で定義されるスコープ] で、 [スコープの追加] を選択します。
API への読み取りアクセスを定義する次の値を入力した後に、[スコープの追加] を選択して変更を保存します。
プロパティ |
価値 |
スコープ名 |
ToDoList.Read |
同意できるユーザー |
管理者のみ |
管理者の同意の表示名 |
'TodoListApi' を使用してユーザーの ToDo リストを読み取る |
管理者の同意の説明 |
'TodoListApi' を使用して、アプリがユーザーの ToDo リストを読み取ることを許可します。 |
State |
有効 |
もう一度 [スコープの追加] を選択し、API への読み取りおよび書き込みアクセスを定義する次の値を入力します。 [スコープの追加] を選択して変更を保存します。
プロパティ |
価値 |
スコープ名 |
ToDoList.ReadWrite |
同意できるユーザー |
管理者のみ |
管理者の同意の表示名 |
'ToDoListApi' を使用した、ユーザーの ToDo リストの読み取りと書き込み |
管理者の同意の説明 |
'ToDoListApi' を使用して、アプリからユーザーの ToDo リストを読み書きできるようにする |
State |
有効 |
[管理] で、[マニフェスト] を選択して API マニフェスト エディターを開きます。
accessTokenAcceptedVersion
プロパティを 2
に設定します。
[保存] を選択します。
Web API のアクセス許可を発行するときの最小限の特権の原則について説明します。
アプリ ロールを追加する
API は、クライアント アプリが自身としてアクセス トークンを取得できるように、アプリケーションに対して少なくとも 1 つのアプリ ロール (アプリケーションのアクセス許可とも呼ばれます) を発行する必要があります。 アプリケーションのアクセス許可は、クライアント アプリケーションが自身として正常に認証できるようにして、ユーザーをサインインさせる必要がないようにする場合に、API が発行するアクセス許可の種類です。 アプリケーションのアクセス許可を発行するには、次の手順に従います。
[アプリの登録] ページから、作成したアプリケーション (ciam-ToDoList-api など) を選択して、その [概要] ページを開きます。
[管理] で、[アプリ ロール] を選択します。
[アプリ ロールの作成] を選択し、次の値を入力し、[適用] を選択して変更を保存します:
プロパティ |
先頭値 |
表示名 |
ToDoList.Read.All |
Allowed member types (許可されるメンバーの種類) |
アプリケーション |
値 |
ToDoList.Read.All |
説明 |
'ToDoListApi' を使用して、アプリがすべてのユーザーの ToDo リストを読むことができるようにする |
もう一度 [アプリ ロールの作成] を選択し、2 番目のアプリ ロールに次の値を入力し、[適用] を選択して変更を保存します:
プロパティ |
先頭値 |
表示名 |
ToDoList.ReadWrite.All |
Allowed member types (許可されるメンバーの種類) |
アプリケーション |
値 |
ToDoList.ReadWrite.All |
説明 |
'ToDoListApi' を使用して、アプリがすべてのユーザーの ToDo リストを読み書きできるようにする |
デスクトップ アプリまたはモバイル アプリを登録する
Microsoft Entra 管理センターにアプリを登録する方法を次の手順に示します。
アプリケーション開発者以上として Microsoft Entra 管理センターにサインインします。
複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコン を使用し、[ディレクトリとサブスクリプション] メニューから外部テナントに切り替えます。
[ID]>[アプリケーション]>[アプリの登録] を参照します。
[+ 新規登録] を選択します。
表示される [アプリケーションの登録] ページで、アプリケーションの登録情報を入力します。
[名前] セクションで、アプリのユーザーに表示されるわかりやすいアプリケーション名を入力します (例: ciam-client-app)。
[サポートされているアカウントの種類] で、 [この組織のディレクトリ内のアカウントのみ] を選択します。
[リダイレクト URI (省略可能)] で、[モバイル アプリケーションとデスクトップ アプリケーション] オプションを選択し、URL ボックスに一意のスキームを含めた URI を入力します。 たとえば、Electron デスクトップ アプリのリダイレクト URI は http://localhost
、.NET マルチプラットフォーム アプリ UI (MAUI) のリダイレクト URI は msal{ClientId}://auth
のようになります。
[登録] を選択します。
登録が完了すると、アプリケーションの [概要] ペインが表示されます。 アプリケーションのソース コードで使用するディレクトリ (テナント) ID とアプリケーション (クライアント) ID を記録します。
管理者の同意を与える
アプリケーションを登録すると、それに User.Read アクセス許可が割り当てられます。 ただし、テナントが外部テナントであるため、顧客のユーザー自身がこのアクセス許可に同意することはできません。 管理者は、テナント内のすべてのユーザーに代わってこのアクセス許可に同意する必要があります。
[アプリの登録] ページで、作成したアプリケーション ("ciam-client-app" など) を選択して、その [概要] ページを開きます。
[管理] の下にある [API のアクセス許可] を選択します。
- [<ご使用のテナント名> に管理者の同意を与えます] を選択してから、[はい] を選択します。
- [更新] を選び、そのアクセス許可の [状態] に [<テナント名> に付与されました] と表示されていることを確認します。
API アクセス許可を付与する (省略可能)
モバイル アプリが API を呼び出す必要がある場合は、API を呼び出すことができるようにモバイル アプリに API アクセス許可を付与する必要があります。 また、呼び出す必要がある Web API を登録する必要もあります。
クライアント アプリ (ciam-client-app) に API のアクセス許可を付与するには、次の手順に従います。
[アプリの登録] ページで、作成したアプリケーション (例: ciam-client-app) を選択して [概要] ページを開きます。
[管理] の下にある [API のアクセス許可] を選択します。
[構成されたアクセス許可] の下で [アクセス許可の追加] を選択します。
[所属する組織で使用している API] タブを選択します。
API の一覧で、API (ciam-ToDoList-api など) を選択します。
[委任されたアクセス許可] オプションを選択します。
アクセス許可の一覧で [ToDoList.Read, ToDoList.ReadWrite] を選択します (必要に応じて検索ボックスを使用します)。
[アクセス許可の追加] ボタンを選択します この時点で、アクセス許可が正しく割り当てられます。 ただし、このテナントは顧客のテナントであるため、コンシューマー ユーザー自身がこれらのアクセス許可に同意することはできません。 この問題に対処するには、管理者が次のように、テナント内のすべてのユーザーに代わってこれらのアクセス許可に同意する必要があります。
[<ご使用のテナント名> に管理者の同意を与えます] を選択してから、[はい] を選択します。
[最新の情報に更新] を選択し、両方のスコープの [状態] に、"<テナント名> に付与されました" と表示されていることを確認します。
[Configured permissions] (構成されたアクセス許可) の一覧でToDoList.Read と ToDoList.ReadWrite のアクセス許可を一度に 1 つずつ選択し、後で使用するためにアクセス許可の完全な URI をコピーします。 完全なアクセス許可 URI は、api://{clientId}/{ToDoList.Read}
または api://{clientId}/{ToDoList.ReadWrite}
のようになります。
ユーザー フローをテストする (任意)
このアプリ登録で、ユーザー フローをテストするには、認証の暗黙的な許可フローを有効にします。
重要
暗黙的なフローはテスト目的でのみ使用するものとし、運用環境のアプリでのユーザー認証には使用しないでください。 テストが完了したら、削除することをお勧めします。
次の手順に沿って、暗黙的なフローを有効にします。
- アプリケーション開発者以上として Microsoft Entra 管理センターにサインインします。
- 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコン を使用し、[ディレクトリとサブスクリプション] メニューから外部テナントに切り替えます。
- [ID]>[アプリケーション]>[アプリの登録] を参照します。
- 作成したアプリの登録を選びます。
- [管理] で、 [認証] を選択します。
- [暗黙的な許可およびハイブリッド フロー] で、[ID トークン (暗黙的およびハイブリッド フローに使用)] チェックボックスをオンにします。
- [保存] を選択します。
デーモン アプリを登録する
次の手順は、Microsoft Entra 管理センターでデーモン アプリを登録する方法を示しています。
アプリケーション開発者以上として Microsoft Entra 管理センターにサインインします。
複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコン を使用し、[ディレクトリとサブスクリプション] メニューから外部テナントに切り替えます。
[ID]>[アプリケーション]>[アプリの登録] を参照します。
[+ 新規登録] を選択します。
表示される [アプリケーションの登録] ページで、アプリケーションの登録情報を入力します。
[名前] セクションに、アプリのユーザーに表示されるわかりやすいアプリケーション名 ("ciam-client-app" など) を入力します。
[サポートされているアカウントの種類] で、 [この組織のディレクトリ内のアカウントのみ] を選択します。
[登録] を選択します。
登録が完了すると、アプリケーションの [概要] ペインが表示されます。 アプリケーションのソース コードで使用するディレクトリ (テナント) ID とアプリケーション (クライアント) ID を記録します。
API のアクセス許可を付与する
デーモン アプリは、OAuth 2.0 クライアント サインイン情報フローを使用し、それ自体としてサインインします。 アプリケーション アクセス許可 (アプリ ロール) を付与します。これは、それ自身として認証するアプリに必要なものです。 デーモン アプリが呼び出す必要がある Web API を登録する必要もあります。
[アプリの登録] ページから、作成したアプリケーション (ciam-client-app など) を選択します。
[管理] の下にある [API のアクセス許可] を選択します。
[構成されたアクセス許可] の下で [アクセス許可の追加] を選択します。
[所属する組織で使用している API] タブを選択します。
API の一覧で、API (ciam-ToDoList-api など) を選択します。
[アプリケーションのアクセス許可] オプションを選択します。 このアプリは、ユーザーの代理としてではなくそれ自体がサインインするものであるため、このオプションを選びます。
アクセス許可の一覧から、TodoList.Read.All と ToDoList.ReadWrite.All を選択します (必要に応じて検索ボックスを使用してください)。
[アクセス許可の追加] ボタンを選択します
この時点で、アクセス許可が正しく割り当てられます。 ただし、デーモン アプリはユーザーが対話することを許可しないため、ユーザー自身がこれらのアクセス許可に同意することはできません。 この問題に対処するには、管理者が次のように、テナント内のすべてのユーザーに代わってこれらのアクセス許可に同意する必要があります。
- [<ご使用のテナント名> に管理者の同意を与えます] を選択してから、[はい] を選択します。
- [最新の情報に更新] を選択し、両方のアクセス許可の [状態] に "<テナント名> に付与されました" と表示されていることを確認します。
ユーザー フローをテストする (任意)
このアプリ登録で、ユーザー フローをテストするには、認証の暗黙的な許可フローを有効にします。
重要
暗黙的なフローはテスト目的でのみ使用するものとし、運用環境のアプリでのユーザー認証には使用しないでください。 テストが完了したら、削除することをお勧めします。
次の手順に沿って、暗黙的なフローを有効にします。
- アプリケーション開発者以上として Microsoft Entra 管理センターにサインインします。
- 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコン を使用し、[ディレクトリとサブスクリプション] メニューから外部テナントに切り替えます。
- [ID]>[アプリケーション]>[アプリの登録] を参照します。
- 作成したアプリの登録を選びます。
- [管理] で、 [認証] を選択します。
- [暗黙的な許可およびハイブリッド フロー] で、[ID トークン (暗黙的およびハイブリッド フローに使用)] チェックボックスをオンにします。
- [保存] を選択します。
Microsoft Graph API アプリケーションを登録する
Microsoft Entra を使用してアプリケーションでユーザーをサインインできるようにするには、作成するアプリケーションを Microsoft Entra 外部 ID に認識させる必要があります。 アプリの登録によって、アプリと Microsoft Entra の間に信頼関係が確立されます。 アプリケーションを登録すると、外部 ID によって、アプリケーション (クライアント) ID と呼ばれる一意識別子が生成されます。これは、認証要求を作成するときにアプリを識別するために使用される値です。
Microsoft Entra 管理センターにアプリを登録する方法を次の手順に示します。
アプリケーション開発者以上として Microsoft Entra 管理センターにサインインします。
複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコン を使用し、[ディレクトリとサブスクリプション] メニューから外部テナントに切り替えます。
[ID]>[アプリケーション]>[アプリの登録] を参照します。
[+ 新規登録] を選択します。
表示される [アプリケーションの登録] ページで、次のようにします。
- アプリのユーザーに表示されるわかりやすいアプリケーションの [名前] を入力します (例: ciam-client-app)。
- [サポートされているアカウントの種類] で、 [この組織のディレクトリ内のアカウントのみ] を選択します。
[登録] を選択します。
登録が成功すると、アプリケーションの [概要] ペインが表示されます。 アプリケーションのソース コードで使用するアプリケーション (クライアント) ID を記録します。
アプリケーションに API アクセスを許可する
アプリケーションから Microsoft Graph API のデータにアクセスするには、登録されたアプリケーションに、関連するアプリケーションのアクセス許可を付与します。 アプリケーションの有効なアクセス許可は、そのアクセス許可が暗示する完全なレベルの権限になります。 たとえば、外部テナント内のすべてのユーザーを作成、読み取り、更新、削除するには、User.ReadWrite.All アクセス許可を追加します。
[管理] の下にある [API のアクセス許可] を選択します。
[構成されたアクセス許可] の下で [アクセス許可の追加] を選択します。
[Microsoft API] タブを選択し、 [Microsoft Graph] を選択します。
[アプリケーションのアクセス許可] を選択します。
適切なアクセス許可グループを展開し、管理アプリケーションに付与するアクセス許可のチェック ボックスをオンにします。 次に例を示します。
[User](ユーザー)>[User.ReadWrite.All] : ユーザー移行またはユーザー管理のシナリオの場合。
[Group](グループ)>[Group.ReadWrite.All] : グループの作成、グループ メンバーシップの読み取りと更新、グループの削除を行う場合。
[AuditLog]>[AuditLog.Read.All] :ディレクトリの監査ログを読み取る場合。
[Policy](ポリシー)>[Policy.ReadWrite.TrustFramework] :継続的インテグレーション/継続的デリバリー (CI/CD) のシナリオの場合。 たとえば、Azure Pipelines を使用したカスタム ポリシーの展開などです。
[アクセス許可の追加] を選択します. 指示に従って、数分待ってから次の手順に進みます。
[<テナント名> に管理者の同意を与えます] を選択します。
現在サインインしていない場合は、少なくともクラウド アプリケーション管理者ロールが割り当てられている外部テナントのアカウントでサインインしてから、["テナント名" に管理者の同意を与えます] を選択します。
[更新] を選択し、 [状態] に、"... に付与されました" と表示されていることを確認します。 アクセス許可が反映されるまでに数分かかる場合があります。
アプリケーションを登録した後で、アプリケーションにクライアント シークレットを追加する必要があります。 このクライアント シークレットは、アプリケーションを認証して Microsoft Graph API を呼び出すために使用されます。
クライアント シークレットの作成
登録したアプリケーションに対してクライアント シークレットを作成します。 Web アプリケーションでは、トークンを要求するときに、このクライアント シークレットを使って自身の ID を証明します。
- [アプリの登録] ページで、作成したアプリケーション ("ciam-client-app" など) を選択して、その [概要] ページを開きます。
- [管理] で、[証明書とシークレット] を選択します。
- [新しいクライアント シークレット] を選択します。
- [説明] ボックスにクライアント シークレットの説明を入力します (例、ciam app client secret)。
- [有効期限] で、シークレットが (組織のセキュリティ規則に基づいて) 有効な期間を選択してから、[追加] を選択します。
- シークレットの値を記録します。 この値は、後の手順での構成に使用します。 シークレットの値は再表示されず、[証明書とシークレット] から移動した後はどのような手段でも取得できません。 必ず記録しておくようにしてください。
ユーザー フローをテストする (任意)
このアプリ登録で、ユーザー フローをテストするには、認証の暗黙的な許可フローを有効にします。
重要
暗黙的なフローはテスト目的でのみ使用するものとし、運用環境のアプリでのユーザー認証には使用しないでください。 テストが完了したら、削除することをお勧めします。
次の手順に沿って、暗黙的なフローを有効にします。
- アプリケーション開発者以上として Microsoft Entra 管理センターにサインインします。
- 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコン を使用し、[ディレクトリとサブスクリプション] メニューから外部テナントに切り替えます。
- [ID]>[アプリケーション]>[アプリの登録] を参照します。
- 作成したアプリの登録を選びます。
- [管理] で、 [認証] を選択します。
- [暗黙的な許可およびハイブリッド フロー] で、[ID トークン (暗黙的およびハイブリッド フローに使用)] チェックボックスをオンにします。
- [保存] を選択します。
ネイティブ認証アプリケーションの登録
Microsoft Entra を使用してアプリケーションでユーザーをサインインできるようにするには、作成するアプリケーションを Microsoft Entra 外部 ID に認識させる必要があります。 アプリの登録によって、アプリと Microsoft Entra の間に信頼関係が確立されます。 アプリケーションを登録すると、外部 ID によって、アプリケーション (クライアント) ID と呼ばれる一意識別子が生成されます。これは、認証要求を作成するときにアプリを識別するために使用される値です。
Microsoft Entra 管理センターにアプリを登録する方法を次の手順に示します。
アプリケーション開発者以上として Microsoft Entra 管理センターにサインインします。
複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコン を使用し、[ディレクトリとサブスクリプション] メニューから外部テナントに切り替えます。
[ID]>[アプリケーション]>[アプリの登録] を参照します。
[+ 新規登録] を選択します。
表示される [アプリケーションの登録] ページで、次のようにします。
- アプリのユーザーに表示されるわかりやすいアプリケーションの [名前] を入力します (例: ciam-client-app)。
- [サポートされているアカウントの種類] で、 [この組織のディレクトリ内のアカウントのみ] を選択します。
[登録] を選択します。
登録が成功すると、アプリケーションの [概要] ペインが表示されます。 アプリのソース コードで使用するアプリケーション (クライアント) ID を記録します。
管理者の同意を与える
アプリケーションを登録すると、それに User.Read アクセス許可が割り当てられます。 ただし、テナントが外部テナントであるため、顧客のユーザー自身がこのアクセス許可に同意することはできません。 管理者は、テナント内のすべてのユーザーに代わってこのアクセス許可に同意する必要があります。
[アプリの登録] ページで、作成したアプリケーション ("ciam-client-app" など) を選択して、その [概要] ページを開きます。
[管理] の下にある [API のアクセス許可] を選択します。
- [<ご使用のテナント名> に管理者の同意を与えます] を選択してから、[はい] を選択します。
- [更新] を選び、そのアクセス許可の [状態] に [<テナント名> に付与されました] と表示されていることを確認します。
パブリック クライアントとネイティブ認証フローの有効化
このアプリがパブリック クライアントであり、ネイティブ認証を使用できることを指定するには、パブリック クライアントとネイティブ認証フローを有効にします。
- アプリ登録ページから、パブリック クライアントとネイティブ認証フローを有効にしたいアプリ登録を選択します。
- [管理] で、 [認証] を選択します。
- [詳細設定] で、パブリック クライアント フローを許可します。
- [次のモバイルとデスクトップ フローを有効にする] で、[はい] を選択します。
- [ネイティブ認証を有効にする] で、[はい] を選択します。
- [保存] ボタンを選択します。