Microsoft Entra ID でカスタム ロールを作成して割り当てる

この記事では、Microsoft Entra ID で新しいカスタム ロールを作成する方法について説明します。 カスタム ロールの基本については、カスタム ロールの概要を参照してください。 ロールを割り当てることができるのは、ディレクトリ レベルのスコープまたはアプリ登録リソースのスコープだけです。

カスタム ロールは、Microsoft Entra管理センターの [ロールと管理者] ページで作成できます。

前提条件

  • Microsoft Entra ID P1 または P2 ライセンス
  • 特権ロール管理者
  • PowerShell を使用する場合の Microsoft.Graph モジュール
  • Microsoft Graph API の Graph エクスプローラーを使用する場合の管理者の同意

詳細については、PowerShell または Graph エクスプローラーを使用するための前提条件に関するページを参照してください。

Microsoft Entra 管理センターでロールを作成する

新しいカスタム ロールを作成してアプリ登録を管理するためのアクセス権を付与する

ヒント

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

  1. Microsoft Entra 管理センター特権ロール管理者以上としてサインインします。

  2. [ID] >[役割と管理者]>[役割と管理者] の順に移動します。

  3. [新しいカスタム ロール] を選択します。

    [ロールと管理者] ページでロールを作成または編集する

  4. [基本] タブに、ロールの名前と説明を指定します。

    カスタム ロールからベースラインのアクセス許可を複製できますが、組み込みのロールを複製することはできません。

    [基本] タブでカスタム ロールの名前と説明を指定する

  5. [アクセス許可] タブで、アプリ登録の基本的なプロパティと資格情報のプロパティを管理するために必要な権限を選択します。 各アクセス許可について詳しくは、Microsoft Entra ID でのアプリケーションの登録のサブタイプとアクセス許可に関するページを参照してください。

    1. 最初に、検索バーに「credentials」と入力し、microsoft.directory/applications/credentials/update アクセス許可を選択します。

      [アクセス許可] タブでカスタム ロールのアクセス許可を選択する

    2. 次に、検索バーに「basic」と入力し、microsoft.directory/applications/basic/update アクセス許可を選択し、 [次へ] をクリックします。

  6. [確認と作成] タブでアクセス許可を確認し、 [作成] を選択します。

    カスタム ロールが、割り当て可能なロールの一覧に表示されます。

PowerShell を使用してロールを作成する

サインイン

Connect-MgGraph コマンドを使って、テナントにサインインします。

Connect-MgGraph -Scopes "RoleManagement.ReadWrite.Directory"

Create the custom role

Create a new role using the following PowerShell script:

# Basic role information
$displayName = "Application Support Administrator"
$description = "Can manage basic aspects of application registrations."
$templateId = (New-Guid).Guid

# Set of permissions to grant
$allowedResourceAction =
@(
    "microsoft.directory/applications/basic/update",
    "microsoft.directory/applications/credentials/update"
)
$rolePermissions = @(@{AllowedResourceActions= $allowedResourceAction})

# Create new custom admin role
$customAdmin = New-MgRoleManagementDirectoryRoleDefinition -RolePermissions $rolePermissions -DisplayName $displayName -IsEnabled -Description $description -TemplateId $templateId

Assign the custom role using PowerShell

Assign the role using the below PowerShell script:

# Get the user and role definition you want to link
$user = Get-MgUser -Filter "userPrincipalName eq 'user@contoso.com'"
$roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition -Filter "DisplayName eq 'Application Support Administrator'"

# Get app registration and construct resource scope for assignment.
$appRegistration = Get-MgApplication -Filter "Displayname eq 'MyApp1'"
$resourceScope = '/' + $appRegistration.objectId

# Create a scoped role assignment
$roleAssignment = New-MgRoleManagementDirectoryRoleAssignment -DirectoryScopeId $resourcescope -RoleDefinitionId $roledefinition.Id -PrincipalId $user.Id

Microsoft Graph API を使用してロールを作成する

次のステップを実行します。

  1. Create unifiedRoleDefinition API を使用して、カスタム ロールを作成します。

    POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleDefinitions
    

    Body

    {
      "description": "Can manage basic aspects of application registrations.",
      "displayName": "Application Support Administrator",
      "isEnabled": true,
      "templateId": "<GUID>",
      "rolePermissions": [
          {
              "allowedResourceActions": [
                  "microsoft.directory/applications/basic/update",
                  "microsoft.directory/applications/credentials/update"
              ]
          }
      ]
    }
    

    注意

    "templateId": "GUID" は、要件に応じて本文で送信される省略可能なパラメーターです。 共通パラメーターを使用して複数の異なるカスタム ロールを作成する必要がある場合、テンプレートを作成し、templateId 値を定義することをお勧めします。 PowerShell コマンドレット (New-Guid).Guidを使用し、templateId 値を事前に生成できます。

  2. Create unifiedRoleAssignment API を使用して、カスタム ロールを割り当てます。

    POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
    

    本文​​

    {
        "principalId":"<GUID OF USER>",
        "roleDefinitionId":"<GUID OF ROLE DEFINITION>",
        "directoryScopeId":"/<GUID OF APPLICATION REGISTRATION>"
    }
    

カスタム ロールをスコープ指定してリソースに割り当てる

組み込みロールと同様に、既定では、組織内のすべてのアプリ登録にアクセス許可を付与するために、カスタム ロールは既定の組織全体のスコープで割り当てられます。 さらに、カスタム ロールおよびいくつかの関連する組み込みロール (Microsoft Entra リソースの種類によって異なります) は、単一の Microsoft Entra リソースのスコープで割り当てることもできます。 これにより、2 つ目のカスタム ロールを作成せずに、1 つのアプリの資格情報と基本プロパティを更新できるアクセス許可をユーザーに付与できます。

  1. アプリケーション開発者以上として Microsoft Entra 管理センターにサインインします。

  2. [ID]>[アプリケーション]>[アプリの登録] を参照します。

  3. 付与しようとするアクセス権によって管理されるアプリ登録を選択します。 Microsoft Entra 組織内のアプリ登録の完全な一覧を表示するには、[すべてのアプリケーション] を選ぶ必要がある場合があります。

    ロールの割り当てのリソース スコープとしてアプリ登録を選択する

  4. [アプリの登録] で、 [ロールと管理者] を選択します。 まだ 1 つも作成していない場合は、前の手順の指示を参照してください。

  5. ロールを選択して、 [割り当て] ページを開きます。

  6. [割り当ての追加] を選択してユーザーを追加します。 このユーザーには、選択したアプリ登録に対してのみアクセス許可が付与されます。