Visão geral da propagação de identidades confiáveis - AWS IAM Identity Center

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Visão geral da propagação de identidades confiáveis

Com a propagação de identidade confiável, o acesso do usuário aos AWS recursos pode ser mais facilmente definido, concedido e registrado. A propagação de identidade confiável é baseada na Estrutura de Autorização OAuth 2.0, que permite que os aplicativos acessem e compartilhem dados do usuário com segurança sem compartilhar senhas. OAuth 2.0 fornece acesso delegado seguro aos recursos do aplicativo. O acesso é delegado porque o administrador do recurso aprova ou delega a aplicação na qual o usuário faz login para acessar a outra aplicação.

Para evitar o compartilhamento de senhas de usuários, a propagação de identidades confiáveis usa tokens. Os tokens fornecem uma forma padrão de um aplicativo confiável afirmar quem é o usuário e quais solicitações são permitidas entre dois aplicativos. AWS aplicativos gerenciados que se integram à propagação confiável de identidade obtêm tokens diretamente do IAM Identity Center. O IAM Identity Center também oferece uma opção para os aplicativos trocarem tokens de identidade e tokens de acesso provenientes de um servidor de autorização OAuth 2.0 externo. Isso possibilita que um aplicativo se autentique e obtenha tokens externos AWS, troque o token por um token do IAM Identity Center e use o novo token para fazer solicitações aos AWS serviços. Para obter mais informações, consulte Usar aplicações com um emissor de tokens confiáveis.

O processo OAuth 2.0 começa quando um usuário faz login em um aplicativo. O aplicativo no qual o usuário faz login inicia uma solicitação para acessar os recursos de um AWS serviço. O aplicativo iniciador (solicitante) pode acessar o serviço de recebimento em nome do usuário solicitando um token do servidor de autorização. O servidor de autorização retorna o token e o aplicativo iniciador passa esse token, com uma solicitação de acesso, para o serviço receptor. A seguir estão as variações desse fluxo aplicáveis a diferentes tipos de iniciação de aplicativos e recebimento de serviços:

  • AWS aplicativos gerenciados podem se autenticar usando o IAM Identity Center, receber um token e passá-lo para AWS serviços que o usam para tomar decisões de autorização. Para obter mais informações, consulte Fluxos de solicitação de propagação de identidade confiáveis para aplicativos AWS gerenciados.

  • Os aplicativos gerenciados pelo cliente podem usar um servidor de autorização externo do OIDC para obter um token de acesso ou um token de identidade. Eles trocam o token por um token do IAM Identity Center e o passam para AWS serviços que o usam para tomar decisões de autorização. Para obter mais informações, consulte Usando aplicativos com um emissor de token confiável.

  • AWS aplicativos gerenciados e aplicativos gerenciados pelo cliente que possuem um token do IAM Identity Center podem chamar AWS Security Token Service e adicionar o contexto de identidade do usuário a uma função do IAM que o aplicativo usa para chamar um serviço SigV4. Para obter mais informações, consulte Sessões de função do IAM com identidade aprimorada.

Depois que uma aplicação obtém um token

Depois que uma aplicação solicitante obtém um token do IAM Identity Center, ela o atualiza periodicamente e ele pode ser usado durante toda a sessão do usuário. Durante esse período, o serviço de recebimento pode:

  • Obtenha mais informações sobre o token para determinar quem é o usuário e quais escopos o serviço pode usar com outros AWS serviços de recebimento.

  • Passe o token em chamadas para outros AWS serviços de recebimento que suportem o uso de tokens.

  • Obtenha sessões de função do IAM com identidade aprimorada que ele possa usar para fazer solicitações a outros AWS serviços que usam o AWS Signature versão 4.

Fluxos de solicitação de propagação de identidade confiáveis para aplicativos AWS gerenciados

As seções a seguir descrevem as maneiras pelas quais um aplicativo AWS gerenciado pode obter um token do IAM Identity Center para iniciar a propagação de identidade confiável.

Autenticação do IAM Identity Center na Web

Para esse fluxo, o aplicativo AWS gerenciado fornece uma experiência de login único baseada na web usando o IAM Identity Center para autenticação.

Quando um usuário abre um aplicativo AWS gerenciado, um fluxo de login único que usa o IAM Identity Center é acionado. Se não houver uma sessão ativa para o usuário no IAM Identity Center, uma página de login será apresentada a ele com base na fonte de identidades que você especificou, e o IAM Identity Center criará uma sessão para o usuário.

O IAM Identity Center fornece ao aplicativo AWS gerenciado um token que inclui a identidade do usuário e uma lista de públicos (Auds) e escopos relacionados que o aplicativo está registrado para usar. O aplicativo pode então usar o token para fazer solicitações para outros AWS serviços de recebimento.

Solicitações de autenticação iniciadas pelo usuário no console

Para esse fluxo, o aplicativo AWS gerenciado fornece uma experiência de console que os usuários iniciam.

Nesse caso, o aplicativo AWS gerenciado é inserido no AWS Management Console após assumir uma função. Para que a aplicação obtenha um token, o usuário deve iniciar um processo para acionar a aplicação para autenticar o usuário. Isso inicia a autenticação usando o IAM Identity Center, o que redirecionará o usuário para a fonte de identidades que você configurou.

Sessões de perfil do IAM aprimoradas com identidade

O AWS Security Token Service (STS) permite que um aplicativo AWS gerenciado ou um aplicativo gerenciado pelo cliente obtenha uma sessão de função do IAM com identidade aprimorada. Essas sessões de função com identidade aprimorada têm um contexto de identidade adicional que propaga a identidade do usuário para os AWS serviços que são chamados a partir da sessão de função. Isso permite que um aplicativo use sessões de função com identidade aprimorada ao fazer solicitações a um AWS serviço, e o AWS serviço pode autorizar o acesso aos recursos com base no usuário representado na sessão de função.

Um aplicativo obtém uma sessão de função com identidade aprimorada fazendo uma solicitação para a ação da AWS STS AssumeRoleAPI e transmitindo uma declaração de contexto no ProvidedContexts parâmetro da solicitação. AssumeRole A asserção do contexto é obtida da declaração idToken que está disponível na resposta da solicitação de SSO OIDC CreateTokenWithIAM. Esse contexto adiciona o userId do usuário do IAM Identity Center ao contexto da sessão de perfil aprimorado com identidade.

Quando um aplicativo AWS gerenciado usa uma sessão de função com identidade aprimorada para acessar um recurso, CloudTrail registra a identidade do usuário (userId), a sessão inicial e a ação tomada. Para obter mais informações, consulte Registro em log de sessão de perfil do IAM aprimorado com identidade.

Tipos de sessões de perfil do IAM aprimoradas com identidade

AWS STS pode criar dois tipos diferentes de sessões de função do IAM com identidade aprimorada, dependendo da declaração de contexto fornecida à solicitação. AssumeRole AWS aplicativos gerenciados e aplicativos gerenciados pelo cliente que obtiveram tokens de ID do IAM Identity Center podem adicionar sts:identity_context ou adicionar sts:audit_context às sessões de função do IAM. Uma sessão de perfil aprimorado com identidade só pode ter uma dessas asserções de contexto, não ambas. Essas sessões de perfil aprimorado com identidade podem ser usadas ao chamar qualquer serviço da AWS .

Sessões de perfil do IAM aprimoradas com identidade criadas com o sts:audit_context

AWS aplicativos gerenciados e aplicativos gerenciados pelo cliente podem ser especificados sts:audit_context em sessões de funções com identidade aprimorada. Quando isso é usado, AWS os serviços desconsideram o contexto na tomada de decisões de autorização. A chamada de aplicativos pode receber um erro se o serviço não tiver nenhuma autorização baseada em função para os recursos especificados. Devido às mudanças recentes na forma como sts:identity_context é usado nos serviços AWS gerenciados, AWS recomenda usar sts:identity_context em vez dests:audit_context.

Para obter esse tipo de sessão de função com identidade aprimorada AWS STS, os aplicativos AWS gerenciados e os aplicativos gerenciados pelo cliente fornecem o valor do sts:audit_context campo na AssumeRolesolicitação usando o parâmetro de ProvidedContexts solicitação. Use arn:aws:iam::aws:contextProvider/IdentityCenter como valor de ProviderArn.

Sessões de perfil do IAM aprimoradas com identidade criadas com o sts:identity_context

Quando uma sessão de função com identidade aprimorada contém sts:identity_context o AWS serviço chamado, determina se a autorização do recurso é baseada no usuário representado na sessão de função ou se é baseada na função.

AWS os serviços que oferecem suporte à autorização baseada no usuário fornecem ao administrador do aplicativo controles para atribuir acesso ao usuário ou aos grupos dos quais o usuário é membro.

AWS serviços que não oferecem suporte à autorização baseada no usuário desconsideram o. sts:identity_context CloudTrail registra o userId usuário do IAM Identity Center com todas as ações realizadas pela função. Para obter mais informações, consulte a seção Registro em log de sessão de perfil do IAM aprimorado com identidade abaixo.

Para obter esse tipo de sessão de função com identidade aprimorada AWS STS, os aplicativos AWS gerenciados e os aplicativos gerenciados pelo cliente fornecem o valor do sts:identity_context campo na AssumeRolesolicitação usando o parâmetro de ProvidedContexts solicitação. Use arn:aws:iam::aws:contextProvider/IdentityCenter como valor de ProviderArn.

Em alguns casos, se um aplicativo AWS gerenciado ou aplicativo gerenciado pelo cliente fizer solicitações sts:identity_context usando-o, poderá receber um erro se o AWS serviço chamado suportar sts:identity_context e não estiver conectado ao IAM Identity Center, ou se o recurso solicitado não estiver configurado para autorização com base na associação de usuários ou grupos.

Para evitar esse problema, faça o seguinte:

  • Verifique se o AWS serviço de recebimento está conectado ao IAM Identity Center.

  • Use o console do AWS serviço receptor ou seu APIs para configurar a autorização para seus recursos com base na identidade do usuário ou nas associações a grupos. Os requisitos de configuração para isso variam de acordo com o AWS serviço.

Para obter mais informações sobre como a autorização se comporta para AWS serviços que oferecem suportests:identity_context, consulte a documentação do serviço de recebimento AWS .

Registro em log de sessão de perfil do IAM aprimorado com identidade

Quando uma solicitação é feita AWS service (Serviço da AWS) usando uma sessão de função do IAM com identidade aprimorada criada com sts:audit_context ou comsts:identity_context, a Central de Identidade do IAM do usuário userId é conectada ao elemento CloudTrail . OnBehalfOf A forma como os eventos são registrados CloudTrail varia de acordo com o. AWS service (Serviço da AWS) Nem todos Serviços da AWS registram o onBehalfOf elemento.

Veja a seguir um exemplo de como uma solicitação feita a uma AWS service (Serviço da AWS) sessão de função com identidade aprimorada é registrada. CloudTrail

"userIdentity": { "type": "AssumedRole", "principalId": "AROAEXAMPLE:MyRole", "arn": "arn:aws:sts::111111111111:assumed-role/MyRole/MySession", "accountId": "111111111111", "accessKeyId": "ASIAEXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAEXAMPLE", "arn": "arn:aws:iam::111111111111:role/MyRole", "accountId": "111111111111", "userName": "MyRole" }, "attributes": { "creationDate": "2023-12-12T13:55:22Z", "mfaAuthenticated": "false" } }, "onBehalfOf": { "userId": "11111111-1111-1111-1111-1111111111", "identityStoreArn": "arn:aws:identitystore::111111111111:identitystore/d-111111111" } }