アプリケーションのカスタム セキュリティ属性の管理

Microsoft Entra ID のカスタム セキュリティ属性は、ビジネス固有の属性 (キーと値のペア) であり、Microsoft Entra のオブジェクトに対して定義し割り当てることができます。 たとえば、カスタム セキュリティ属性を割り当ててアプリケーションをフィルター処理したり、アクセスできるユーザーを決定したりすることができます。 この記事では、Microsoft Entra のエンタープライズ アプリケーションのカスタム セキュリティ属性の割り当て、更新、一覧表示、削除の方法について説明します。

前提条件

Microsoft Entra テナント内のアプリケーションのカスタム セキュリティ属性の割り当てや削除には、次のものが必要です。

重要

既定では、全体管理者とその他の管理者ロールには、カスタム セキュリティ属性の読み取り、定義、割り当てを行う権限がありません。

アプリケーションのカスタム属性の割り当て、更新、一覧表示、または削除

Microsoft Entra ID でアプリケーションのカスタム属性を操作する方法について学習します。

カスタム セキュリティ属性のアプリケーションへの割り当て

ヒント

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

Microsoft Entra 管理センターを使用してカスタム セキュリティ属性を割り当てるには、次の手順を実行します。

  1. Microsoft Entra 管理センター属性割り当て管理者としてサインインしてください。

  2. ID>アプリケーション>エンタープライズ アプリケーション を参照します。

  3. カスタムセキュリティ属性を追加するアプリケーションを検索して選択します。

  4. [管理] セクションで、[カスタム セキュリティ属性] を選択してください。

  5. [割り当ての追加] を選択します。

  6. [Attribute set](属性セット) で、一覧から属性セットを選択します。

  7. [属性名] で、一覧からカスタム セキュリティ属性を選択します。

  8. 選択したカスタム セキュリティ属性のプロパティに応じて、1 つの値を入力したり、定義済みの一覧から値を選択したり、複数の値を追加したりできます。

    • 自由形式の単一値カスタム セキュリティ属性の場合は、[Assigned values](割り当てられた値) ボックスに値を入力します。
    • 定義済みのカスタム セキュリティ属性値については、[Assigned values](割り当てられた値) リストから値を選択します。
    • 複数値のカスタム セキュリティ属性の場合は、[Add values](値の追加) を選択して [Attribute values](属性値) ペインを開き、値を追加します。 値の入力が完了したら、[OK] を選択します。

    Screenshot shows how to assign a custom security attribute to an application.

  9. 完了したら、[保存] を選択して、カスタム セキュリティ属性をアプリケーションに割り当てます。

アプリケーションのカスタム セキュリティ属性の割り当て値を更新する

  1. Microsoft Entra 管理センター属性割り当て管理者としてサインインしてください。

  2. ID>アプリケーション>エンタープライズ アプリケーション を参照します。

  3. 更新するカスタム セキュリティ属性の割り当て値を持つアプリケーションを検索して選択します。

  4. [管理] セクションで、[カスタム セキュリティ属性] を選択してください。

  5. 更新するカスタム セキュリティ属性の割り当て値を見つけます。

    カスタム セキュリティ属性をアプリケーションに割り当てた後は、カスタム セキュリティ属性の値のみを変更できます。 属性セットやカスタム セキュリティ属性名など、カスタム セキュリティ属性のその他のプロパティを変更することはできません。

  6. 選択したカスタム セキュリティ属性のプロパティに応じて、1 つの値を更新したり、定義済みの一覧から値を選択したり、複数の値を更新したりできます。

  7. 終わったら、 [保存] を選択します。

カスタム セキュリティ属性に基づいてアプリケーションをフィルター処理する

[すべてのアプリケーション] ページで、アプリケーションに割り当てられているカスタム セキュリティ属性の一覧をフィルター処理できます。

  1. Microsoft Entra 管理センター属性割り当て閲覧者以上としてサインインします。

  2. ID>アプリケーション>エンタープライズ アプリケーション を参照します。

  3. [フィルターの追加] を選択して、[Pick a field](フィールドの選択) ウィンドウを開きます。

    [フィルターの追加] が表示されない場合は、バナーを選択してエンタープライズ アプリケーションの検索プレビューを有効にします。

  4. [フィルター] で、[Custom security attribute](カスタムセキュリティ属性) を選択します。

  5. 属性セットと属性名を選択します。

  6. [演算子]には、等号 (==)、不等号 (!=)、または [次の値で始まる] が選択できます。

  7. [値] には、値を入力または選択します。

    Screenshot showing a custom security attribute filter for applications.

  8. [適用] を選択して、フィルターを適用します。

アプリケーションからカスタム セキュリティ属性の割り当てを削除する

  1. Microsoft Entra 管理センター属性割り当て管理者としてサインインします。

  2. ID>アプリケーション>エンタープライズ アプリケーション を参照します。

  3. 削除するカスタム セキュリティ属性の割り当て値を持つアプリケーションを検索して選択します。

  4. [管理] セクションで、[カスタム セキュリティ属性 (プレビュー)] を選択します。

  5. 削除するすべてのカスタム セキュリティ属性の割り当ての横にチェックマークを追加します。

  6. [割り当ての削除]を選択します。

Azure AD PowerShell

Microsoft Entra 組織のアプリケーションへのカスタム セキュリティ属性の割り当ての管理には、PowerShell を使用できます。 割り当ての管理には、次のコマンドを使用できます。

Azure AD PowerShell を使用して複数の文字列値を持つカスタムセキュリティ属性をアプリケーション (サービス プリンシパル) に割り当てる

複数の文字列値を持つカスタム セキュリティ属性をアプリケーション (サービス プリンシパル) に割り当てるには、Set-AzureADMSServicePrincipal コマンドを使用します。

  • 属性セット: Engineering
  • 属性: Project
  • 属性のデータ型: 文字列のコレクション
  • 属性値: ("Baker","Cascade")
$attributes = @{
    Engineering = @{
        "@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
        "Project@odata.type" = "#Collection(String)"
        Project = @("Baker","Cascade")
    }
}
Set-AzureADMSServicePrincipal -Id 7d194b0c-bf17-40ff-9f7f-4b671de8dc20 -CustomSecurityAttributes $attributes

Azure AD PowerShell を使用してアプリケーション (サービス プリンシパル) の複数文字列値を持つカスタム セキュリティ属性を更新する

アプリケーションに反映する新しい属性値のセットを指定します。 この例では、プロジェクト属性にもう 1 つの値を追加しています。

  • 属性セット: Engineering
  • 属性: Project
  • 属性のデータ型: 文字列のコレクション
  • 属性値: ("Alpine","Baker")
$attributesUpdate = @{
    Engineering = @{
        "@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
        "Project@odata.type" = "#Collection(String)"
        Project = @("Alpine","Baker")
    }
}
Set-AzureADMSServicePrincipal -Id 7d194b0c-bf17-40ff-9f7f-4b671de8dc20 -CustomSecurityAttributes $attributesUpdate 

Azure AD PowerShell を使用してアプリケーション (サービス プリンシパル) のカスタム セキュリティ属性の割り当てを取得する

アプリケーション (サービス プリンシパル) のカスタム セキュリティ属性の割り当てを取得するには、Get-AzureADMSServicePrincipal コマンドを使用します。

Get-AzureADMSServicePrincipal -Select CustomSecurityAttributes
Get-AzureADMSServicePrincipal -Id 7d194b0c-bf17-40ff-9f7f-4b671de8dc20  -Select "CustomSecurityAttributes, Id"

Microsoft Graph PowerShell

Microsoft Entra 組織のアプリケーションへのカスタム セキュリティ属性の割り当ての管理には、Microsoft Graph PowerShell を使用できます。 割り当ての管理には、次のコマンドを使用できます。

Microsoft Graph PowerShell を使用して複数の文字列値を持つカスタムセキュリティ属性をアプリケーション (サービス プリンシパル) に割り当てる

複数の文字列値を持つカスタム セキュリティ属性をアプリケーション (サービス プリンシパル) に割り当てるには、Update-MgServicePrincipal コマンドを使用します。

指定された値

  • 属性セット: Engineering
  • 属性: ProjectDate
  • 属性のデータ型: 文字列
  • 属性値: "2024-11-15"
#Retrieve the servicePrincipal

$ServicePrincipal = (Get-MgServicePrincipal -Filter "displayName eq 'TestApp'").Id

$customSecurityAttributes = @{
    Engineering = @{
        "@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
        "ProjectDate" ="2024-11-15"
    }
}
Update-MgServicePrincipal -ServicePrincipalId $ServicePrincipal -CustomSecurityAttributes $customSecurityAttributes

Microsoft Graph PowerShell を使用してアプリケーション (サービス プリンシパル) の複数文字列値を持つカスタム セキュリティ属性を更新する

アプリケーションに反映する新しい属性値のセットを指定します。 この例では、プロジェクト属性にもう 1 つの値を追加しています。

指定された値

  • 属性セット: Engineering
  • 属性: Project
  • 属性のデータ型: 文字列のコレクション
  • 属性値: ["Baker","Cascade"]
$customSecurityAttributes = @{
    Engineering = @{
        "@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
        "Project@odata.type" = "#Collection(String)"
        "Project" = @(
            "Baker"
            "Cascade"
        )
    }
}
Update-MgServicePrincipal -ServicePrincipalId $ServicePrincipal -CustomSecurityAttributes $customSecurityAttributes

Microsoft Graph PowerShell を使用してカスタム セキュリティ属性に基づいてアプリケーションをフィルター処理する

この例は、指定した値と同じカスタム セキュリティ属性の割り当てを使用して、アプリケーションの一覧をフィルター処理します。

$appAttributes = Get-MgServicePrincipal -CountVariable CountVar -Property "id,displayName,customSecurityAttributes" -Filter "customSecurityAttributes/Engineering/Project eq 'Baker'" -ConsistencyLevel eventual
$appAttributes | select Id,DisplayName,CustomSecurityAttributes  | Format-List
$appAttributes.CustomSecurityAttributes.AdditionalProperties | Format-List
Id                       : 7d194b0c-bf17-40ff-9f7f-4b671de8dc20
DisplayName              : TestApp
CustomSecurityAttributes : Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue

Key   : Engineering
Value : {[@odata.type, #microsoft.graph.customSecurityAttributeValue], [ProjectDate, 2024-11-15], [Project@odata.type, #Collection(String)], [Project, System.Object[]]}

Microsoft Graph PowerShell を使用してアプリケーションからカスタム セキュリティ属性の割り当てを削除する

この例では、単一の値をサポートするカスタム セキュリティ属性の割り当てを削除します。


$params = @{
    "customSecurityAttributes" = @{
        "Engineering" = @{
            "@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
            "ProjectDate" = $null
        }
    }
}
Invoke-MgGraphRequest -Method PATCH -Uri "https://graph.microsoft.com/v1.0/servicePrincipals/$ServicePrincipal" -Body $params

この例では、複数の値をサポートするカスタム セキュリティ属性の割り当てを削除します。

$customSecurityAttributes = @{
    Engineering = @{
        "@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
        "Project" = @()
    }
}
Update-MgServicePrincipal -ServicePrincipalId $ServicePrincipal -CustomSecurityAttributes $customSecurityAttributes

Microsoft Graph API

Microsoft Entra 組織のアプリケーションへのカスタム セキュリティ属性の割り当ての管理には、Microsoft Graph API を使用できます。 割り当てを管理するために、次の API 呼び出します。

その他の同様のユーザー向け Microsoft Graph API の例については、「ユーザーのカスタム セキュリティ属性の割り当て、更新、一覧表示、削除」と「例: Microsoft Graph API を使用したカスタム セキュリティ属性割り当ての割り当て、更新、一覧表示、削除」を参照してください。

Microsoft Graph API を使用して複数の文字列値を持つカスタムセキュリティ属性をアプリケーション (サービス プリンシパル) に割り当てる

文字列値を持つカスタム セキュリティ属性をアプリケーションに割り当てるには、Update servicePrincipal API を使用します。

指定された値

  • 属性セット: Engineering
  • 属性: Project
  • 属性のデータ型: 文字列
  • 属性値: "Baker"
PATCH https://graph.microsoft.com/v1.0/servicePrincipals/{id}
Content-type: application/json

{
    "customSecurityAttributes":
    {
        "Engineering":
        {
            "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
            "Project@odata.type":"#Collection(String)",
            "Project": "Baker"
        }
    }
}

Microsoft Graph API を使用してアプリケーション (サービス プリンシパル) の複数文字列値を持つカスタム セキュリティ属性を更新する

アプリケーションに反映する新しい属性値のセットを指定します。 この例では、プロジェクト属性にもう 1 つの値を追加しています。

PATCH https://graph.microsoft.com/v1.0/servicePrincipals/{id}
Content-type: application/json

{
    "customSecurityAttributes":
    {
        "Engineering":
        {
            "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
            "Project@odata.type":"#Collection(String)",
            "Project":["Baker","Cascade"]
        }
    }
}

Microsoft Graph API を使用してカスタム セキュリティ属性に基づいてアプリケーションをフィルター処理する

この例は、指定した値と同じカスタム セキュリティ属性の割り当てを使用して、アプリケーションの一覧をフィルター処理します。 フィルター値は大文字と小文字が区別されます。 要求またはヘッダーに ConsistencyLevel=eventual を追加する必要があります。 要求が正しくルーティングされるようにするには、 $count=true も含める必要があります。

GET https://graph.microsoft.com/v1.0/servicePrincipals?$count=true&$select=id,displayName,customSecurityAttributes&$filter=customSecurityAttributes/Engineering/Project eq 'Baker'
ConsistencyLevel: eventual

Microsoft Graph API を使用してアプリケーションからカスタム セキュリティ属性の割り当てを削除する

この例では、複数の値をサポートするカスタム セキュリティ属性の割り当てを削除します。

PATCH https://graph.microsoft.com/v1.0/servicePrincipals/{id}
Content-type: application/json

{
    "customSecurityAttributes":
    {
        "Engineering":
        {
            "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
            "Project":[]
        }
    }
}

次のステップ