Microsoft Entra アプリを一連のユーザーのみに制限する

Microsoft Entra テナントに登録されたアプリケーションは、既定ではテナントの正常に認証されたすべてのユーザーが利用できます。 アプリケーションを一連のユーザーのみに制限するには、ユーザー割り当てが必要なようにアプリケーションを構成します。 アプリケーションまたはサービスにアクセスしようとするユーザーやサービスをこのアプリケーションに割り当てる必要があります。そうしないと、サインインしたりアクセス トークンを取得したりできなくなります。

同様に、マルチ テナント型のアプリケーションでは、アプリケーションがプロビジョニングされている Microsoft Entra テナント内のすべてのユーザーは、それぞれのテナントで正常に認証されると、アプリケーションにアクセスできます。

テナントの管理者と開発者には、多くの場合、アプリを特定のユーザーまたはアプリ (サービス) のセットに制限しなければならない要件があります。 アプリケーションを特定のユーザー、アプリ、またはセキュリティ グループのセットに制限するには、次の 2 つの方法があります。

  • 開発者は、Azure ロールベースのアクセス制御 (Azure RBAC) のような一般的な 承認パターンを使用できます
  • テナント管理者および開発者は、Microsoft Entra ID の組み込み機能を使用できます。

前提条件

サポートされているアプリの構成

テナントのユーザー、アプリ、またはセキュリティ グループの特定のセットにアプリを制限するオプションは、次の種類のアプリケーションで動作します。

  • SAML ベースの認証を使用したフェデレーション シングル サインオン用に構成されたアプリケーション。
  • Microsoft Entra 事前認証を使用する アプリケーション プロキシのアプリケーション。
  • ユーザーまたは管理者がそのアプリケーションに同意した後に OAuth 2.0/OpenID Connect 認証を使用する Microsoft Entra アプリケーション プラットフォームに直接構築されたアプリケーション。

アプリを更新してユーザーの割り当てを要求にする

ヒント

この記事の手順は、開始するポータルによって若干異なる場合があります。

アプリケーションを更新してユーザーの割当を要求するには、Enterprise アプリのアプリケーションの所有者であるか、少なくともクラウド アプリケーション管理者である必要があります。

  1. Microsoft Entra 管理センターにサインインします。
  2. 複数のテナントにアクセスできる場合は、上部のメニューの [ディレクトリとサブスクリプション] フィルター を使用し、[ディレクトリとサブスクリプション] メニューからアプリケーション登録が含まれるテナントに切り替えます。
  3. [ID]>[アプリケーション]>[エンタープライズ アプリケーション] を参照し、[すべてのアプリケーション] を選択します。
  4. 構成して割り当てを要求するアプリケーションを選択します。 ウィンドウの上部にあるフィルターを使用して、特定のアプリケーションを検索します。
  5. アプリケーションの [概要] ページの [管理] の下で [プロパティ] を選択します。
  6. [割り当てが必要ですか?] という設定を見つけ、それを [はい] に設定します。
  7. 上部バーにある [保存] を選択します。

アプリケーションが割り当てを要求する場合、そのアプリケーションに対するユーザーの同意は許可されません。 これは、そのアプリに対するユーザーの同意がそれ以外の場合に許可されている場合でも当てはまります。 割り当てを必要とするアプリに対して、テナント全体の管理者の同意を付与してください。

アプリをユーザーとグループに割り当ててアクセスを制限する

ユーザーの割り当てを有効にするようにアプリを構成したら、次はユーザーとグループにそのアプリを割り当てることができます。

  1. [管理] で、[ユーザーとグループ] を選択し、[ユーザーまたはグループの追加] を選択します。
  2. [ユーザー][選択されていません] を選択すると、[ユーザー] セレクター ウィンドウが開くので、そこで複数のユーザーやグループを選択できます。
  3. ユーザーやグループの追加が完了したら、[選択] を選択します。
    1. (オプション) アプリケーションでアプリ ロールを定義している場合、 [ロールの選択] オプションを使用して、選択したユーザーとグループにアプリのロールを割り当てることができます。
  4. [割り当て] を選択して、ユーザーとグループへのアプリの割り当てを完了します。
  5. [ユーザーとグループ] ページに戻ると、新しく追加されたユーザーやグループが、更新された一覧に表示されます。

他のサービス (クライアント アプリ) を割り当てて、アプリ (リソース) へのアクセスを制限する

このセクションの手順に従って、テナントのアプリ間認証アクセスをセキュリティで保護します。

  1. テナントのサービス プリンシパル サインイン ログに移動して、テナント内のリソースにアクセスするための認証サービスを見つけます。

  2. アプリ ID を使用して、アクセスを管理するテナント内のリソースとクライアントの両方のアプリにサービス プリンシパルが存在するかどうかを確認します。

    Get-MgServicePrincipal `
    -Filter "AppId eq '$appId'"
    
  3. サービス プリンシパルが存在しない場合は、アプリ ID を使用してを作成します。

    New-MgServicePrincipal `
    -AppId $appId
    
  4. リソース アプリにクライアント アプリを明示的に割り当てます (この機能は API でのみ使用でき、Microsoft Entra 管理センターでは使用できません)。

    $clientAppId = “[guid]”
                   $clientId = (Get-MgServicePrincipal -Filter "AppId eq '$clientAppId'").Id
    New-MgServicePrincipalAppRoleAssignment `
    -ServicePrincipalId $clientId `
    -PrincipalId $clientId `
    -ResourceId (Get-MgServicePrincipal -Filter "AppId eq '$appId'").Id `
    -AppRoleId "00000000-0000-0000-0000-000000000000"
    
  5. 明示的に割り当てられたユーザーまたはサービスにのみアクセスを制限するには、リソース アプリケーションの割り当てが必要です。

    Update-MgServicePrincipal -ServicePrincipalId (Get-MgServicePrincipal -Filter "AppId eq '$appId'").Id -AppRoleAssignmentRequired:$true
    

Note

アプリケーションに対してトークンを発行しない場合、またはテナント内のユーザーまたはサービスからアプリケーションにアクセスできないようにするには、アプリケーションのサービス プリンシパルを作成し、それに対するユーザー サインインを無効にします

関連項目

ロールとセキュリティ グループの詳細については、以下を参照してください。