Criar um provedor de identidade OpenID Connect (OIDC) no IAM - AWS Identity and Access Management

Criar um provedor de identidade OpenID Connect (OIDC) no IAM

Provedores de identidade OIDC do IAM são entidades no IAM que descrevem um serviço de provedor de identidade (IdP) externo que oferece suporte ao padrão OpenID Connect (OIDC), como Google ou Salesforce. Você usa um provedor de identidade OIDC do IAM quando deseja estabelecer confiança entre um IdP compatível com OIDC e sua Conta da AWS. Isso será útil quando você estiver criando um aplicativo móvel ou um aplicativo web que precise acessar os recursos da AWS, mas não quiser criar um código de acesso personalizado ou gerenciar suas próprias identidades de usuários. Para ter mais informações sobre esse cenário, consulte Federação OIDC.

Você pode criar e gerenciar um provedor de identidade do IAM OIDC usando oAWS Management Console, o AWS Command Line Interface, o Tools for Windows PowerShell ou a API do IAM.

Depois de criar um provedor de identidade OIDC do IAM, você deve criar uma ou mais funções do IAM. Função é uma identidade na AWS que não tem as próprias credenciais (como um usuário). Porém, neste contexto, uma função é atribuída dinamicamente a um usuário federado que é autenticado pelo IdP da sua organização. A função permite que o IdP de sua organização solicite credenciais de segurança temporárias para acesso à AWS. As políticas atribuídas à função determinam o que os usuários federados podem fazer na AWS. Para criar uma função para um provedor de identidade de terceiros, consulte Criar uma função para um provedor de identidade de terceiros (federação).

Importante

Quando você configura políticas baseadas em identidade para ações que oferecem suporte a recursos do oidc-provider, o IAM avalia o URL completo do provedor de identidades OIDC, incluindo todos os caminhos especificados. Se o URL do seu provedor de identidades OIDC tiver um caminho, será necessário incluir esse caminho no ARN do oidc-provider como um valor de elemento Resource. Você também tem a opção de acrescentar uma barra e um curinga (/*) ao domínio do URL ou usar caracteres curinga (* e ?) em qualquer ponto do caminho do URL. Se o URL do provedor de identidades OIDC na solicitação não corresponder ao valor definido no elemento Resource da política, a solicitação falhará.

Para solucionar problemas comuns com a federação OIDC do IAM, consulte Solucionar erros relacionados ao OIDC no re:Post AWS.

Pré-requisitos: valide a configuração do seu provedor de identidade

Antes de criar um provedor de identidade OIDC do IAM, é necessário ter as seguintes informações do IdP. Para obter mais informações sobre como obter informações de configuração do provedor OIDC, consulte a documentação do IdP.

  1. Determine o URL publicamente disponível do seu provedor de identidade OIDC. O URL deve começar com https://. De acordo com o padrão OIDC, componentes de caminho são permitidos, mas parâmetros de consulta não são. Normalmente, o URL consiste apenas em um nome de host, como https://server.example.org ou https://example.com. O URL não deve conter um número de porta.

  2. Adicione /.well-known/openid-configuration ao final do URL do provedor de identidade OIDC para ver o documento de configuração e os metadados disponíveis publicamente desse provedor. Você deve ter um documento de descoberta no formato JSON com o documento de configuração e os metadados do provedor que possam ser recuperados do URL do endpoint de descoberta do provedor OpenID Connect.

  3. Confirme se os valores a seguir estão incluídos nas informações de configuração do provedor. Se algum desses campos estiver faltando em openid-configuration, você deverá atualizar seu documento de descoberta. Como esse processo pode variar dependendo do provedor de identidade, siga a documentação do seu IdP para concluir a tarefa.

    • issuer: o URL do seu domínio.

    • jwks_uri: o endpoint JSON Web Key Set (JWKS) em que o IAM obtém suas chaves públicas. Seu provedor de identidade deve incluir um endpoint JSON Web Key Set (JWKS) em openid-configuration. Esse URI define onde obter suas chaves públicas que são usadas para verificar os tokens assinados pelo provedor de identidade.

    • claims_supported: informações sobre o usuário que ajudam a garantir que as respostas de autenticação OIDC do IdP contenham os atributos obrigatórios que a AWS utiliza em políticas do IAM para verificar as permissões de usuários federados. Para obter uma lista das chaves de condição do IAM que podem ser usadas para declarações, consulte Chaves disponíveis para federação OIDC da AWS.

      • aud: você deve determinar o valor da declaração de audiência que seu IdP emite em JSON Web Tokens (JWTs). A declaração de audiência (aud) é específica da aplicação e identifica os destinatários pretendidos do token. Quando você registra uma aplicação Web ou móvel em um provedor OpenID Connect, este estabelece um ID de cliente que identifica a aplicação. O ID do cliente é um identificador exclusivo da sua aplicação, transmitido na declaração aud para autenticação. A declaração aud deve corresponder ao valor de Audiência ao criar seu provedor de identidade OIDC do IAM.

      • iat: as declarações devem incluir um valor para iat que represente a hora em que o token de ID é emitido.

      • iss: o URL do provedor de identidade. O URL deve começar com https:// e corresponder ao URL do provedor fornecido ao IAM. De acordo com o padrão OIDC, componentes de caminho são permitidos, mas parâmetros de consulta não são. Normalmente, o URL consiste apenas em um nome de host, como https://server.example.org ou https://example.com. O URL não deve conter um número de porta.

    • response_types_supported: id_token

    • subject_types_supported: public

    • id_token_signing_alg_values_supported: RS256

    nota

    Você pode incluir declerações adicionais, como custom no exemplo abaixo. No entanto, o AWS STS ignorará a declaração.

    { "issuer": "https://example-domain.com", "jwks_uri": "https://example-domain.com/jwks/keys", "claims_supported": [ "aud", "iat", "iss", "name", "sub", "custom" ], "response_types_supported": [ "id_token" ], "id_token_signing_alg_values_supported": [ "RS256" ], "subject_types_supported": [ "public" ] }

Criar e gerenciar um provedor OIDC (console)

Siga estas instruções para criar e gerenciar um provedor de identidade OIDC do IAM no AWS Management Console.

Importante

Se você estiver usando um provedor de identidade OIDC do Google, Facebook ou Amazon Cognito, não crie um provedor de identidade do IAM separado usando este procedimento. Esses provedores de identidade OIDC já estão integrados à AWS e estão disponíveis para uso. Em vez disso, siga as etapas para criar novas funções para seu provedor de identidade, consulte Criar uma função para uma federação do OpenID Connect (console).

Para criar um provedor de identidade OIDC do IAM (console)
  1. Antes de criar um provedor de identidade OIDC do IAM, é necessário registrar sua aplicação com o IdP para receber um ID do cliente. O ID do cliente (também conhecido como público) é um identificador exclusivo para o seu aplicativo, emitido quando você registra o aplicativo com o IdP. Para obter mais informações sobre como obter um ID de cliente, consulte a documentação do IdP.

    nota

    A AWS protege a comunicação com alguns provedores de identidade (IdPs) OIDC por meio de nossa biblioteca de autoridades de certificação (CAs) raiz confiáveis, em vez de usar uma impressão digital do certificado para verificar o certificado do servidor IdP. Nesses casos, sua impressão digital herdada permanece em sua configuração, mas não é mais usada para validação. Esses IdPs do OIDC incluem Auth0, GitHub, GitLab, Google e aqueles que usam um bucket do Amazon S3 para hospedar um endpoint do JSON Web Key Set (JWKS).

  2. Abra o console IAM em https://console.aws.amazon.com/iam/.

  3. No painel de navegação, escolha Identity providers (Provedores de identidade) e, em seguida Add provider (Adicionar provedor).

  4. Para Configure provider (Configurar provedor), escolha OpenID Connect.

  5. Para URL do provedor, digite o URL do IdP. O URL deve estar em conformidade com estas restrições:

    • O URL diferencia maiúsculas de minúsculas.

    • O URL deve começar com https://.

    • O URL não deve conter um número de porta.

    • Dentro da sua Conta da AWS, cada provedor de identidade OIDC do IAM deve usar um URL exclusivo. Se você tentar enviar um URL que já foi usado por um provedor OpenID Connect no Conta da AWS, receberá um erro.

  6. Em Audience (Público), digite o ID do cliente da aplicação que você registrou com o IdP e recebeu na Passo 1 e que fará solicitações para a AWS. Se você tiver IDs do cliente adicionais (também conhecidos como públicos) para este IdP, poderá adicioná-los, posteriormente, na página de detalhes do provedor.

    nota

    Se seu token JWT do IdP incluir a declaração azp, insira esse valor como o valor de Audiência.

  7. (Opcional) Em Add tags (Adicionar etiquetas), você pode adicionar pares de chave-valor para ajudar na identificação e organização de seus IdPs. Você também pode usar tags para controlar o acesso aos recursos da AWS. Para saber mais sobre como etiquetar provedores de identidade OIDC do IAM, consulte Marcar provedores de identidade OpenID Connect (OIDC). Escolha Adicionar Tag. Insira valores para cada par de chave-valor de tag.

  8. Verifique as informações fornecidas. Quando terminar, escolha Add provider (Adicionar provedor). O IAM tentará recuperar e usar a impressão digital da CA intermediária superior do certificado do servidor OIDC IdP para criar o provedor de identidade OIDC do IAM.

    nota

    A cadeia de certificados do provedor de identidade de OIDC deverá começar com o URL do domínio ou do emissor, depois com o certificado intermediário e terminar com o certificado raiz. Se a ordem da cadeia de certificados for diferente ou incluir certificados duplicados ou adicionais, você receberá um erro de incompatibilidade de assinatura e o STS falhará ao validar o JSON Web Token (JWT). Corrija a ordem dos certificados na cadeia retornados do servidor para resolver o erro. Para obter mais informações sobre os padrões da cadeia de certificados, consulte certificate_list in RFC 5246 no site RFC Series.

  9. Atribua uma função do IAM ao seu provedor de identidade para fornecer identidades de usuário externo gerenciadas pelo seu provedor de identidade, permissões para acessar recursos da AWS em sua conta. Para saber mais sobre como criar funções para a federação de identidades, consulte Criar uma função para um provedor de identidade de terceiros (federação).

    nota

    Os IdPs OIDC usados em uma política de confiança de perfil devem estar na mesma conta que o perfil que confia nela.

Para adicionar ou remover uma impressão digital de um provedor de identidade OIDC do IAM (console)
nota

A AWS protege a comunicação com alguns provedores de identidade (IdPs) OIDC por meio de nossa biblioteca de autoridades de certificação (CAs) raiz confiáveis, em vez de usar uma impressão digital do certificado para verificar o certificado do servidor IdP. Nesses casos, sua impressão digital herdada permanece em sua configuração, mas não é mais usada para validação. Esses IdPs do OIDC incluem Auth0, GitHub, GitLab, Google e aqueles que usam um bucket do Amazon S3 para hospedar um endpoint do JSON Web Key Set (JWKS).

  1. Abra o console IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação, escolha Identity providers (Provedores de identidade). Em seguida, escolha o nome do provedor de identidade do IAM que você deseja atualizar.

  3. Na seção Thumbprints (Impressões digitais), escolha Manage (Gerenciar). Para inserir um novo valor de impressão digital, escolha Add thumbprint (Adicionar impressão digital). Para remover uma impressão digital, escolha Remove (Remover) ao lado do item que deseja remover.

    nota

    Um provedor de identidade OIDC do IAM deve ter, pelo menos, uma impressão digital e, no máximo, cinco impressões digitais.

    Quando concluir, escolha Save changes (Salvar alterações).

Para adicionar um público para um provedor de identidade OIDC do IAM (console)
  1. No painel de navegação, escolha Identity providers (Provedores de identidade) e escolha o nome do provedor de identidade do IAM que você deseja atualizar.

  2. Na seção Audiences (Público-alvo), escolha Actions (Ações) e selecione Add audience (Adicionar público-alvo).

  3. Digite o ID do cliente da aplicação que você registrou com o IdP e recebeu em Passo 1 e que fará solicitações para a AWS. Em seguida, escolha Add audiences (Adicionar público-alvo).

    nota

    Um provedor de identidade OIDC do IAM deve ter pelo menos um público e, no máximo, 100 públicos.

Para remover um público de um provedor de identidade OIDC do IAM (console)
  1. No painel de navegação, escolha Identity providers (Provedores de identidade) e escolha o nome do provedor de identidade do IAM que você deseja atualizar.

  2. Na seção Audiences (Público-alvo), selecione o botão de opção ao lado do público-alvo que você deseja remover e, em seguida, selecione Actions (Ações).

  3. Escolha Remove audience (Remover público-alvo). Uma nova janela é aberta.

  4. Se você remover um público-alvo, as identidades federadas com o público não poderão assumir funções associadas ao público. Na janela, leia o aviso e confirme se deseja remover o público-alvo digitando a palavra remove no campo.

  5. Escolha Remove (Remover) para remover o público-alvo.

Para excluir um provedor de identidade OIDC do IAM (console)
  1. Abra o console IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação, escolha Identity providers (Provedores de identidade).

  3. Marque a caixa de seleção ao lado do provedor de identidade do IAM que você deseja excluir. Uma nova janela é aberta.

  4. Confirme se deseja excluir o provedor digitando a palavra delete no campo. Em seguida, selecione Excluir.

Criar e gerenciar um provedor de identidade OIDC do IAM (AWS CLI)

Você pode usar os comandos da AWS CLI a seguir para criar e gerenciar provedores de identidade OIDC do IAM.

Para criar um provedor de identidade OIDC do IAM (AWS CLI)
  1. (Opcional) Para obter uma lista de todos os provedores de identidade OIDC do IAM na sua conta da AWS, execute o seguinte comando:

  2. Para criar um novo provedor de identidade OIDC do IAM, execute o seguinte comando:

Para atualizar a lista de impressões digitais de certificado do servidor de um provedor de identidade OIDC do IAM existente (AWS CLI)
Para etiquetar um provedor de identidade OIDC do IAM existente (AWS CLI)
Para listar etiquetas para um provedor de identidade OIDC do IAM existente (AWS CLI)
Para remover etiquetas em um provedor de identidade OIDC do IAM (AWS CLI)
Para adicionar ou remover um ID de cliente de um provedor de identidade OIDC do IAM existente (AWS CLI)
  1. (Opcional) Para obter uma lista de todos os provedores de identidade OIDC do IAM na sua conta da AWS, execute o seguinte comando:

  2. (Opcional) Para obter informações detalhadas sobre um provedor de identidade OIDC do IAM, execute o seguinte comando:

  3. Para adicionar um novo ID do cliente a um provedor de identidade OIDC do IAM existente, execute o seguinte comando:

  4. Para remover um cliente de um provedor de identidade OIDC do IAM existente, execute o seguinte comando:

Para excluir um provedor de identidade OIDC do IAM (AWS CLI)
  1. (Opcional) Para obter uma lista de todos os provedores de identidade OIDC do IAM na sua conta da AWS, execute o seguinte comando:

  2. (Opcional) Para obter informações detalhadas sobre um provedor de identidade OIDC do IAM, execute o seguinte comando:

  3. Para excluir um provedor de identidade OIDC do IAM, execute o seguinte comando:

Criar e gerenciar um provedor de identidade OIDC (API da AWS)

Você pode usar os comandos da API do IAM a seguir para criar e gerenciar provedores OIDC.

Para criar um provedor de identidade OIDC do IAM (API da AWS)
  1. (Opcional) Para obter uma lista de todos os provedores de identidade OIDC do IAM em sua conta da AWS, chame a seguinte operação:

  2. Para criar um novo provedor de identidade OIDC do IAM, chame a seguinte operação:

Para atualizar a lista de impressões digitais de certificado do servidor de um provedor de identidade OIDC do IAM existente (API da AWS)
Para etiquetar um provedor de identidade OIDC do IAM existente (API da AWS)
Para listar etiquetas para um provedor de identidade OIDC do IAM existente (API da AWS)
Para remover etiquetas em um provedor de identidade OIDC do IAM existente (API da AWS)
  • Para remover etiquetas de um provedor de identidade OIDC do IAM existente, chame a seguinte operação:

Para adicionar ou remover um ID de cliente de um provedor de identidade OIDC do IAM existente (API da AWS)
  1. (Opcional) Para obter uma lista de todos os provedores de identidade OIDC do IAM em sua conta da AWS, chame a seguinte operação:

  2. (Opcional) Para obter informações detalhadas sobre um provedor de identidade OIDC do IAM, chame a seguinte operação:

  3. Para adicionar um novo ID do cliente a um provedor de identidade OIDC do IAM existente, chame a seguinte operação:

  4. Para remover um ID do cliente de um provedor de identidade OIDC do IAM existente, chame a seguinte operação:

Para excluir um provedor de identidade OIDC do IAM (API da AWS)
  1. (Opcional) Para obter uma lista de todos os provedores de identidade OIDC do IAM em sua conta da AWS, chame a seguinte operação:

  2. (Opcional) Para obter informações detalhadas sobre um provedor de identidade OIDC do IAM, chame a seguinte operação:

  3. Para excluir um provedor de identidade OIDC do IAM, chame a seguinte operação: