Ponto de extremidade de políticas de controle de acesso

NOTE
Se um token de usuário for transmitido, o usuário do token deverá ter uma função de "org admin" para a organização solicitada.

As políticas de controle de acesso são declarações que reúnem atributos para estabelecer ações permitidas e inadmissíveis. Essas políticas podem ser locais ou globais e podem substituir outras políticas. A variável /policies O endpoint na API de controle de acesso baseado em atributos permite gerenciar políticas de forma programática, incluindo informações sobre as regras que as governam, bem como suas respectivas condições de assunto.

IMPORTANT
Esse endpoint não deve ser confundido com o /policies endpoint na variável API de serviço de política, que é usado para gerenciar políticas de uso de dados.

Introdução

O endpoint da API usado neste guia faz parte da API de controle de acesso baseada em atributos. Antes de continuar, reveja o guia de introdução para obter links para a documentação relacionada, um guia para ler as chamadas de API de exemplo neste documento e informações importantes sobre os cabeçalhos necessários para fazer chamadas com êxito para qualquer API de Experience Platform.

Recuperar uma lista de políticas list

Faça uma solicitação GET para o /policies endpoint para listar todas as políticas existentes em sua organização.

Formato da API

GET /policies

Solicitação

A solicitação a seguir recupera uma lista de políticas existentes.

curl -X GET \
  https://platform.adobe.io/data/foundation/access-control/administration/policies \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}' \

Resposta

Uma resposta bem-sucedida retorna uma lista de políticas existentes.

{
  {
      "id": "7019068e-a3a0-48ce-b56b-008109470592",
      "imsOrgId": "{IMS_ORG}",
      "createdBy": "{CREATED_BY}",
      "createdAt": 1652892767559,
      "modifiedBy": "{MODIFIED_BY}",
      "modifiedAt": 1652895736367,
      "name": "schema-field",
      "description": "schema-field",
      "status": "inactive",
      "subjectCondition": null,
      "rules": [
          {
              "effect": "Deny",
              "resource": "/orgs/{IMS_ORG}/sandboxes/xql/schemas/*/schema-fields/*",
              "condition": "{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]}",
              "actions": [
                  "com.adobe.action.read",
                  "com.adobe.action.write",
                  "com.adobe.action.view"
              ]
          },
          {
              "effect": "Permit",
              "resource": "/orgs/{IMS_ORG}/sandboxes/*/schemas/*/schema-fields/*",
              "condition": "{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]}",
              "actions": [
                  "com.adobe.action.delete"
              ]
          },
          {
              "effect": "Deny",
              "resource": "/orgs/{IMS_ORG}/sandboxes/delete-sandbox-adfengine-test-8/segments/*",
              "condition": "{\"!\":[{\"adobe.match_any_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"custom/\",{\"var\":\"resource.labels\"}]}]}",
              "actions": [
                  "com.adobe.action.write"
              ]
          }
      ],
      "_etag": "\"0300593f-0000-0200-0000-62852ff80000\""
  },
  {
      "id": "13138ef6-c007-495d-837f-0a248867e219",
      "imsOrgId": "{IMS_ORG}",
      "createdBy": "{CREATED_BY}",
      "createdAt": 1652859368555,
      "modifiedBy": "{MODIFIED_BY}",
      "modifiedAt": 1652890780206,
      "name": "Documentation-Copy",
      "description": "xyz",
      "status": "active",
      "subjectCondition": null,
      "rules": [
          {
              "effect": "Permit",
              "resource": "orgs/{IMS_ORG}/sandboxes/ro-sand/schemas/*/schema-fields/*",
              "condition": "{\"!\":[{\"or\":[{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]},{\"!\":[{\"and\":[{\"adobe.match_any_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]},{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]}]}]}]}]}",
              "actions": [
                  "com.adobe.action.read"
              ]
          },
          {
              "effect": "Deny",
              "resource": "orgs/{IMS_ORG}/sandboxes/*/segments/*",
              "condition": "{\"!\":[{\"or\":[{\"adobe.match_any_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]},{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"custom/\",{\"var\":\"resource.labels\"}]}]}]}",
              "actions": [
                  "com.adobe.action.read"
              ]
          }
      ],
      "_etag": "\"0300d43c-0000-0200-0000-62851c9c0000\""
  },
}
Propriedade
Descrição
id
A ID que corresponde a uma política. Esse identificador é gerado automaticamente e pode ser usado para pesquisar, atualizar e excluir uma política.
imsOrgId
A organização onde a política consultada está acessível.
createdBy
A ID do usuário que criou a política.
createdAt
A hora em que a política foi criada. A variável createdAt é exibida no carimbo de data e hora unix epoch.
modifiedBy
A ID do usuário que atualizou a política pela última vez.
modifiedAt
A hora em que a política foi atualizada pela última vez. A variável modifiedAt é exibida no carimbo de data e hora unix epoch.
name
O nome da política.
description
(Opcional) Uma propriedade que pode ser adicionada para fornecer mais informações sobre uma política específica.
status
O status atual de uma política. Essa propriedade define se uma política está definida no momento active ou inactive.
subjectCondition
As condições aplicadas a um assunto. Um sujeito é um usuário com determinados atributos que solicitam acesso a um recurso para executar uma ação. Nesse caso, subjectCondition são condições semelhantes a consultas aplicadas aos atributos do assunto.
rules
O conjunto de regras que define uma política. As regras definem quais combinações de atributos são autorizadas para que o sujeito execute com êxito uma ação no recurso.
rules.effect
O efeito que resulta depois de considerar os valores para action, condition e resource. Os valores possíveis incluem: permit, denyou indeterminate.
rules.resource
O ativo ou objeto que um assunto pode ou não acessar. Os recursos podem ser arquivos, aplicativos, servidores ou até mesmo APIs.
rules.condition
As condições aplicadas a um recurso. Por exemplo, se um recurso for um esquema, um esquema poderá ter determinados rótulos aplicados que contribuem para determinar se uma ação contra esse esquema é permitida ou inadmissível.
rules.action
A ação que um assunto tem permissão para realizar em um recurso consultado. Os valores possíveis incluem: read, create, edit, e delete.

Pesquisar detalhes da política por ID lookup

Faça uma solicitação GET para o /policies ao fornecer uma ID de política no caminho da solicitação para recuperar informações sobre essa política individual.

Formato da API

GET /policies/{POLICY_ID}
Parâmetro
Descrição
A ID da política que você deseja recuperar.

Solicitação

A solicitação a seguir recupera informações sobre uma política individual.

curl -X GET \
  https://platform.adobe.io/data/foundation/access-control/administration/policies/13138ef6-c007-495d-837f-0a248867e219 \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}' \

Resposta

Uma solicitação bem-sucedida retorna informações sobre a ID de política consultada.

{
  "policies": [
    {
      "id": "7019068e-a3a0-48ce-b56b-008109470592",
      "imsOrgId": "5555467B5D8013E50A494220@AdobeOrg",
      "createdBy": "example@AdobeID",
      "createdAt": 1652892767559,
      "modifiedBy": "example@AdobeID",
      "modifiedAt": 1652895736367,
      "name": "schema-field",
      "description": "schema-field",
      "status": "inactive",
      "subjectCondition": null,
      "rules": [
        {
          "effect": "Deny",
          "resource": "/orgs/5555467B5D8013E50A494220@AdobeOrg/sandboxes/xql/schemas/*/schema-fields/*",
          "condition": "{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]}",
          "actions": [
            "com.adobe.action.read",
            "com.adobe.action.write",
            "com.adobe.action.view"
          ]
        },
        {
          "effect": "Permit",
          "resource": "/orgs/5555467B5D8013E50A494220@AdobeOrg/sandboxes/*/schemas/*/schema-fields/*",
          "condition": "{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]}",
          "actions": [
            "com.adobe.action.delete"
          ]
        },
        {
          "effect": "Deny",
          "resource": "/orgs/5555467B5D8013E50A494220@AdobeOrg/sandboxes/delete-sandbox-adfengine-test-8/segments/*",
          "condition": "{\"!\":[{\"adobe.match_any_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"custom/\",{\"var\":\"resource.labels\"}]}]}",
          "actions": [
            "com.adobe.action.write"
          ]
        }
      ],
      "etag": "\"0300593f-0000-0200-0000-62852ff80000\""
    }
  ]
}
Propriedade
Descrição
id
A ID que corresponde a uma política. Esse identificador é gerado automaticamente e pode ser usado para pesquisar, atualizar e excluir uma política.
imsOrgId
A organização onde a política consultada está acessível.
createdBy
A ID do usuário que criou a política.
createdAt
A hora em que a política foi criada. A variável createdAt é exibida no carimbo de data e hora unix epoch.
modifiedBy
A ID do usuário que atualizou a política pela última vez.
modifiedAt
A hora em que a política foi atualizada pela última vez. A variável modifiedAt é exibida no carimbo de data e hora unix epoch.
name
O nome da política.
description
(Opcional) Uma propriedade que pode ser adicionada para fornecer mais informações sobre uma política específica.
status
O status atual de uma política. Essa propriedade define se uma política está definida no momento active ou inactive.
subjectCondition
As condições aplicadas a um assunto. Um sujeito é um usuário com determinados atributos que solicitam acesso a um recurso para executar uma ação. Nesse caso, subjectCondition são condições semelhantes a consultas aplicadas aos atributos do assunto.
rules
O conjunto de regras que define uma política. As regras definem quais combinações de atributos são autorizadas para que o sujeito execute com êxito uma ação no recurso.
rules.effect
O efeito que resulta depois de considerar os valores para action, condition e resource. Os valores possíveis incluem: permit, denyou indeterminate.
rules.resource
O ativo ou objeto que um assunto pode ou não acessar. Os recursos podem ser arquivos, aplicativos, servidores ou até mesmo APIs.
rules.condition
As condições aplicadas a um recurso. Por exemplo, se um recurso for um esquema, um esquema poderá ter determinados rótulos aplicados que contribuem para determinar se uma ação contra esse esquema é permitida ou inadmissível.
rules.action
A ação que um assunto tem permissão para realizar em um recurso consultado. Os valores possíveis incluem: read, create, edit, e delete.

Criar uma política create

Para criar uma nova regra, faça uma solicitação POST ao /policies terminal.

Formato da API

POST /policies

Solicitação

A solicitação a seguir cria uma nova política chamada: acme-integration-policy.

curl -X POST \
  https://platform.adobe.io/data/foundation/access-control/administration/policies \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}'
  -d'{
      "name": "acme-integration-policy",
      "description": "Policy for ACME",
      "imsOrgId": "{IMS_ORG}",
      "rules": [
        {
          "effect": "Permit",
          "resource": "/orgs/{IMS_ORG}/sandboxes/*",
          "condition": "{\"or\":[{\"adobe.match_any_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]},{\"!\":[{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]}]}]}",
          "actions": [
            "com.adobe.action.read"
          ]
        }
      ]
    }'
Parâmetro
Descrição
name
O nome da política.
description
(Opcional) Uma propriedade que pode ser adicionada para fornecer mais informações sobre uma política específica.
imsOrgId
A organização que contém a política.
rules
O conjunto de regras que define uma política. As regras definem quais combinações de atributos são autorizadas para que o sujeito execute com êxito uma ação no recurso.
rules.effect
O efeito que resulta depois de considerar os valores para action, condition e resource. Os valores possíveis incluem: permit, denyou indeterminate.
rules.resource
O ativo ou objeto que um assunto pode ou não acessar. Os recursos podem ser arquivos, aplicativos, servidores ou até mesmo APIs.
rules.condition
As condições aplicadas a um recurso. Por exemplo, se um recurso for um esquema, um esquema poderá ter determinados rótulos aplicados que contribuem para determinar se uma ação contra esse esquema é permitida ou inadmissível.
rules.action
A ação que um assunto tem permissão para realizar em um recurso consultado. Os valores possíveis incluem: read, create, edit, e delete.

Resposta

Uma solicitação bem-sucedida retorna a política recém-criada, incluindo sua ID de política exclusiva e as regras associadas.

{
    "id": "c3863937-5d40-448d-a7be-416e538f955e",
    "imsOrgId": "{IMS_ORG}",
    "createdBy": "{CREATED_BY}",
    "createdAt": 1652988384458,
    "modifiedBy": "{MODIFIED_BY}",
    "modifiedAt": 1652988384458,
    "name": "acme-integration-policy",
    "description": "Policy for ACME",
    "status": "active",
    "subjectCondition": null,
    "rules": [
        {
            "effect": "Permit",
            "resource": "/orgs/{IMS_ORG}/sandboxes/*",
            "condition": "{\"or\":[{\"adobe.match_any_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]},{\"!\":[{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]}]}]}",
            "actions": [
                "com.adobe.action.read"
            ]
        }
    ],
    "_etag": null
}
Propriedade
Descrição
id
A ID que corresponde a uma política. Esse identificador é gerado automaticamente e pode ser usado para pesquisar, atualizar e excluir uma política.
name
O nome de uma política.
rules
O conjunto de regras que define uma política. As regras definem quais combinações de atributos são autorizadas para que o sujeito execute com êxito uma ação no recurso.
rules.effect
O efeito que resulta depois de considerar os valores para action, condition e resource. Os valores possíveis incluem: permit, denyou indeterminate.
rules.resource
O ativo ou objeto que um assunto pode ou não acessar. Os recursos podem ser arquivos, aplicativos, servidores ou até mesmo APIs.
rules.condition
As condições aplicadas a um recurso. Por exemplo, se um recurso for um esquema, um esquema poderá ter determinados rótulos aplicados que contribuem para determinar se uma ação contra esse esquema é permitida ou inadmissível.
rules.action
A ação que um assunto tem permissão para realizar em um recurso consultado. Os valores possíveis incluem: read, create, edit, e delete.

Atualizar uma política por ID de política put

Para atualizar as regras de uma política individual, faça uma solicitação PUT ao /policies ao fornecer a ID da política que você deseja atualizar no caminho da solicitação.

Formato da API

PUT /policies/{POLICY_ID}
Parâmetro
Descrição
A ID da política que você deseja atualizar.

Solicitação

curl -X PUT \
  https://platform.adobe.io/data/foundation/access-control/administration/policies/8cf487d7-3642-4243-a8ea-213d72f694b9 \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}'
  -d'{
      "id": "8cf487d7-3642-4243-a8ea-213d72f694b9",
      "imsOrgId": "{IMS_ORG}",
      "name": "test-2",
      "rules": [
      {
        "effect": "Deny",
        "resource": "/orgs/{IMS_ORG}/sandboxes/*",
        "condition": "{\"or\":[{\"adobe.match_any_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]},{\"!\":[{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]}]}]}",
        "actions": [
          "com.adobe.action.read"
        ]
      }
    ]
  }'

Resposta

Uma resposta bem-sucedida retorna a política atualizada.

{
    "id": "8cf487d7-3642-4243-a8ea-213d72f694b9",
    "imsOrgId": "{IMS_ORG}",
    "createdBy": "{CREATED_BY}",
    "createdAt": 1652988866647,
    "modifiedBy": "{MODIFIED_BY}",
    "modifiedAt": 1652989297287,
    "name": "test-2",
    "description": null,
    "status": "active",
    "subjectCondition": null,
    "rules": [
        {
            "effect": "Deny",
            "resource": "/orgs/{IMS_ORG}/sandboxes/*",
            "condition": "{\"or\":[{\"adobe.match_any_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]},{\"!\":[{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]}]}]}",
            "actions": [
                "com.adobe.action.read"
            ]
        }
    ],
    "_etag": null
}

Atualizar propriedades da política patch

Para atualizar as propriedades de uma política individual, faça uma solicitação PATCH ao /policies ao fornecer a ID da política que você deseja atualizar no caminho da solicitação.

Formato da API

PATCH /policies/{POLICY_ID}
Parâmetro
Descrição
A ID da política que você deseja atualizar.

Solicitação

A solicitação a seguir substitui o valor de /description na ID da política c3863937-5d40-448d-a7be-416e538f955e.

curl -X PATCH \
  https://platform.adobe.io/data/foundation/access-control/administration/policies/c3863937-5d40-448d-a7be-416e538f955e \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}'
  -d'{
    "operations": [
      {
        "op": "replace",
        "path": "/description",
        "value": "Pre-set policy to be applied for ACME"
      }
    ]
  }'
Operações
Descrição
op
A chamada de operação usada para definir a ação necessária para atualizar a função. As operações incluem: add, replace, e remove.
path
O caminho do parâmetro a ser atualizado.
value
O novo valor com o qual você deseja atualizar seu parâmetro.

Resposta

Uma resposta bem-sucedida retorna a ID da política consultada com a descrição atualizada.

{
    "id": "c3863937-5d40-448d-a7be-416e538f955e",
    "imsOrgId": "{IMS_ORG}",
    "createdBy": "acp_accessControlService",
    "createdAt": 1652988384458,
    "modifiedBy": "acp_accessControlService",
    "modifiedAt": 1652988384458,
    "name": "acme-integration-policy",
    "description": "Pre-set policy to be applied for ACME",
    "status": "active",
    "subjectCondition": null,
    "rules": [
        {
            "effect": "Permit",
            "resource": "/orgs/{IMS_ORG}/sandboxes/*",
            "condition": "{\"or\":[{\"adobe.match_any_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]},{\"!\":[{\"adobe.match_all_labels_by_prefix\":[{\"var\":\"subject.roles.labels\"},\"core/\",{\"var\":\"resource.labels\"}]}]}]}",
            "actions": [
                "com.adobe.action.read"
            ]
        }
    ],
    "_etag": null
}

Excluir uma política delete

Para excluir uma política, faça uma solicitação DELETE ao /policies ao fornecer a ID da política que deseja excluir.

Formato da API

DELETE /policies/{POLICY_ID}
Parâmetro
Descrição
A ID da política que você deseja excluir.

Solicitação

A solicitação a seguir exclui a política com a ID de c3863937-5d40-448d-a7be-416e538f955e.

curl -X DELETE \
  https://platform.adobe.io/data/foundation/access-control/administration/policies/c3863937-5d40-448d-a7be-416e538f955e \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}' \

Resposta

Uma resposta bem-sucedida retorna o status HTTP 204 (Sem conteúdo) e um corpo em branco.

Você pode confirmar a exclusão tentando uma solicitação de pesquisa (GET) para a política. Você receberá um status HTTP 404 (Não encontrado) porque a política foi removida da administração.

recommendation-more-help
631fcab2-5cb1-46ef-ba66-fe098ac723e0