

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.

# Implementación de la autorización en Amazon Verified Permissions
Autoriza las solicitudes

Tras crear el almacén de políticas, las políticas, las plantillas, el esquema y el modelo de autorización, estará listo para empezar a autorizar las solicitudes mediante los permisos verificados de Amazon. Para implementar la autorización de permisos verificados, debe combinar la configuración de las políticas de autorización AWS con la integración en una aplicación. Para integrar los permisos verificados en su aplicación, añada un AWS SDK e implemente los métodos que invocan la API de permisos verificados y generan decisiones de autorización en función de su almacén de políticas.

La autorización con permisos verificados es útil para los *permisos de experiencia* de usuario y *los permisos de API* en sus aplicaciones.

**Permisos de UX**  
Controle el acceso de los usuarios a la UX de su aplicación. Puede permitir que un usuario vea solo los formularios, botones, gráficos y otros recursos exactos a los que necesita acceder. Por ejemplo, cuando un usuario inicia sesión, es posible que desee determinar si el botón «Transferir fondos» está visible en su cuenta. También puedes controlar las acciones que puede realizar un usuario. Por ejemplo, en la misma aplicación bancaria, es posible que desee determinar si su usuario puede cambiar la categoría de una transacción.

**Permisos de la API**  
Controle el acceso de los usuarios a los datos. Las aplicaciones suelen formar parte de un sistema distribuido y reciben información de fuentes externas APIs. En el ejemplo de la aplicación bancaria en la que los permisos verificados permiten mostrar el botón «Transferir fondos», se debe tomar una decisión de autorización más compleja cuando el usuario inicia una transferencia. Los permisos verificados pueden autorizar la solicitud de API en la que se indican las cuentas de destino que son destinatarios de transferencias aptas y, a continuación, la solicitud para transferir la transferencia a la otra cuenta.

Los ejemplos que ilustran este contenido provienen de un [ejemplo de almacén de políticas](policy-stores-create.md#policy-stores-create.title). Para continuar, cree el almacén de políticas de **DigitalPetStore**muestra en su entorno de pruebas.

*Para ver un ejemplo de aplicación integral que implementa permisos de experiencia de usuario mediante la autorización por lotes, consulte [Utilizar permisos verificados de Amazon para obtener una autorización detallada a gran escala en](https://aws.amazon.com/blogs/security/use-amazon-verified-permissions-for-fine-grained-authorization-at-scale/) el AWS blog de seguridad.*

**Topics**
+ [

## Operaciones de API disponibles para la autorización
](#authorization-operations)
+ [

# Probar su modelo de autorización
](authorization-testing.md)
+ [

# Integración de sus modelos de autorización con las aplicaciones
](authorization-sdk.md)

## Operaciones de API disponibles para la autorización
Operaciones de la API

La API de permisos verificados tiene las siguientes operaciones de autorización.

**[IsAuthorized](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html)**  
La operación de la `IsAuthorized` API es el punto de entrada a las solicitudes de autorización con permisos verificados. Debe enviar los elementos principales, de acción, de recursos, de contexto y de entidad. Verified Permissions evalúa su solicitud comparándola con todas las políticas del almacén de políticas solicitado que se aplican a las entidades de la solicitud.

**[IsAuthorizedWithToken](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorizedWithToken.html)**  
La `IsAuthorizedWithToken` operación genera una solicitud de autorización a partir de los datos del usuario en los tokens web JSON (JWTs). Verified Permissions funciona directamente con los proveedores de OIDC, por ejemplo Amazon Cognito , como fuente de identidad en tu almacén de políticas. Verified Permissions rellena todos los atributos del principal de tu solicitud a partir de las afirmaciones que figuran en la identificación de los usuarios o en los tokens de acceso. Puedes autorizar acciones y recursos a partir de los atributos de usuario o la pertenencia a un grupo en una fuente de identidad.  
No puedes incluir información sobre los tipos principales de grupos o usuarios en una `IsAuthorizedWithToken` solicitud. Debe rellenar todos los datos principales en el JWT que proporcione.

**[BatchIsAuthorized](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_BatchIsAuthorized.html)**  
La `BatchIsAuthorized` operación procesa varias decisiones de autorización para un único principal o recurso en una sola solicitud de API. Esta operación agrupa las solicitudes en una sola operación por lotes que minimiza el [uso de la cuota](quotas.md#quotas-tps.title) y devuelve las decisiones de autorización para cada una de las 30 acciones anidadas complejas. Con la autorización por lotes para un único recurso, puede filtrar las acciones que un usuario puede realizar en un recurso. Con la autorización por lotes para un único principal, puede filtrar los recursos sobre los que un usuario puede realizar acciones.

**[BatchIsAuthorizedWithToken](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_BatchIsAuthorizedWithToken.html)**  
La `BatchIsAuthorizedWithToken` operación procesa varias decisiones de autorización para un único principal en una solicitud de API. El principal lo proporciona la fuente de identidad del almacén de políticas en un identificador o token de acceso. Esta operación agrupa las solicitudes en una sola operación por lotes que minimiza el [uso de la cuota](quotas.md#quotas-tps.title) y devuelve las decisiones de autorización para cada una de las 30 solicitudes de acciones y recursos como máximo. En sus políticas, puede autorizar su acceso desde sus atributos o su pertenencia a un grupo en un directorio de usuarios.  
Del mismo `IsAuthorizedWithToken` modo, no puedes incluir información sobre los principales tipos de grupos o usuarios en una `BatchIsAuthorizedWithToken` solicitud. Debe rellenar todos los datos principales en el JWT que proporcione.

# Probar su modelo de autorización
Pruebe el modelo

Para comprender el efecto de la decisión de autorización de permisos verificados de Amazon al implementar su aplicación, puede evaluar sus políticas a medida que las desarrolla con la API REST HTTPS [Uso del banco de pruebas de permisos verificados de Amazon](test-bench.md) y con las solicitudes de la API REST de HTTPS a Verified Permissions. El banco de pruebas es una herramienta que sirve Consola de administración de AWS para evaluar las solicitudes de autorización y las respuestas en su almacén de políticas.

La API REST de permisos verificados es el siguiente paso en su desarrollo, a medida que pasa de la comprensión conceptual al diseño de la aplicación. La API de permisos verificados acepta solicitudes de autorización con [IsAuthorized](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html)y [BatchIsAuthorized](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_BatchIsAuthorized.html)como [solicitudes de AWS API firmadas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) para [puntos finales de servicios](https://docs.aws.amazon.com/general/latest/gr/verifiedpermissions.html) regionales. [IsAuthorizedWithToken](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorizedWithToken.html) Para probar tu modelo de autorización, puedes generar solicitudes con cualquier cliente de API y comprobar que tus políticas devuelven las decisiones de autorización según lo previsto.

Por ejemplo, puede realizar una prueba `IsAuthorized` en un almacén de políticas de muestra con el siguiente procedimiento.

------
#### [ Test bench ]

1. Abra la consola de permisos verificados en la consola de [permisos verificados](https://console.aws.amazon.com/verifiedpermissions/). Cree un almacén de políticas a partir del **almacén de políticas de muestra** con el nombre **DigitalPetStore**.

1. Selecciona **Test bench** en tu nuevo almacén de políticas.

1. Rellena tu formulario de solicitud de banco de pruebas [IsAuthorized](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html#API_IsAuthorized_Examples)en la referencia de la API de permisos verificados. Los siguientes detalles reproducen las condiciones del **ejemplo 4** que hace referencia a la **DigitalPetStore**muestra.

   1. Pon a Alice como la directora. Para que el **director tome medidas**, elige `DigitalPetStore::User` e ingresa`Alice`.

   1. Establece el rol de Alice como cliente. Elija **Agregar un padre**`DigitalPetStore::Role`, elija e introduzca Cliente.

   1. Establezca el recurso como pedido «1234». Elija `DigitalPetStore::Order` e introduzca **el recurso sobre el que actúa el principal**`1234`.

   1. El `DigitalPetStore::Order` recurso requiere un `owner` atributo. Establece a Alice como la propietaria del pedido. Elige `DigitalPetStore::User` e ingresa `Alice`

   1. Alice solicitó ver el pedido. Para **la acción que está tomando el director**, elija`DigitalPetStore::Action::"GetOrder"`.

1. Elija **Ejecutar solicitud de autorización**. En un almacén de políticas sin modificar, esta solicitud da lugar a una `ALLOW` decisión. Tenga en cuenta la **política de satisfacción** que dio lugar a la decisión.

1. Elija **Políticas** en la barra de navegación izquierda. Revise la política estática con la descripción **Customer Role: Get Order**.

1. Observe que los permisos verificados permitieron la solicitud porque el principal tenía un rol de cliente y era el propietario del recurso.

------
#### [ REST API ]

1. Abra la consola de permisos verificados en la consola de [permisos verificados](https://console.aws.amazon.com/verifiedpermissions/). Cree un almacén de políticas a partir del **almacén de políticas de muestra** con el nombre **DigitalPetStore**.

1. Anote el **ID del almacén de políticas** del nuevo almacén de políticas.

1. [IsAuthorized](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html#API_IsAuthorized_Examples)En la referencia de la API de permisos verificados, copia el cuerpo de la solicitud del **ejemplo 4** que hace referencia al **DigitalPetStore**ejemplo.

1. Abre tu cliente de API y crea una solicitud al punto final del servicio regional de tu almacén de políticas. [Rellene los encabezados como se muestra en el ejemplo.](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html#API_IsAuthorized_Examples)

1. Pegue el ejemplo del cuerpo de la solicitud y cambie el valor por el ID del almacén de `policyStoreId` políticas que indicó anteriormente.

1. Envía la solicitud y revisa los resultados. En un almacén **DigitalPetStore**de políticas predeterminado, esta solicitud devuelve una `ALLOW` decisión.

------

Puede realizar cambios en las políticas, el esquema y las solicitudes de su entorno de prueba para cambiar los resultados y tomar decisiones más complejas.

1. Cambia la solicitud de forma que modifique la decisión de Verified Permissions. Por ejemplo, cambia el rol de Alice a `Employee` o cambia el `owner` atributo del pedido 1234 a`Bob`.

1. Cambie las políticas de manera que afecten a las decisiones de autorización. Por ejemplo, modifique la política con la descripción **Customer Role: Get Order** para eliminar la condición de que `User` debe ser el propietario del pedido `Resource` y modifique la solicitud para que `Bob` desee ver el pedido.

1. Cambie el esquema para permitir que las políticas tomen una decisión más compleja. Actualice las entidades solicitadas para que Alice pueda cumplir con los nuevos requisitos. Por ejemplo, edite el esquema `User` para poder ser miembro de `ActiveUsers` o`InactiveUsers`. Actualice la política para que solo los usuarios activos puedan ver sus propios pedidos. Actualice las entidades de la solicitud para que Alice sea una usuaria activa o inactiva.

# Integración de sus modelos de autorización con las aplicaciones
Integración con aplicaciones

Para implementar los permisos verificados de Amazon en tu aplicación, debes definir las políticas y el esquema que deseas que aplique tu aplicación. Una vez establecido y probado el modelo de autorización, el siguiente paso es empezar a generar solicitudes de API desde el punto de aplicación. Para ello, debe configurar la lógica de la aplicación para recopilar los datos de los usuarios y rellenarlos para las solicitudes de autorización.

**Cómo autoriza una aplicación las solicitudes con permisos verificados**

1. Recopila información sobre el usuario actual. Por lo general, los detalles de un usuario se proporcionan en los detalles de una sesión autenticada, como un JWT o una cookie de sesión web. Estos datos de usuario pueden provenir de una [fuente de Amazon Cognito identidad](identity-sources.md#identity-sources.title) vinculada a su almacén de políticas o de otro proveedor de [OpenID Connect (OIDC](cognito-validation.md#identity-sources-other-idp.title)).

1. Recopile información sobre el recurso al que un usuario quiere acceder. Por lo general, la aplicación recibirá información sobre el recurso cuando un usuario haga una selección que requiera que la aplicación cargue un nuevo activo.

1. Determina la acción que el usuario quiere realizar.

1. Genera una solicitud de autorización para Verified Permissions con el principal, la acción, el recurso y las entidades que el usuario intentó realizar la operación. Verified Permissions evalúa la solicitud comparándola con las políticas de tu almacén de políticas y devuelve una decisión de autorización.

1. La aplicación lee la respuesta de autorización o denegación de Verified Permissions y aplica la decisión sobre la solicitud del usuario.

Las operaciones de la API de permisos verificados están integradas AWS SDKs. Para incluir los permisos verificados en una aplicación, integra el AWS SDK del idioma que elijas en el paquete de la aplicación.

Para obtener más información y descargarlo AWS SDKs, consulta [Herramientas para Amazon Web Services](https://aws.amazon.com/tools/).

Los siguientes son enlaces a la documentación de varios recursos sobre permisos verificados AWS SDKs.
+ [AWS SDK para .NET](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/VerifiedPermissions/NVerifiedPermissions.html)
+ [AWS SDK para C\$1\$1](https://sdk.amazonaws.com/cpp/api/LATEST/aws-cpp-sdk-verifiedpermissions/html/class_aws_1_1_verified_permissions_1_1_verified_permissions_client.html)
+ [AWS SDK para Go](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/verifiedpermissions)
+ [AWS SDK para Java](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/verifiedpermissions/package-summary.html)
+ [AWS SDK para JavaScript](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/verifiedpermissions/)
+ [AWS SDK para PHP](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-verifiedpermissions-2021-12-01.html)
+ [AWS SDK para Python (Boto)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/verifiedpermissions.html)
+ [AWS SDK para Ruby](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/VerifiedPermissions/Client.html)
+ [AWS SDK para Rust](https://docs.rs/aws-sdk-verifiedpermissions/latest/aws_sdk_verifiedpermissions/)

El siguiente AWS SDK para JavaScript ejemplo `IsAuthorized` se origina en [Simplifique la autorización detallada con Amazon Verified Permissions y Amazon Cognito](https://aws.amazon.com/blogs/security/simplify-fine-grained-authorization-with-amazon-verified-permissions-and-amazon-cognito/).

```
const authResult = await avp.isAuthorized({
    principal: 'User::"alice"',
    action: 'Action::"view"',
    resource: 'Photo::"VacationPhoto94.jpg"',
    // whenever our policy references attributes of the entity,
    // isAuthorized needs an entity argument that provides    
    // those attributes
    entities: {
       entityList: [
         {
            "identifier": {
                "entityType": "User",
                "entityId": "alice"
            },
            "attributes": {
                "location": {
                    "String": "USA"
                }
            }
         }
       ]
    }
});
```

**Más recursos para desarrolladores**
+ [Taller sobre permisos verificados de Amazon](https://catalog.workshops.aws/verified-permissions-in-action)
+ [Permisos verificados de Amazon - Recursos](https://aws.amazon.com/verified-permissions/resources/)
+ [Implemente un proveedor de políticas de autorización personalizado para aplicaciones de ASP.NET Core mediante Amazon Verified Permissions](https://aws.amazon.com/blogs/dotnet/implement-a-custom-authorization-policy-provider-for-asp-net-core-apps-using-amazon-verified-permissions/)
+ [Cree un servicio de asignación de derechos para aplicaciones empresariales con Amazon Verified Permissions](https://aws.amazon.com/blogs/security/build-an-entitlement-service-for-business-applications-using-amazon-verified-permissions/)
+ [Simplifique la autorización detallada con Amazon Verified Permissions y Amazon Cognito](https://aws.amazon.com/blogs/security/simplify-fine-grained-authorization-with-amazon-verified-permissions-and-amazon-cognito/)