Ponto de extremidade de políticas de controle de acesso

As políticas de controle de acesso são instruções que unem atributos para estabelecer ações permitidas e não permitidas. Essas políticas podem ser locais ou globais e podem substituir outras políticas. O /policies O endpoint na API de controle de acesso baseada em atributos permite gerenciar políticas de forma programática, incluindo informações sobre as regras que as regem, bem como suas respectivas condições de assunto.

IMPORTANTE

Esse endpoint não deve ser confundido com a variável /policies endpoint no API de governança de dados, que é usada 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 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 do Experience Platform.

Recuperar uma lista de políticas

Faça uma solicitação do GET para /policies endpoint para listar todas as políticas existentes na 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 na qual 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. O createdAt é exibida no carimbo de data e hora da época unix.
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. O modifiedAt é exibida no carimbo de data e hora da época unix.
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. Esta propriedade define se uma política está atualmente active ou inactive.
subjectCondition As condições aplicadas a um assunto. Um assunto é um usuário com determinados atributos que solicita acesso a um recurso para executar uma ação. Nesse caso, subjectCondition são condições semelhantes a query aplicadas aos atributos de 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 assunto execute com êxito uma ação no recurso.
rules.effect O efeito que resulta após 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 schema, um schema pode ter determinados rótulos aplicados a ele que contribuem para que uma ação contra esse schema seja permissível ou não.
rules.action A ação que um assunto tem permissão para fazer contra um recurso consultado. Os valores possíveis incluem: read, create, edite delete.

Pesquisar detalhes da política por ID

Faça uma solicitação do GET para /policies endpoint 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.

{
    "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 na qual 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. O createdAt é exibida no carimbo de data e hora da época unix.
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. O modifiedAt é exibida no carimbo de data e hora da época unix.
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. Esta propriedade define se uma política está atualmente active ou inactive.
subjectCondition As condições aplicadas a um assunto. Um assunto é um usuário com determinados atributos que solicita acesso a um recurso para executar uma ação. Nesse caso, subjectCondition são condições semelhantes a query aplicadas aos atributos de 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 assunto execute com êxito uma ação no recurso.
rules.effect O efeito que resulta após 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 schema, um schema pode ter determinados rótulos aplicados a ele que contribuem para que uma ação contra esse schema seja permissível ou não.
rules.action A ação que um assunto tem permissão para fazer contra um recurso consultado. Os valores possíveis incluem: read, create, edite delete.

Criar uma política

Para criar uma nova política, faça uma solicitação de POST para a /policies endpoint .

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": [
            "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 assunto execute com êxito uma ação no recurso.
rules.effect O efeito que resulta após 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 schema, um schema pode ter determinados rótulos aplicados a ele que contribuem para que uma ação contra esse schema seja permissível ou não.
rules.action A ação que um assunto tem permissão para fazer contra um recurso consultado. Os valores possíveis incluem: read, create, edite delete.

Resposta

Uma solicitação bem-sucedida retorna a política recém-criada, incluindo sua ID de política exclusiva e 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": [
                "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 assunto execute com êxito uma ação no recurso.
rules.effect O efeito que resulta após 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 schema, um schema pode ter determinados rótulos aplicados a ele que contribuem para que uma ação contra esse schema seja permissível ou não.
rules.action A ação que um assunto tem permissão para fazer contra um recurso consultado. Os valores possíveis incluem: read, create, edite delete.

Atualizar uma política por ID de política

Para atualizar as regras de uma política individual, faça uma solicitação de PUT para a /policies endpoint 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": [
          "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": [
                "read"
            ]
        }
    ],
    "_etag": null
}

Atualizar propriedades da política

Para atualizar as propriedades de uma política individual, faça uma solicitação de PATCH para a variável /policies endpoint 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, replacee 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 uma 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": [
                "read"
            ]
        }
    ],
    "_etag": null
}

Excluir uma política

Para excluir uma política, faça uma solicitação de DELETE para a /policies endpoint 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 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 (Not Found) porque a política foi removida da administração.

Nesta página