

# Descripción de la integración
<a name="temporary-delegation-understanding-integration"></a>

Tras completar el proceso de incorporación, puede crear su integración con la delegación temporal de IAM. Una integración completa suele implicar tres categorías principales de trabajo:

## 1. Diseño del flujo de trabajo y la experiencia de usuario
<a name="temporary-delegation-user-experience"></a>

Cree una experiencia de frontend en la aplicación del socio que guíe a los clientes a través del flujo de trabajo de la delegación temporal. La aplicación del socio debe:
+ presentar un flujo claro de incorporación o configuración en el que los clientes puedan conceder acceso temporal. Etiquete esta acción de forma clara, como “Implementar con delegación temporal de IAM”,
+ redirigir a los clientes a la Consola de administración de AWS para revisar y aprobar la solicitud de delegación mediante el enlace de la consola devuelto por la API CreateDelegationRequest,
+ proporcionar los mensajes adecuados sobre los permisos que se solicitan y por qué. Los clientes pueden ver este mensaje en la página de detalles de la solicitud de delegación.
+ gestionar la devolución del cliente a su aplicación una vez que haya completado la aprobación en AWS.

### Prácticas recomendadas para las solicitudes de delegación temporal
<a name="temporary-delegation-request-best-practices"></a>

Cuando implemente la delegación temporal en la solicitud de su socio, siga las prácticas recomendadas a continuación para ayudar a los clientes a verificar la autenticidad y la precisión de las solicitudes.

**1. Incluya los mensajes de solicitud de contexto que el usuario pueda reconocer**

Debe incluir en el mensaje de solicitud de delegación el contexto específico del usuario. Esta información permite a los usuarios identificar las solicitudes del flujo de trabajo de sus socios actuales y distinguir entre las solicitudes legítimas. Información recomendada para el mensaje de solicitud:
+ Identificador de la cuenta o nombre de usuario del cliente en su servicio
+ Nombre del espacio de trabajo, ID de suscripción o identificador de la organización
+ Recurso específico al que se está accediendo (nombre del clúster, nombre del proyecto y entorno)
+ Identificador único de transacción o solicitud generado para este intento de delegación

Ejemplo de mensaje de solicitud:

```
Request from Partner A workspace "production-analytics"
Account: user@example.com
Workspace ID: 1234ABCD
Cluster: ml-training-cluster-01
Request ID: 1111-2222-3333-4444
```

**2. Opcional: Incluya el ID de cuenta de AWS al iniciar la delegación**

Si el ID de cuenta del cliente está disponible, inclúyalo en la solicitud de delegación. Este paso de verificación genera un vínculo adicional entre la intención del cliente y el token de delegación.

**3. Elabore los mensajes de solicitud para la verificación de seguridad**

Redacte los mensajes de solicitud para que los clientes puedan confirmar con confianza su legitimidad antes de conceder el acceso. Requisitos de experiencia de usuario:
+ Muestre claramente el mensaje de solicitud en la interfaz de la aplicación antes de redirigirlo a AWS
+ Utilice un lenguaje descriptivo y claro que se conecte directamente con la acción actual del cliente
+ Evite los mensajes genéricos que podrían aplicarse a cualquier solicitud de delegación
+ Incluya suficientes detalles para que los clientes comprueben que la solicitud coincide con el flujo de trabajo previsto
+ Muestre el ID de cuenta de AWS que recibirá el acceso delegado
+ Explique con claridad los permisos que solicitará su aplicación

Incluya un aviso de confirmación en la solicitud antes de redirigir a los clientes a la pantalla de consentimiento de AWS:

```
⚠️ Redirecting to IAM Temporary Delegation
You are about to grant [Your Service Name] temporary access to your AWS account.

Before clicking "Allow" on the AWS consent screen:
• Verify the request details match your current action
• Confirm the AWS account ID matches your intended account
• Ensure you initiated this request from [Your Service Name]
```

**4. Recomendaciones para vincular la sesión**

Mientras AWS IAM se encarga del flujo de autorización principal, implemente las siguientes prácticas en la aplicación para reforzar la integridad de la sesión:
+ Genere identificadores de solicitud únicos y de un solo uso para cada intento de delegación
+ Vincule las solicitudes de delegación a la sesión de solicitud activa del cliente
+ Implemente la caducidad adecuada de las solicitudes según el proceso de delegación
+ Valide que las llamadas de la delegación coincidan con el contexto de la solicitud de origen
+ Registre todas las solicitudes de delegación iniciadas y finalizadas para supervisar la seguridad

Seguir estas prácticas recomendadas permite que la delegación temporal sea más segura.

## 2. Integración de la API
<a name="temporary-delegation-api-integration"></a>

Utilice las API de delegación temporal de IAM para enviar y administrar las solicitudes de delegación. Cuando sus cuentas de AWS estén registradas, podrá acceder a las siguientes API:
+ *IAM CreateDelegationRequest*: crea una solicitud de delegación para la cuenta de AWS de un cliente. Esta API devuelve un enlace de la consola al que redirige a los clientes para que revisen y aprueben la solicitud.
+ *AWS STS GetDelegatedAccessToken*: recupera las credenciales temporales de AWS después de que un cliente apruebe su solicitud de delegación. Utilice estas credenciales para llevar a cabo acciones en la cuenta del cliente.

Su integración debe gestionar todo el ciclo de vida de las solicitudes de delegación, incluida la creación de las solicitudes, la supervisión de su estado y la recuperación de las credenciales temporales una vez aprobadas.

## 3. Configuración y orquestación de los recursos
<a name="temporary-delegation-resource-configuration"></a>

Cuando obtenga las credenciales temporales, orqueste los flujos de trabajo necesarios para configurar los recursos en la cuenta de AWS del cliente. Esto puede incluir lo siguiente:
+ Llamar directamente a las API de servicios de AWS para crear y configurar recursos
+ Implementar la infraestructura mediante plantillas de AWS CloudFormation
+ Crear roles de IAM para el acceso continuo (requiere usar límites de permisos)

Su lógica de orquestación debe ser idempotente y gestionar los errores sin problemas, ya que es posible que los clientes tengan que volver a intentarlo o modificar sus aprobaciones de delegación.