Azure AD アプリを Azure AD テナントの一連のユーザーに制限する
Azure Active Directory (Azure AD) テナントに登録されたアプリケーションは、既定ではテナントの正常に認証されたすべてのユーザーが利用できます。
同様に、マルチ テナント アプリケーシ ョンでは、アプリケーションがプロビジョニングされている Azure AD テナント内のすべてのユーザーが、それぞれのテナントで正常に認証されると、アプリケーションにアクセスできます。
テナントの管理者と開発者には、多くの場合、アプリを特定のユーザーまたはアプリ (サービス) のセットに制限しなければならない要件があります。 アプリケーションを特定のユーザー、アプリ、またはセキュリティ グループのセットに制限するには、次の 2 つの方法があります。
- 開発者は、Azure ロールベースのアクセス制御 (Azure RBAC) のような一般的な 承認パターンを使用できます。
- テナント管理者と開発者は、 の組み込み機能を使用Azure AD。
サポートされているアプリの構成
テナントのユーザー、アプリ、またはセキュリティ グループの特定のセットにアプリを制限するオプションは、次の種類のアプリケーションで動作します。
- SAML ベースの認証を使用したフェデレーション シングル サインオン用に構成されたアプリケーション。
- Azure AD 事前認証を使用するアプリケーション プロキシのアプリケーション。
- ユーザーまたは管理者がそのアプリケーションに同意した後に OAuth 2.0/OpenID Connect 認証を使用する Azure AD アプリケーション プラットフォームに直接構築されたアプリケーション。
アプリを更新してユーザーの割り当てを要求にする
アプリケーションを更新してユーザーの割当を要求するには、Enterprise アプリのアプリケーションの所有者である必要があります。または、グローバル管理者、アプリケーション管理者またはクラウド アプリケーション管理者のいずれかのディレクトリ ロールを割り当てられている必要があります。
- Azure ポータル
- 複数のテナントにアクセスできる場合は、トップ メニューの [ディレクトリとサブスクリプション] フィルター
を使用して、アプリケーションを登録するテナントに切り替えます。
- Azure Active Directory を検索して選択します。
- [管理] で [エンタープライズ アプリケーション] を選択し、[すべてのアプリケーション] を選択します。
- 構成して割り当てを要求するアプリケーションを選択します。 ウィンドウの上部にあるフィルターを使用して、特定のアプリケーションを検索します。
- アプリケーションの [概要] ページの [管理] の下で [プロパティ] を選択します。
- [割り当てが必要ですか?] という設定を見つけ、それを [はい] に設定します。 このオプションが [はい] に設定されている場合、アプリケーションまたはサービスにアクセスしようとするユーザーとサービスを最初にこのアプリケーションに割り当てる必要があります。そうしない場合は、サインインしたりアクセス トークンを取得したりできません。
- 上部バーにある [保存] を選択します。
アプリケーションが割り当てを要求する場合、そのアプリケーションに対するユーザーの同意は許可されません。 これは、そのアプリに対するユーザーの同意がそれ以外の場合に許可されている場合でも当てはまります。 割り当てを必要とするアプリに対して、テナント全体の管理者の同意を付与してください。
アプリをユーザーとグループに割り当ててアクセスを制限する
ユーザーの割り当てを有効にするようにアプリを構成したら、次はユーザーとグループにそのアプリを割り当てることができます。
[管理] で、[ユーザーとグループ] を選択し、[ユーザーまたはグループの追加] を選択します。
[ユーザー] セレクターを選択します。
ユーザーとセキュリティ グループの一覧と一緒に、特定のユーザーまたはグループを検索して探すためのテキスト ボックスが表示されます。 この画面では、一度に複数のユーザーとグループを選択できます。
ユーザーとグループの選択が完了したら、 [選択] を選択します。
(オプション) アプリケーションでアプリ ロールを定義している場合、 [ロールの選択] オプションを使用して、選択したユーザーとグループにアプリのロールを割り当てることができます。
[割り当て] を選択して、ユーザーとグループへのアプリの割り当てを完了します。
追加したユーザーとグループが、更新された [ユーザーとグループ] のリストに表示されていることを確認します。
他のサービス (クライアント アプリ) を割り当てて、アプリ (リソース) へのアクセスを制限する
このセクションの手順に従って、テナントのアプリ間認証アクセスをセキュリティで保護します。
- テナントのサービス プリンシパル サインイン ログに移動して、テナント内のリソースにアクセスするための認証サービスを見つけます。
- アプリ ID を使用して、アクセスを管理するテナント内のリソースとクライアントの両方のアプリにサービス プリンシパルが存在するかどうかを確認します。
Get-MgServicePrincipal ` -Filter "AppId eq '$appId'"
- サービス プリンシパルが存在しない場合は、アプリ ID を使用してを作成します。
New-MgServicePrincipal ` -AppId $appId
- リソース アプリにクライアント アプリを明示的に割り当てます (この機能は API でのみ使用でき、Azure AD ポータルでは使用できません)。
$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"
- 明示的に割り当てられたユーザーまたはサービスにのみアクセスを制限するには、リソース アプリケーションの割り当てが必要です。
Update-MgServicePrincipal -ServicePrincipalId (Get-MgServicePrincipal -Filter "AppId eq '$appId'").Id -AppRoleAssignmentRequired:$true
Note
アプリケーションに対してトークンを発行しない場合、またはテナント内のユーザーまたはサービスからアプリケーションにアクセスできないようにするには、アプリケーションのサービス プリンシパルを作成し、それに対するユーザー サインインを無効にします。
詳細情報
ロールとセキュリティ グループの詳細については、以下を参照してください。