Microsoft Entra ID でカスタム セキュリティ属性の定義を追加または非アクティブ化する

Microsoft Entra ID のカスタム セキュリティ属性は、ビジネス固有の属性 (キーと値のペア) であり、Microsoft Entra のオブジェクトに対して定義し割り当てることができます。 この記事では、カスタム セキュリティ属性の定義を追加、編集、または非アクティブ化する方法について説明します。

前提条件

カスタム セキュリティ属性の定義を追加または非アクティブ化するには、次が必要です。

重要

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

属性セットを追加する

ヒント

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

属性セットは、関連する属性のコレクションです。 すべてのカスタム セキュリティ属性は、属性セットの一部である必要があります。 属性セットの名前を変更または削除することはできません。

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

  2. [保護]>[カスタム セキュリティ属性] を参照します。

  3. [Add attribute set](属性セットの追加) をクリックして、新しい属性セットを追加します。

    [Add attribute set] (属性セットの追加) が無効になっている場合は、属性定義管理者のロールが割り当てられていることを確認してください。 詳細については、カスタム セキュリティ属性のトラブルシューティングに関する記事を参照してください。

  4. 属性の名前、説明、最大数を入力します。

    属性セット名には、スペースや特殊文字を含めない 32 文字を指定できます。 一度指定した名前は、変更できません。 詳細については、「制限および制約」を参照してください。

    Screenshot of New attribute set pane in Microsoft Entra admin center.

  5. 作業が終了したら、 [追加] をクリックします。

    新しい属性セットが属性セットの一覧に表示されます。

カスタム セキュリティ属性の定義を追加する

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

  2. [保護]>[カスタム セキュリティ属性] を参照します。

  3. [カスタム セキュリティ属性] ページで、既存の属性セットを見つけるか、[Add attribute set](属性セットの追加) をクリックして新しい属性セットを追加します。

    すべてのカスタム セキュリティ属性の定義は、属性セットに属している必要があります。

  4. クリックして、選択した属性セットを開きます。

  5. [属性の追加] をクリックして、新しいカスタム セキュリティ属性をその属性セットに追加します。

    Screenshot of New attribute pane in Microsoft Entra admin center.

  6. [属性名] ボックスに、カスタム セキュリティ属性名を入力します。

    カスタム セキュリティ属性名には、スペースや特殊文字を含めない 32 文字を指定できます。 一度指定した名前は、変更できません。 詳細については、「制限および制約」を参照してください。

  7. [説明] ボックスに、説明 (省略可能) を入力します。

    説明は 128 文字まで入力できます。 必要に応じて、後で説明を変更できます。

  8. [データ型] の一覧から、カスタム セキュリティ属性のデータ型を選択します。

    データ型 説明
    Boolean true、True、false、False のいずれかの値をとるブール値。
    整数型 32 ビットの整数。
    String 文字数を指定できる文字列。
  9. [Allow multiple values to be assigned](複数の値の割り当てを許可する) で、[はい] または [いいえ] を選択します。

    [はい] を選択すると、このカスタム セキュリティ属性に複数の値を割り当てることができます。 [いいえ] を選択すると、このカスタム セキュリティ属性に単一の値のみを割り当てることができます。

  10. [Only allow predefined values to be assigned](定義済みの値のみの割り当てを許可する) で、[はい] または [いいえ] を選択します。

    定義済みの値の一覧からこのカスタム セキュリティ属性に値を割り当てる場合は、[はい] を選択します。 [いいえ] を選択すると、ユーザー定義の値または潜在的に定義済みの値をこのカスタム セキュリティ属性に割り当てることができます。

  11. [Only allow predefined values to be assigned](定義済みの値のみの割り当てを許可する)[はい] の場合は、[値の追加] をクリックして定義済みの値を追加します。

    アクティブな値は、オブジェクトへの割り当てに使用できます。 アクティブでない値は定義されますが、割り当てにはまだ使用できません。

    Screenshot of New attribute pane with Add predefined value pane in Microsoft Entra admin center.

  12. 完了したら、 [保存] をクリックします。

    新しいカスタム セキュリティ属性は、カスタム セキュリティ属性の一覧に表示されます。

  13. 定義済みの値を含める場合は、次のセクションの手順に従います。

カスタム セキュリティ属性の定義を編集する

新しいカスタム セキュリティ属性の定義を追加したら、後でいくつかのプロパティを編集できます。 一部のプロパティは不変であり、変更することはできません。

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

  2. [保護]>[カスタム セキュリティ属性] を参照します。

  3. 編集するカスタム セキュリティ属性を含む属性セットをクリックします。

  4. カスタム セキュリティ属性の一覧で、編集したいカスタム セキュリティ属性の省略記号をクリックし、[属性の編集] を選択します。

  5. 有効になっているプロパティを編集します。

  6. [Only allow predefined values to be assigned](定義済みの値のみの割り当てを許可する)[はい] の場合は、[値の追加] をクリックして定義済みの値を追加します。 既存の定義済みの値をクリックして、[Is active?]\[アクティブですか?\] 設定を変更します。

    Screenshot of Add predefined value pane in Microsoft Entra admin center.

カスタム セキュリティ属性の定義を非アクティブ化する

カスタム セキュリティ属性の定義を追加したら、それを削除できます。 ただし、カスタム セキュリティ属性の定義を非アクティブ化できます。

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

  2. [保護]>[カスタム セキュリティ属性] を参照します。

  3. 非アクティブ化するカスタム セキュリティ属性を含む属性セットをクリックします。

  4. カスタム セキュリティ属性の一覧で、非アクティブ化するカスタム セキュリティ属性の横にチェック マークを追加します。

  5. [Deactivate attribute](属性の非アクティブ化) をクリックします。

  6. 表示される [Deactivate attribute] (属性の非アクティブ化) ダイアログで、[はい] をクリックします。

    カスタム セキュリティ属性が非アクティブ化され、非アクティブ化された属性の一覧に移動します。

PowerShell または Microsoft Graph API

Microsoft Entra 組織内のカスタム セキュリティ属性の定義を管理するには、PowerShell または Microsoft Graph API を使用することもできます。 次の例では、属性セットとカスタム セキュリティ属性の定義を管理します。

すべての属性セットを取得する

次の例では、すべての属性セットを取得します。

Get-MgDirectoryAttributeSet

Get-MgDirectoryAttributeSet | Format-List
Description          : Attributes for engineering team
Id                   : Engineering
MaxAttributesPerSet  : 25
AdditionalProperties : {}

Description          : Attributes for marketing team
Id                   : Marketing
MaxAttributesPerSet  : 25
AdditionalProperties : {}

上位の属性セットを取得する

次の例では、上位の属性セットを取得します。

Get-MgDirectoryAttributeSet

Get-MgDirectoryAttributeSet -Top 10

属性セットを順番に取得する

次の例では、属性セットを順番に取得します。

Get-MgDirectoryAttributeSet

Get-MgDirectoryAttributeSet -Sort "Id"

属性セットを取得する

次の例では、属性セットを取得します。

  • 属性セット: Engineering

Get-MgDirectoryAttributeSet

Get-MgDirectoryAttributeSet -AttributeSetId "Engineering" | Format-List
Description          : Attributes for engineering team
Id                   : Engineering
MaxAttributesPerSet  : 25
AdditionalProperties : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#directory/attributeSets/$entity]}

属性セットを追加する

次の例では、新しい属性セットを追加します。

  • 属性セット: Engineering

New-MgDirectoryAttributeSet

$params = @{
    Id = "Engineering"
    Description = "Attributes for engineering team"
    MaxAttributesPerSet = 25
}
New-MgDirectoryAttributeSet -BodyParameter $params
Id          Description                     MaxAttributesPerSet
--          -----------                     -------------------
Engineering Attributes for engineering team 25

属性セットを更新する

次の例では、属性セットを更新します。

  • 属性セット: Engineering

Update-MgDirectoryAttributeSet

$params = @{
    description = "Attributes for engineering team"
    maxAttributesPerSet = 20
}
Update-MgDirectoryAttributeSet -AttributeSetId "Engineering" -BodyParameter $params

すべてのカスタム セキュリティ属性の定義を取得する

次の例では、すべてのカスタム セキュリティ属性の定義を取得します。

Get-MgDirectoryCustomSecurityAttributeDefinition

Get-MgDirectoryCustomSecurityAttributeDefinition | Format-List
AllowedValues           :
AttributeSet            : Engineering
Description             : Target completion date
Id                      : Engineering_ProjectDate
IsCollection            : False
IsSearchable            : True
Name                    : ProjectDate
Status                  : Available
Type                    : String
UsePreDefinedValuesOnly : False
AdditionalProperties    : {}

AllowedValues           :
AttributeSet            : Engineering
Description             : Active projects for user
Id                      : Engineering_Project
IsCollection            : True
IsSearchable            : True
Name                    : Project
Status                  : Available
Type                    : String
UsePreDefinedValuesOnly : True
AdditionalProperties    : {}

AllowedValues           :
AttributeSet            : Marketing
Description             : Country where is application is used
Id                      : Marketing_AppCountry
IsCollection            : True
IsSearchable            : True
Name                    : AppCountry
Status                  : Available
Type                    : String
UsePreDefinedValuesOnly : True
AdditionalProperties    : {}

カスタム セキュリティ属性の定義をフィルターする

次の例では、カスタム セキュリティ属性の定義をフィルターします。

  • フィルター: 属性名が 'Project' で状態が 'Available'

Get-MgDirectoryCustomSecurityAttributeDefinition

Get-MgDirectoryCustomSecurityAttributeDefinition -Filter "name eq 'Project' and status eq 'Available'" | Format-List
AllowedValues           :
AttributeSet            : Engineering
Description             : Active projects for user
Id                      : Engineering_Project
IsCollection            : True
IsSearchable            : True
Name                    : Project
Status                  : Available
Type                    : String
UsePreDefinedValuesOnly : True
AdditionalProperties    : {}
  • フィルター: 属性セット が 'Engineering' で状態が 'Available'、データ型が 'String'

Get-MgDirectoryCustomSecurityAttributeDefinition

Get-MgDirectoryCustomSecurityAttributeDefinition -Filter "attributeSet eq 'Engineering' and status eq 'Available' and type eq 'String'" | Format-List
AllowedValues           :
AttributeSet            : Engineering
Description             : Target completion date
Id                      : Engineering_ProjectDate
IsCollection            : False
IsSearchable            : True
Name                    : ProjectDate
Status                  : Available
Type                    : String
UsePreDefinedValuesOnly : False
AdditionalProperties    : {}

AllowedValues           :
AttributeSet            : Engineering
Description             : Active projects for user
Id                      : Engineering_Project
IsCollection            : True
IsSearchable            : True
Name                    : Project
Status                  : Available
Type                    : String
UsePreDefinedValuesOnly : True
AdditionalProperties    : {}

カスタム セキュリティ属性の定義を取得する

次の例では、カスタム セキュリティ属性の定義を取得します。

  • 属性セット: Engineering
  • 属性: ProjectDate

Get-MgDirectoryCustomSecurityAttributeDefinition

Get-MgDirectoryCustomSecurityAttributeDefinition -CustomSecurityAttributeDefinitionId "Engineering_ProjectDate" | Format-List
AllowedValues           :
AttributeSet            : Engineering
Description             : Target completion date
Id                      : Engineering_ProjectDate
IsCollection            : False
IsSearchable            : True
Name                    : ProjectDate
Status                  : Available
Type                    : String
UsePreDefinedValuesOnly : False
AdditionalProperties    : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#directory/customSecurityAttributeDefinitions/$entity]}

カスタム セキュリティ属性の定義を追加する

次の例では、新しいカスタム セキュリティ属性の定義を追加します。

  • 属性セット: Engineering
  • 属性: ProjectDate
  • 属性のデータ型: 文字列

New-MgDirectoryCustomSecurityAttributeDefinition

$params = @{
    attributeSet = "Engineering"
    description = "Target completion date"
    isCollection = $false
    isSearchable = $true
    name = "ProjectDate"
    status = "Available"
    type = "String"
    usePreDefinedValuesOnly = $false
}
New-MgDirectoryCustomSecurityAttributeDefinition -BodyParameter $params | Format-List
AllowedValues           :
AttributeSet            : Engineering
Description             : Target completion date
Id                      : Engineering_ProjectDate
IsCollection            : False
IsSearchable            : True
Name                    : ProjectDate
Status                  : Available
Type                    : String
UsePreDefinedValuesOnly : False
AdditionalProperties    : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#directory/customSecurityAttributeDefinitions/$entity]}

複数の定義済みの値をサポートするカスタム セキュリティ属性の定義を追加する

次の例では、複数の定義済みの値をサポートする新しいカスタム セキュリティ属性の定義を追加します。

  • 属性セット: Engineering
  • 属性: Project
  • 属性のデータ型: 文字列のコレクション

New-MgDirectoryCustomSecurityAttributeDefinition

$params = @{
    attributeSet = "Engineering"
    description = "Active projects for user"
    isCollection = $true
    isSearchable = $true
    name = "Project"
    status = "Available"
    type = "String"
    usePreDefinedValuesOnly = $true
}
New-MgDirectoryCustomSecurityAttributeDefinition -BodyParameter $params | Format-List
AllowedValues           :
AttributeSet            : Engineering
Description             : Active projects for user
Id                      : Engineering_Project
IsCollection            : True
IsSearchable            : True
Name                    : Project
Status                  : Available
Type                    : String
UsePreDefinedValuesOnly : True
AdditionalProperties    : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#directory/customSecurityAttributeDefinitions/$entity]}

定義済みの値の一覧を含むカスタム セキュリティ属性の定義を追加する

次の例では、定義済みの値の一覧を含む新しいカスタム セキュリティ属性の定義を追加します。

  • 属性セット: Engineering
  • 属性: Project
  • 属性のデータ型: 文字列のコレクション
  • 定義済みの値: AlpineBakerCascade

New-MgDirectoryCustomSecurityAttributeDefinition

$params = @{
    attributeSet = "Engineering"
    description = "Active projects for user"
    isCollection = $true
    isSearchable = $true
    name = "Project"
    status = "Available"
    type = "String"
    usePreDefinedValuesOnly = $true
    allowedValues = @(
        @{
            id = "Alpine"
            isActive = $true
        }
        @{
            id = "Baker"
            isActive = $true
        }
        @{
            id = "Cascade"
            isActive = $true
        }
    )
}
New-MgDirectoryCustomSecurityAttributeDefinition -BodyParameter $params | Format-List
AllowedValues           :
AttributeSet            : Engineering
Description             : Active projects for user
Id                      : Engineering_Project
IsCollection            : True
IsSearchable            : True
Name                    : Project
Status                  : Available
Type                    : String
UsePreDefinedValuesOnly : True
AdditionalProperties    : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#directory/customSecurityAttributeDefinitions/$entity]}

カスタム セキュリティ属性の定義を更新する

次の例では、カスタム セキュリティ属性の定義を更新します。

  • 属性セット: Engineering
  • 属性: ProjectDate

Update-MgDirectoryCustomSecurityAttributeDefinition

$params = @{
    description = "Target completion date (YYYY/MM/DD)"
}
Update-MgDirectoryCustomSecurityAttributeDefinition -CustomSecurityAttributeDefinitionId "Engineering_ProjectDate" -BodyParameter $params

カスタム セキュリティ属性の定義の定義済みの値を更新する

次の例では、カスタム セキュリティ属性の定義の定義済みの値を更新します。

  • 属性セット: Engineering
  • 属性: Project
  • 属性のデータ型: 文字列のコレクション
  • 定義済みの値の更新: Baker
  • 新しい定義済みの値: Skagit

Invoke-MgGraphRequest

Note

この要求では、OData-Version ヘッダーを追加し、値 4.01 を割り当てる必要があります。

$params = @{
    "allowedValues@delta" = @(
        @{
            id = "Baker"
            isActive = $false
        }
        @{
            id = "Skagit"
            isActive = $true
        }
    )
}
$header = @{
    "OData-Version" = 4.01
}
Invoke-MgGraphRequest -Method PATCH -Uri "https://graph.microsoft.com/v1.0/directory/customSecurityAttributeDefinitions/Engineering_Project5" -Headers $header -Body $params

カスタム セキュリティ属性の定義を非アクティブ化する

次の例では、カスタム セキュリティ属性の定義を非アクティブ化します。

  • 属性セット: Engineering
  • 属性: Project

Update-MgDirectoryCustomSecurityAttributeDefinition

$params = @{
    status = "Deprecated"
}
Update-MgDirectoryCustomSecurityAttributeDefinition -CustomSecurityAttributeDefinitionId "Engineering_ProjectDate" -BodyParameter $params

すべての定義済みの値を取得する

次の例では、カスタム セキュリティ属性の定義のすべての定義済みの値を取得します。

  • 属性セット: Engineering
  • 属性: Project

Get-MgDirectoryCustomSecurityAttributeDefinitionAllowedValue

Get-MgDirectoryCustomSecurityAttributeDefinitionAllowedValue -CustomSecurityAttributeDefinitionId "Engineering_Project" | Format-List
Id                   : Skagit
IsActive             : True
AdditionalProperties : {}

Id                   : Baker
IsActive             : False
AdditionalProperties : {}

Id                   : Cascade
IsActive             : True
AdditionalProperties : {}

Id                   : Alpine
IsActive             : True
AdditionalProperties : {}

定義済みの値を取得する

次の例では、カスタム セキュリティ属性の定義の定義済みの値を取得します。

  • 属性セット: Engineering
  • 属性: Project
  • 定義済みの値: Alpine

Get-MgDirectoryCustomSecurityAttributeDefinitionAllowedValue

Get-MgDirectoryCustomSecurityAttributeDefinitionAllowedValue -CustomSecurityAttributeDefinitionId "Engineering_Project" -AllowedValueId "Alpine" | Format-List
Id                   : Alpine
IsActive             : True
AdditionalProperties : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#directory/customSecurityAttributeDefinitions('Engineering_Project')/al
                       lowedValues/$entity]}

定義済みの値を追加する

次の例では、カスタム セキュリティ属性の定義の定義済みの値を追加します。

usePreDefinedValuesOnlytrue に設定されているカスタム セキュリティ属性には、定義済みの値を追加することができます。

  • 属性セット: Engineering
  • 属性: Project
  • 定義済みの値: Alpine

New-MgDirectoryCustomSecurityAttributeDefinitionAllowedValue

$params = @{
    id = "Alpine"
    isActive = $true
}
New-MgDirectoryCustomSecurityAttributeDefinitionAllowedValue -CustomSecurityAttributeDefinitionId "Engineering_Project" -BodyParameter $params | Format-List
Id                   : Alpine
IsActive             : True
AdditionalProperties : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#directory/customSecurityAttributeDefinitions('Engineering_Project')/al
                       lowedValues/$entity]}

定義済みの値を非アクティブ化する

次の例では、カスタム セキュリティ属性の定義の定義済みの値を非アクティブ化します。

  • 属性セット: Engineering
  • 属性: Project
  • 定義済みの値: Alpine

Update-MgDirectoryCustomSecurityAttributeDefinitionAllowedValue

$params = @{
    isActive = $false
}
Update-MgDirectoryCustomSecurityAttributeDefinitionAllowedValue -CustomSecurityAttributeDefinitionId "Engineering_Project" -AllowedValueId "Alpine" -BodyParameter $params

よく寄せられる質問

カスタム セキュリティ属性の定義を削除できますか?

いいえ、カスタム セキュリティ属性の定義を削除することはできません。 カスタム セキュリティ属性の定義を非アクティブ化することのみが可能です。 カスタム セキュリティ属性を非アクティブ化すると、Microsoft Entra オブジェクトに適用できなくなります。 非アクティブ化されたカスタム セキュリティ属性の定義に対するカスタム セキュリティ属性の割り当ては、自動的には削除されません。 非アクティブ化されるカスタム セキュリティ属性の数に制限はありません。 テナントごとに 500 のアクティブなカスタム セキュリティ属性の定義を設定でき、カスタム セキュリティ属性の定義あたり 100 の定義済みの値を許可できます。

次のステップ