Formato de entidades en Amazon Verified Permissions - Amazon Verified Permissions

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Formato de entidades en Amazon Verified Permissions

Amazon Verified Permissions utiliza el lenguaje de las políticas de Cedar para crear políticas. La sintaxis de las políticas y los tipos de datos admitidos coinciden con la sintaxis y los tipos de datos descritos en los temas sobre la construcción básica de políticas en Cedar y los tipos de datos compatibles con Cedar en la Guía de referencia sobre el lenguaje de las políticas de Cedar. Sin embargo, existen diferencias entre Verified Permissions y Cedar en cuanto al formato de las entidades cuando se realiza una solicitud de autorización.

El formato JSON de las entidades en Verified Permissions difiere del de Cedar en los siguientes aspectos:

  • En Verified Permissions, un objeto JSON debe tener todos sus pares clave-valor incluidos en un objeto JSON con el nombre de Record.

  • Una lista JSON de Verified Permissions debe estar encapsulada en un par clave-valor de JSON en el que el nombre de la clave sea Set y el valor sea la lista JSON original de Cedar.

  • En el caso de los nombres de tipo String, Long y Boolean, cada par clave-valor de Cedar se sustituye por un objeto JSON en Verified Permissions. El nombre del objeto es el nombre de la clave original. Dentro del objeto JSON, hay un par clave-valor en el que el nombre de la clave es el nombre de tipo del valor escalar (String, Long o Boolean) y el valor es el de la entidad de Cedar.

  • El formato de la sintaxis de las entidades de Cedar y Verified Permissions difiere en los siguientes aspectos:

    Formato de Cedar Formato de Verified Permissions
    uid Identifier
    type EntityType
    id EntityId
    attrs Attributes
    parents Parents

En el siguiente ejemplo se muestra cómo se da formato a las entidades de una lista con Cedar.

[ { "number": 1 }, { "sentence": "Here is an example sentence" }, { "Question": false } ]

El siguiente ejemplo muestra cómo se da formato a las mismas entidades del ejemplo anterior de la lista de Cedar en Verified Permissions.

{ "Set": [ { "Record": { "number": { "Long": 1 } } }, { "Record": { "sentence": { "String": "Here is an example sentence" } } }, { "Record": { "question": { "Boolean": false } } } ] }

El siguiente ejemplo muestra cómo dar formato a las entidades de Cedar para evaluar una política en una solicitud de autorización.

[ { "uid": { "type": "PhotoApp::User", "id": "alice" }, "attrs": { "age": 25, "name": "alice", "userId": "123456789012" }, "parents": [ { "type": "PhotoApp::UserGroup", "id": "alice_friends" }, { "type": "PhotoApp::UserGroup", "id": "AVTeam" } ] }, { "uid": { "type": "PhotoApp::Photo", "id": "vacationPhoto.jpg" }, "attrs": { "private": false, "account": { "__entity": { "type": "PhotoApp::Account", "id": "ahmad" } } }, "parents": [] }, { "uid": { "type": "PhotoApp::UserGroup", "id": "alice_friends" }, "attrs": {}, "parents": [] }, { "uid": { "type": "PhotoApp::UserGroup", "id": "AVTeam" }, "attrs": {}, "parents": [] } ]

El siguiente ejemplo muestra cómo dar formato a las mismas entidades del ejemplo anterior de Cedar en Verified Permissions.

[ { "Identifier": { "EntityType": "PhotoApp::User", "EntityId": "alice" }, "Attributes": { "age": { "Long": 25 }, "name": { "String": "alice" }, "userId": { "String": "123456789012" } }, "Parents": [ { "EntityType": "PhotoApp::UserGroup", "EntityId": "alice_friends" }, { "EntityType": "PhotoApp::UserGroup", "EntityId": "AVTeam" } ] }, { "Identifier": { "EntityType": "PhotoApp::Photo", "EntityId": "vacationPhoto.jpg" }, "Attributes": { "private": { "Boolean": false }, "account": { "EntityIdentifier": { "EntityType": "PhotoApp::Account", "EntityId": "ahmad" } } }, "Parents": [] }, { "Identifier": { "EntityType": "PhotoApp::UserGroup", "EntityId": "alice_friends" }, "Parents": [] }, { "Identifier": { "EntityType": "PhotoApp::UserGroup", "EntityId": "AVTeam" }, "Parents": [] } ]