Azure Active Directory でカスタム ロールを作成して割り当てる

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

カスタム ロールは、Azure AD [概要] ページの [ロールと管理者] タブで作成できます。

前提条件

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

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

Azure portal でロールを作成する

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

  1. Azure portal または Azure AD 管理センターにサインインします。

  2. [Azure Active Directory]>[ロールと管理者]>[新しいカスタム ロール] を選択します。

    Create or edit roles from the Roles and administrators page

  3. [基本] タブにロールの名前と説明を指定し、 [次へ] をクリックします。

    provide a name and description for a custom role on the Basics tab

  4. [アクセス許可] タブで、アプリ登録の基本的なプロパティと資格情報のプロパティを管理するために必要な権限を選択します。 各アクセス許可について詳しくは、「Azure Active Directory でのアプリケーション登録のサブタイプとアクセス許可」をご覧ください。

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

      Select the permissions for a custom role on the Permissions tab

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

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

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

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

Azure に接続する

Azure Active Directory に接続するには、次のコマンドレットを使用します。

Connect-AzureAD

カスタム ロールを作成する

次の PowerShell スクリプトを実行して、新しいロールを作成します。

# 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-AzureADMSRoleDefinition -RolePermissions $rolePermissions -DisplayName $displayName -Description $description -TemplateId $templateId -IsEnabled $true

PowerShell を使用してカスタム ロールを割り当てる

次の PowerShell スクリプトを使用して、ロールを割り当てます。

# Get the user and role definition you want to link
$user = Get-AzureADUser -Filter "userPrincipalName eq 'cburl@f128.info'"
$roleDefinition = Get-AzureADMSRoleDefinition -Filter "displayName eq 'Application Support Administrator'"

# Get app registration and construct resource scope for assignment.
$appRegistration = Get-AzureADApplication -Filter "displayName eq 'f/128 Filter Photos'"
$resourceScope = '/' + $appRegistration.objectId

# Create a scoped role assignment
$roleAssignment = New-AzureADMSRoleAssignment -DirectoryScopeId $resourceScope -RoleDefinitionId $roleDefinition.Id -PrincipalId $user.objectId

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

  1. ロール定義を作成します。

    カスタム ロール定義を作成するための HTTP 要求。

    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. ロールの割り当てを作成します。

    カスタム ロール定義を作成するための HTTP 要求。

    POST

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

    Body

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

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

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

  1. アプリケーション開発者のアクセス許可を使用して、Azure portal または Azure AD 管理センターにサインインします。

  2. [Azure Active Directory]>[アプリの登録] の順に選択します。

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

    Select the app registration as a resource scope for a role assignment

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

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

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

次のステップ