Compartilhar via


Gerir atribuições de atributos de segurança personalizadas

Os atributos de segurança personalizados no Microsoft Entra ID são atributos específicos da empresa (pares chave-valor) que pode definir e atribuir a objetos Microsoft Entra. Estes atributos podem ser utilizados para armazenar informações, categorizar objetos ou impor um controlo de acesso detalhado sobre recursos específicos do Azure através do controlo de acesso baseado em atributos do Azure (Azure ABAC).

Os atributos de segurança personalizados são suportados apenas para utilizadores e principais de serviço. Este artigo fornece exemplos de como atribuir, atualizar, listar ou remover diferentes tipos de atributos de segurança personalizados para utilizadores e aplicações com o Microsoft Graph.

Pré-requisitos

  • Criar atributos de segurança personalizados. Para obter mais informações sobre como definir e gerir definições de atributos de segurança personalizadas, veja Descrição geral dos atributos de segurança personalizados com o Microsoft Graph.
  • Para cenários delegados, a chamada tem de ter as seguintes permissões e funções administrativas atribuídas.
    • Para atribuir, atualizar ou remover:
      • funções de Microsoft Entra: Administrador de Atribuição de Atributos
      • Permissões do Microsoft Graph:
        • Utilizadores: CustomSecAttributeAssignment.ReadWrite.All e User.Read.All
        • Principais de serviço: CustomSecAttributeAssignment.ReadWrite.All e Application.Read.All
    • Para ler:

Atribuir atributos de segurança personalizados

Exemplo 1: atribuir um atributo de segurança personalizado com um valor de cadeia a um utilizador

O exemplo seguinte mostra como utilizar a API de utilizador atualizar para atribuir um atributo de segurança personalizado com um valor de cadeia a um utilizador.

  • Conjunto de atributos: Engineering
  • Atributo: ProjectDate
  • Tipo de dados de atributo: cadeia de caracteres
  • Valor do atributo: "2022-10-01"

Solicitação

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

{
    "customSecurityAttributes":
    {
        "Engineering":
        {
            "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
            "ProjectDate":"2022-10-01"
        }
    }
}

Resposta

HTTP/1.1 204 No Content

Exemplo 2: atribuir um atributo de segurança personalizado com um valor de cadeia de caracteres a um principal de serviço

O exemplo seguinte mostra como utilizar a API Update servicePrincipal para atribuir um atributo de segurança personalizado com um valor de cadeia a um principal de serviço.

  • Conjunto de atributos: Engineering
  • Atributo: ProjectDate
  • Tipo de dados de atributo: cadeia de caracteres
  • Valor do atributo: "2022-10-01"

Solicitação

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

{
    "customSecurityAttributes":
    {
        "Engineering":
        {
            "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
            "ProjectDate":"2022-10-01"
        }
    }
}

Resposta

HTTP/1.1 204 No Content

Exemplo 3: atribuir um atributo de segurança personalizado com um valor de várias cadeias a um utilizador

O exemplo seguinte mostra como utilizar a API de utilizador atualizar para atribuir um atributo de segurança personalizado com um valor de várias cadeias a um utilizador.

  • Conjunto de atributos: Engineering
  • Atributo: Project
  • Tipo de dados de atributo: Coleção de cadeias de caracteres
  • Valor do atributo: ["Baker","Cascade"]

Solicitação

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

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

Resposta

HTTP/1.1 204 No Content

Exemplo 4: Atribuir um atributo de segurança personalizado com um valor inteiro a um utilizador

O exemplo seguinte mostra como utilizar a API atualizar utilizador para atribuir um atributo de segurança personalizado com um valor inteiro a um utilizador.

  • Conjunto de atributos: Engineering
  • Atributo: NumVendors
  • Tipo de dados de atributo: Número inteiro
  • Valor do atributo: 4

Solicitação

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

{
    "customSecurityAttributes":
    {
        "Engineering":
        {
            "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
            "NumVendors@odata.type":"#Int32",
            "NumVendors":4
        }
    }
}

Resposta

HTTP/1.1 204 No Content

Exemplo 5: Atribuir um atributo de segurança personalizado com um valor de vários números inteiros a um utilizador

O exemplo seguinte mostra como utilizar a API de utilizador atualizar para atribuir um atributo de segurança personalizado com um valor de número múltiplo a um utilizador.

  • Conjunto de atributos: Engineering
  • Atributo: CostCenter
  • Tipo de dados de atributo: Coleção de inteiros
  • Valor do atributo: [1001,1003]

Solicitação

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

{
    "customSecurityAttributes":
    {
        "Engineering":
        {
            "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
            "CostCenter@odata.type":"#Collection(Int32)",
            "CostCenter":[1001,1003]
        }
    }
}

Resposta

HTTP/1.1 204 No Content

Exemplo 6: Atribuir um atributo de segurança personalizado com um valor Booleano a um utilizador

O exemplo seguinte mostra como utilizar a API de utilizador Atualizar para atribuir um atributo de segurança personalizado com um valor Booleano a um utilizador.

  • Conjunto de atributos: Engineering
  • Atributo: Certification
  • Tipo de dados de atributo: Booliano
  • Valor do atributo: true

Solicitação

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

{
    "customSecurityAttributes":
    {
        "Engineering":
        {
            "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
            "Certification":true
        }
    }
}

Resposta

HTTP/1.1 204 No Content

Atualizar atribuições de atributos de segurança personalizadas

Exemplo 1: atualizar uma atribuição de atributo de segurança personalizada com um valor inteiro para um utilizador

O exemplo seguinte mostra como utilizar a API atualizar o utilizador para atualizar uma atribuição de atributo de segurança personalizada com um valor inteiro para um utilizador.

  • Conjunto de atributos: Engineering
  • Atributo: NumVendors
  • Tipo de dados de atributo: Número inteiro
  • Valor do atributo: 8

Solicitação

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

{
    "customSecurityAttributes":
    {
        "Engineering":
        {
            "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
            "NumVendors@odata.type":"#Int32",
            "NumVendors":8
        }
    }
}

Resposta

HTTP/1.1 204 No Content

Exemplo 2: atualizar uma atribuição de atributo de segurança personalizada com um valor Booleano para um utilizador

O exemplo seguinte mostra como utilizar a API atualizar o utilizador para atualizar uma atribuição de atributo de segurança personalizada com um valor Booleano para um utilizador.

  • Conjunto de atributos: Engineering
  • Atributo: Certification
  • Tipo de dados de atributo: Booliano
  • Valor do atributo: false

Solicitação

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

{
    "customSecurityAttributes":
    {
        "Engineering":
        {
            "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
            "Certification":false
        }
    }
}

Resposta

HTTP/1.1 204 No Content

Listar atribuições de atributos de segurança personalizadas

Exemplo 1: Obter as atribuições de atributos de segurança personalizadas para um utilizador

O exemplo seguinte mostra como utilizar a API Obter utilizador para obter as atribuições de atributos de segurança personalizadas para um utilizador.

Atributo nº 1

  • Conjunto de atributos: Engineering
  • Atributo: Project
  • Tipo de dados de atributo: Coleção de cadeias de caracteres
  • Valor do atributo: ["Baker","Cascade"]

Atributo nº 2

  • Conjunto de atributos: Engineering
  • Atributo: CostCenter
  • Tipo de dados de atributo: Coleção de inteiros
  • Valor do atributo: [1001]

Atributo nº 3

  • Conjunto de atributos: Engineering
  • Atributo: Certification
  • Tipo de dados de atributo: Booliano
  • Valor do atributo: true

Atributo nº 4

  • Conjunto de atributos: Marketing
  • Atributo: EmployeeId
  • Tipo de dados de atributo: cadeia de caracteres
  • Valor do atributo: "QN26904"

Solicitação

GET https://graph.microsoft.com/v1.0/users/{id}?$select=customSecurityAttributes

Resposta

HTTP/1.1 200 OK

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(customSecurityAttributes)/$entity",
    "customSecurityAttributes": {
        "Marketing": {
            "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
            "EmployeeId": "QN26904"
        },
        "Engineering": {
            "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
            "Project@odata.type": "#Collection(String)",
            "Project": [
                "Baker",
                "Cascade"
            ],
            "CostCenter@odata.type": "#Collection(Int32)",
            "CostCenter": [
                1001
            ],
            "Certification": true
        }
    }
}

Se não houver atributos de segurança personalizados atribuídos ao usuário ou se a entidade de chamada não tiver acesso, a seguinte será a resposta:

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(customSecurityAttributes)/$entity",
    "customSecurityAttributes": null
}

Exemplo 2: listar todos os utilizadores com uma atribuição de atributo de segurança personalizada que seja igual a um valor

O exemplo seguinte mostra como utilizar a API Listar utilizadores para listar todos os utilizadores com uma atribuição de atributo de segurança personalizada que seja igual a um valor. O exemplo obtém os utilizadores com um atributo de segurança personalizado denominado AppCountry com um valor igual a Canada. O valor do filtro é sensível às maiúsculas e minúsculas. Tem de adicionar ConsistencyLevel=eventual o pedido ou o cabeçalho. Também tem de incluir $count=true para garantir que o pedido é encaminhado corretamente.

Utilizador n.º 1

  • Conjunto de atributos: Marketing
  • Atributo: AppCountry
  • Tipo de dados de atributo: Coleção de cadeias de caracteres
  • Valor do atributo: ["India","Canada"]

Utilizador n.º 2

  • Conjunto de atributos: Marketing
  • Atributo: AppCountry
  • Tipo de dados de atributo: Coleção de cadeias de caracteres
  • Valor do atributo: ["Canada","Mexico"]

Solicitação

GET https://graph.microsoft.com/v1.0/users?$count=true&$select=id,displayName,customSecurityAttributes&$filter=customSecurityAttributes/Marketing/AppCountry eq 'Canada'
ConsistencyLevel: eventual

Resposta

HTTP/1.1 200 OK

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,displayName,customSecurityAttributes)",
    "@odata.count": 2,
    "value": [
        {
            "id": "dbaf3778-4f81-4ea0-ac1c-502a293c12ac",
            "displayName": "Jiya",
            "customSecurityAttributes": {
                "Engineering": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "Datacenter@odata.type": "#Collection(String)",
                    "Datacenter": [
                        "India"
                    ]
                },
                "Marketing": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "AppCountry@odata.type": "#Collection(String)",
                    "AppCountry": [
                        "India",
                        "Canada"
                    ],
                    "EmployeeId": "KX19476"
                }
            }
        },
        {
            "id": "6bac433c-48c6-4213-a316-1428de32701b",
            "displayName": "Jana",
            "customSecurityAttributes": {
                "Marketing": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "AppCountry@odata.type": "#Collection(String)",
                    "AppCountry": [
                        "Canada",
                        "Mexico"
                    ],
                    "EmployeeId": "GS46982"
                }
            }
        }
    ]
}

Exemplo 3: listar todos os utilizadores com uma atribuição de atributo de segurança personalizada que começa com um valor

O exemplo seguinte mostra como utilizar a API Listar utilizadores para listar todos os utilizadores com uma atribuição de atributo de segurança personalizada que começa com um valor. O exemplo obtém os utilizadores com um atributo de segurança personalizado denominado EmployeeId com um valor que começa com GS. O valor do filtro é sensível às maiúsculas e minúsculas. Tem de adicionar ConsistencyLevel=eventual o pedido ou o cabeçalho. Também tem de incluir $count=true para garantir que o pedido é encaminhado corretamente.

Utilizador n.º 1

  • Conjunto de atributos: Marketing
  • Atributo: EmployeeId
  • Tipo de dados de atributo: cadeia de caracteres
  • Valor do atributo: "KX19476"

Utilizador n.º 2

  • Conjunto de atributos: Marketing
  • Atributo: EmployeeId
  • Tipo de dados de atributo: cadeia de caracteres
  • Valor do atributo: "GS46982"

Solicitação

GET https://graph.microsoft.com/v1.0/users?$count=true&$select=id,displayName,customSecurityAttributes&$filter=startsWith(customSecurityAttributes/Marketing/EmployeeId,'GS')
ConsistencyLevel: eventual

Resposta

HTTP/1.1 200 OK

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,displayName,customSecurityAttributes)",
    "@odata.count": 1,
    "value": [
        {
            "id": "6bac433c-48c6-4213-a316-1428de32701b",
            "displayName": "Jana",
            "customSecurityAttributes": {
                "Marketing": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "AppCountry@odata.type": "#Collection(String)",
                    "AppCountry": [
                        "Canada",
                        "Mexico"
                    ],
                    "EmployeeId": "GS46982"
                }
            }
        }
    ]
}

Exemplo 4: listar todos os utilizadores com uma atribuição de atributo de segurança personalizada que não seja igual a um valor

O exemplo seguinte mostra como utilizar a API Listar utilizadores para listar todos os utilizadores com uma atribuição de atributo de segurança personalizada que não seja igual a um valor. O exemplo obtém os utilizadores com um atributo de segurança personalizado denominado AppCountry com um valor que não é igual Canadaa . O valor do filtro é sensível às maiúsculas e minúsculas. Tem de adicionar ConsistencyLevel=eventual o pedido ou o cabeçalho. Também tem de incluir $count=true para garantir que o pedido é encaminhado corretamente.

Utilizador n.º 1

  • Conjunto de atributos: Marketing
  • Atributo: AppCountry
  • Tipo de dados de atributo: Coleção de cadeias de caracteres
  • Valor do atributo: ["France"]

Todos os outros utilizadores

  • AppCountry atributo não adicionado

Solicitação

GET https://graph.microsoft.com/v1.0/users?$count=true&$select=id,displayName,customSecurityAttributes&$filter=customSecurityAttributes/Marketing/AppCountry ne 'Canada'
ConsistencyLevel: eventual

Resposta

HTTP/1.1 200 OK

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,displayName,customSecurityAttributes)",
    "@odata.count": 32,
    "value": [
        {
            "id": "c4f9ecd3-d3c1-4544-b49a-bc9bb62beb67",
            "displayName": "Alain",
            "customSecurityAttributes": null
        },
        {
            "id": "de4f1218-b0fb-4449-b3a0-1e1dd193e6e7",
            "displayName": "Joe",
            "customSecurityAttributes": {
                "Engineering": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "Project3@odata.type": "#Collection(String)",
                    "Project3": [
                        "Baker",
                        "Cascade"
                    ],
                    "CostCenter@odata.type": "#Collection(Int32)",
                    "CostCenter": [
                        1001
                    ],
                    "Certification": true
                },
                "Marketing": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "EmployeeId": "QN26904"
                }
            }
        },
        {
            "id": "f24d1474-ded5-432d-be08-8abd39921aac",
            "displayName": "Isabella",
            "customSecurityAttributes": {
                "Marketing": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "AppCountry@odata.type": "#Collection(String)",
                    "AppCountry": [
                        "France"
                    ]
                }
            }
        },
        {
            "id": "849e81fe-1109-4d57-9536-a25d537eec1f",
            "displayName": "Dara",
            "customSecurityAttributes": {
                "Engineering": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "ProjectDate": "2023-04-12"
                }
            }
        },
        {
            "id": "42c88239-db99-45f0-85af-cbb6c8acb2a3",
            "displayName": "Chandra",
            "customSecurityAttributes": null
        }
    ]
}

Remover atribuições de atributos de segurança personalizadas

Exemplo 1: Remover uma atribuição de atributo de segurança personalizada de valor único de um utilizador

O exemplo seguinte mostra como utilizar a API atualizar utilizador para remover uma atribuição de atributo de segurança personalizada que suporta um único valor de um utilizador.

  • Conjunto de atributos: Engineering
  • Atributo: ProjectDate
  • Valor do atributo: null

Solicitação

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

{
    "customSecurityAttributes":
    {
        "Engineering":
        {
            "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
            "ProjectDate":null
        }
    }
}

Resposta

HTTP/1.1 204 No Content

Exemplo 2: Remover uma atribuição de atributo de segurança personalizada de valores múltiplos de um utilizador

O exemplo seguinte mostra como utilizar a API de utilizador atualizar para remover uma atribuição de atributo de segurança personalizada que suporta vários valores de um utilizador.

  • Conjunto de atributos: Engineering
  • Atributo: Project
  • Valor do atributo: []

Solicitação

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

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

Resposta

HTTP/1.1 204 No Content

Próxima etapa