

# Noções básicas sobre a integração
<a name="temporary-delegation-understanding-integration"></a>

Depois de concluir o processo de integração, você pode criar sua integração com a delegação temporária do IAM. Uma integração completa normalmente envolve três categorias principais de trabalho:

## 1. Experiência do usuário e design do fluxo de trabalho
<a name="temporary-delegation-user-experience"></a>

Crie uma experiência de frontend na aplicação de parceiros que oriente os clientes no fluxo de trabalho de delegação temporária. A aplicação do parceiro deve:
+ Apresentar um fluxo claro de integração ou configuração em que os clientes possam conceder acesso temporário. Identifique essa ação de forma clara, como “Implantar com delegação temporária do IAM”.
+ Redirecionar os clientes para o Console de Gerenciamento da AWS para revisar e aprovar a solicitação de delegação usando o link do console retornado pela API CreateDelegationRequest.
+ Fornecer mensagens apropriadas sobre quais permissões estão sendo solicitadas e o porquê. Os clientes podem ver essa mensagem na página de detalhes da solicitação de delegação.
+ Gerenciar o retorno do cliente à sua aplicação após concluir a aprovação na AWS.

### Melhores práticas para solicitações de delegação temporária
<a name="temporary-delegation-request-best-practices"></a>

Ao implementar a delegação temporária para sua aplicação de parceiro, siga as melhores práticas definidas abaixo para ajudar os clientes a verificar a autenticidade e a precisão da solicitação.

**1. Inclua contexto identificável pelo usuário nas mensagens de solicitação**

Você deve incluir o contexto específico do usuário na mensagem de solicitação de delegação. Essas informações ajudam os usuários a identificar as solicitações do fluxo de trabalho de parceiros existentes e a distinguir solicitações legítimas. Informações sugeridas na mensagem de solicitação:
+ Nome de usuário ou identificador da conta do cliente em seu serviço
+ Nome do espaço de trabalho, ID da assinatura ou identificador da organização
+ Recurso específico sendo acessado (nome do cluster, nome do projeto, ambiente)
+ Identificador exclusivo da transação ou solicitação gerado para essa tentativa de delegação

Exemplo de mensagem de solicitação:

```
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: inclua o ID da conta da AWS ao iniciar a delegação**

Se o ID da conta do cliente estiver disponível, inclua-o na solicitação de delegação. Essa etapa de verificação cria uma ligação adicional entre o token de delegação e a intenção do cliente.

**3. Projete mensagens de solicitação para verificação de segurança**

Estruture suas mensagens de solicitação para permitir que os clientes verifiquem com confiança a legitimidade antes de conceder acesso. Requisitos de experiência do usuário:
+ Exiba a mensagem de solicitação com destaque na interface da aplicação antes de redirecionar para a AWS
+ Use uma linguagem clara e descritiva que se conecte diretamente à ação atual do cliente
+ Evite mensagens genéricas que possam enviadas em qualquer solicitação de delegação
+ Inclua detalhes suficientes para que os clientes verifiquem se a solicitação corresponde ao fluxo de trabalho pretendido
+ Exiba o ID da conta da AWS que receberá acesso delegado
+ Forneça uma explicação clara de quais permissões sua aplicação solicitará

Inclua um aviso de confirmação em sua aplicação antes de redirecionar os clientes para a tela de consentimento da 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. Recomendações de vinculação de sessão**

Enquanto o AWS IAM gerencia o fluxo de autorização principal, implemente essas práticas em sua aplicação para fortalecer a integridade da sessão:
+ Gere identificadores de solicitação exclusivos e de uso único para cada tentativa de delegação
+ Associe solicitações de delegação à sessão da aplicação ativa do cliente
+ Implemente a expiração apropriada para a solicitação, dependendo do seu processo de delegação
+ Valide se os retornos de chamada da delegação correspondem ao contexto da solicitação de origem
+ Registre todas as iniciações e conclusões da solicitação de delegação para monitoramento de segurança

Ao seguir essas melhores práticas, você ajuda a criar uma experiência de delegação temporária mais segura.

## 2. Integração de APIs
<a name="temporary-delegation-api-integration"></a>

Use as APIs de delegação temporária do IAM para enviar e gerenciar solicitações de delegação. Depois que suas contas da AWS estiverem registradas, você poderá acessar as seguintes APIs:
+ *CreateDelegationRequest do IAM*: cria uma solicitação de delegação para a conta da AWS de um cliente. Essa API retorna um link do console para o qual você redireciona os clientes para revisar e aprovar a solicitação.
+ *GetDelegatedAccessToken do AWS STS*: recupera as credenciais temporárias da AWS depois que um cliente aprova sua solicitação de delegação. Use essas credenciais para executar ações na conta do cliente.

Sua integração deve lidar com todo o ciclo de vida das solicitações de delegação, incluindo a criação de solicitações, o monitoramento de seu status e a recuperação de credenciais temporárias quando aprovadas.

## 3. Configuração e orquestração de recursos
<a name="temporary-delegation-resource-configuration"></a>

Depois de obter as credenciais temporárias, orquestre os fluxos de trabalho necessários para configurar os recursos na conta da AWS do cliente. Isso pode incluir:
+ Chamar APIs de serviço da AWS diretamente para criar e configurar recursos
+ Implantar a infraestrutura usando modelos do AWS CloudFormation
+ Criar perfis do IAM para acesso contínuo (requer o uso de limites de permissões)

Sua lógica de orquestração deve ser idempotente e lidar com as falhas de forma resiliente, pois os clientes podem precisar repetir o processo ou modificar suas aprovações de delegação.