チュートリアル:Microsoft Entra グループにディレクトリ閲覧者ロールを割り当て、ロールの割り当てを管理する

この記事では、Microsoft Entra ID(旧Azure Active Directory)でグループを作成し、そのグループにディレクトリリーダーの役割を割り当てる方法を案内します。 この役割割り当てにより、グループの所有者はAzure Synapse Analyticsリソースの管理されたアイデンティティをグループに追加できます。 このアプローチにより、各アイデンティティにディレクトリ リーダーの役割を直接割り当てるために 特権ロール管理者 を必要としません。

このチュートリアルでは、「Microsoft Entra グループを使用してロールの割り当てを管理する」で紹介されている機能を使用します。

注記

Microsoft Entra server principals は現在 Azure Synapse Analytics のプレビュー中です。

ディレクトリリーダーの役割の代わりに、低レベルのMicrosoft Graph権限を最小権限の原則に従って割り当てることができます。 詳細については、Azure Synapse Analytics 向け Microsoft Entra のマネージド IDをご覧ください。

Prerequisites

Azureポータルを使ったDirectory Readers ロールの割り当て

新しいグループを作成し、所有者とロールを割り当てる

  1. この初期設定には 特権ロール管理者 権限を持つユーザーが必要です。
  2. 特権ユーザーにAzureポータルにサインインさせてください。
  3. Microsoft Entra ID のリソースに移動します。 [ 管理] の [ グループ] に移動します。 新しいグループを作成するために、 [新しいグループ] を選択します。
  4. グループの種類として [セキュリティ] を選択し、残りのフィールドに入力してください。 グループに割り当てられるMicrosoft Entra役割の設定を「はい」に切り替えてください。 次に、Microsoft Entra ID のディレクトリ閲覧者ロールをグループに割り当てます。
  5. Microsoft Entraユーザーをグループの所有者として割り当ててください。 グループの所有者は管理者の役割を持たず、通常のMicrosoft Entraユーザーでもよい。 所有者はAzure Synapseリソースを管理するユーザーであるべきです。
  6. を選択してを作成します。

作成したグループを確認してください

注記

グループタイプがセキュリティであることを確認しましょう。 Azure Synapse SQL は Microsoft 365 グループをサポートしていません。

作成したグループを確認し管理するには、Azureポータルのグループパネルに戻り、グループ名を検索してください。 グループを選択した後、管理設定の「所有者」メニューと「メンバー」メニューでさらにオーナーやメンバーを追加できます。 また、グループの割り当てられたロールを確認することもできます。

グループに Azure Synapse のマネージド ID を追加する

以下の手順では、特権ロール管理者のユーザーは不要になります。

  1. Azure Synapseリソースを管理し、作成したグループの所有者であるユーザーとしてAzureポータルにサインインしてください。

  2. Azure Synapse workspace のマネージド アイデンティティを見つけてください。 ワークスペースのアイデンティティに関する情報は、Azure Synapse AnalyticsのマネージドサービスIDを参照してください。

  3. Microsoft Entra IDの管理で、エンタープライズ アプリケーションを選択します。 マネージド ID を検索し、そのオブジェクト IDを記録します。

  4. Microsoft Entra IDの管理下でグループを選択します。 作成したグループを選択し、次に「メンバー」>「メンバーを追加」を選択します。 検索して Azure Synapse マネージド アイデンティティを追加してください。

注記

権限が伝播し、Microsoft Graphへのアクセスを許可するまでに数分かかることがあります。

Remarks

サーバーアイデンティティは 論理サーバー 作成中またはサーバー作成後に作成できます。 Azure Synapseでサーバー ID を作成または設定する方法については、「Azure Synapse Analyticsのマネージドアイデンティティ」をご覧ください。

Azure Synapseで論理サーバー用のMicrosoft Entra管理者を設定する際に、サーバーIDにDirectory Readersロールを割り当てる必要はありません。 しかし、Microsoft Entraアプリケーションを代表してAzure SynapseでMicrosoft Entraオブジェクト作成を有効にするには、ディレクトリリーダーの役割(またはMicrosoft Entra for Azure SQLの管理されたアイデンティティで説明されている下位権限)が必要です。 論理サーバーのアイデンティティにロールを割り当てなければ、Microsoft Entraユーザーの作成は失敗します。

PowerShell を使用したディレクトリ閲覧者ロールの割り当て

Important

特権ロール管理者がこれらの初期ステップを実行する必要があります。 PowerShell に加えて、Microsoft Entra ID には、Microsoft Entra ID でロールの割り当てが可能なグループを作成するための Microsoft Graph API が用意されています。

  1. 以下のコマンドを使ってMicrosoft Graph PowerShellモジュールをダウンロードしてください。 PowerShell を管理者として実行することが必要な場合があります。

    Install-Module Microsoft.Graph.Authentication
    Import-Module Microsoft.Graph.Authentication
    # To verify that the module is ready to use, run the following command:
    Get-Module Microsoft.Graph.Authentication
    
  2. Microsoft Entra テナントに接続します

    Connect-MgGraph
    
  3. ディレクトリ閲覧者ロールを割り当てるセキュリティ グループを作成します。

    • DirectoryReaderGroup、Directory Reader Group、DirRead は、好みに応じて変更できます。
    $group = New-MgGroup -DisplayName "DirectoryReaderGroup" -Description "Directory Reader Group" -SecurityEnabled:$true -IsAssignableToRole:$true -MailEnabled:$false -MailNickname "DirRead"
    $group
    
  4. ディレクトリリーダー ロールをグループに割り当てます。

    # Displays the Directory Readers role information
    $roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition -Filter "DisplayName eq 'Directory Readers'"
    $roleDefinition
    
    # Assigns the Directory Readers role to the group
    $roleAssignment = New-MgRoleManagementDirectoryRoleAssignment -DirectoryScopeId '/' -RoleDefinitionId $roleDefinition.Id -PrincipalId $group.Id
    $roleAssignment
    
  5. グループに所有者を割り当てます。

    • <username> を、このグループの所有者にしたいユーザーに置き換えます。 これらの手順を繰り返して複数のオーナーを追加しましょう。
    $newGroupOwner = Get-MgUser -UserId "<username>"
    $newGroupOwner
    
    $GrOwner = New-MgGroupOwnerByRef -GroupId $group.Id -OdataId "https://graph.microsoft.com/v1.0/users/$($newGroupOwner.Id)" 
    

    グループの所有者を確認:

    Get-MgGroupOwner -GroupId $group.Id
    

    Azure portal でグループの所有者を確認することもできます。 作成したグループを確認するには、「 作成したグループを確認する」をご覧ください。

サービス プリンシパルをグループのメンバーとして割り当てる

以下の手順では、特権ロール管理者のユーザーは不要になります。

  1. Azure Synapseリソースの管理も担当するグループオーナーとして、以下のコマンドを実行してMicrosoft Entra IDに接続してください。

    Connect-MgGraph
    
  2. 作成したグループのメンバーとしてサービスプリンシパルを割り当ててください。

    • <ServerName> を 論理サーバーまたはマネージド インスタンスの名前で置き換えます。 詳細については、「Add Azure SQL service identity to the group」セクションをご覧ください。
    # Returns the service principal of your Azure SQL resource
    $managedIdentity = Get-MgServicePrincipal -Filter "displayName eq '<ServerName>'"
    $managedIdentity
    
    # Adds the service principal to the group
    New-MgGroupMember -GroupId $group.Id -DirectoryObjectId $managedIdentity.Id
    

    次のコマンドを実行すると、グループに追加されたことを示すサービス プリンシパルのオブジェクト ID が返されます。

    Get-MgGroupMember -GroupId $group.Id -Filter "Id eq '$($managedIdentity.Id)'"