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á.
Iniciação de sessão SAML em grupos de usuários do Amazon Cognito
O Amazon Cognito oferece suporte ao login único (SSOSP-initiated) e ao SSO iniciados pelo provedor de serviços (). IdP-initiated Como melhor prática de segurança, implemente o SP-initiated SSO em seu grupo de usuários. A seção 5.1.2 da Visão geral V2.0 técnica do SAML
Para alguns casos de uso empresariais, o acesso a aplicações internas começa em um marcador em um painel hospedado pelo IdP empresarial. Quando um usuário seleciona um marcador, o IdP gera uma resposta SAML e a envia ao SP para autenticar o usuário na aplicação.
Você pode configurar um SAML IdP em seu grupo de usuários para oferecer suporte a IdP-initiated SSO. Quando você oferece suporte à IdP-initiated autenticação, o Amazon Cognito não pode verificar se solicitou a resposta SAML recebida porque o Amazon Cognito não inicia a autenticação com uma solicitação SAML. No SP-initiated SSO, o Amazon Cognito define parâmetros de estado que validam uma resposta SAML em relação à solicitação original. Com o SP-initiated login, você também pode se proteger contra falsificação de solicitações entre sites (CSRF).
Implemente o login com SP-initated SAML
Como prática recomendada, implemente o login iniciado pelo provedor de serviços (SP-initiated) em seu grupo de usuários. O Amazon Cognito inicia a sessão do usuário e a redireciona para o seu IdP. Com esse método, você tem mais controle sobre quem apresenta as solicitações de login. Você também pode permitir o IdP-initiated login sob certas condições.
O processo a seguir mostra como os usuários concluem o SP-initiated login no seu grupo de usuários por meio de um provedor de SAML.
-
Seu usuário insere o endereço de e-mail em uma página de login. Para determinar o redirecionamento do usuário para o IdP, você pode coletar o endereço de e-mail em uma aplicação personalizada ou invocar o login gerenciado na visualização da web.
Você pode configurar suas páginas de login gerenciadas para exibir uma lista IdPs ou solicitar um endereço de e-mail e combiná-lo com o identificador do seu IdP SAML. Para solicitar um endereço de e-mail, edite o estilo de identidade visual do login gerenciado e, em Fundação, localize Comportamento de autenticação e, em Exibição do provedor, defina Estilo de exibição como Entrada de pesquisa de domínio.
-
Sua aplicação invoca o endpoint de redirecionamento do grupo de usuários e solicita uma sessão com o ID do cliente que corresponde à aplicação e o ID do IdP que corresponde ao usuário.
-
O Amazon Cognito redireciona seu usuário para o IdP com uma solicitação SAML, opcionalmente assinada, em um elemento
AuthnRequest. -
O IdP autentica o usuário de forma interativa ou com uma sessão memorizada por um cookie do navegador.
-
O IdP redireciona seu usuário para o endpoint de resposta SAML do grupo de usuários com a declaração SAML opcionalmente criptografada em sua carga útil POST.
nota
O Amazon Cognito cancela sessões que não recebem uma resposta em 5 minutos e redireciona o usuário para o login gerenciado. Quando seu usuário encontra esse resultado, ele recebe a mensagem de erro
Something went wrong. -
Após verificar a declaração do SAML e mapear atributos do usuário das declarações na resposta, o Amazon Cognito cria ou atualiza internamente o perfil do usuário no grupo de usuários. Normalmente, seu grupo de usuários retorna um código de autorização para a sessão do navegador do usuário.
-
Seu usuário apresenta o código de autorização à sua aplicação, que troca o código por tokens web JSON (JWTs).
-
A aplicação aceita e processa o token de ID do usuário como autenticação, gera solicitações autorizadas aos recursos com o token de acesso e armazena o token de atualização.
Quando um usuário se autentica e recebe uma concessão de código de autorização, o grupo de usuários retorna tokens de ID, acesso e atualização. O token de ID é um objeto de autenticação para gerenciamento de OIDC-based identidade. O token de acesso é um objeto de autorização com escopos do OAuth 2.0
Você também pode escolher a duração dos tokens de atualização. Depois que o token de atualização do usuário expirar, ele deverá fazer login novamente. Se eles fizerem a autenticação por meio de um IdP SAML, a duração da sessão de seus usuários será definida pela expiração dos tokens, não pela expiração da sessão com o IdP. A aplicação precisa armazenar o token de atualização de cada usuário e renovar a sessão quando ela expirar. O login gerenciado mantém as sessões do usuário em um cookie do navegador válido por 1 hora.
Implemente o login com IdP-initiated SAML
Ao configurar seu provedor de identidade para login no IdP-initiated SAML 2.0, você pode apresentar asserções de SAML ao saml2/idpresponse endpoint em seu domínio de grupo de usuários sem a necessidade de iniciar a sessão no. Autorizar endpoint Um grupo de usuários com essa configuração aceita declarações IdP-initiated SAML de um provedor de identidade externo do grupo de usuários compatível com o cliente do aplicativo solicitado.
-
Um usuário solicita o login SAML em sua aplicação.
-
A aplicação invoca um navegador ou redireciona o usuário para a página de login do provedor SAML.
-
O IdP autentica o usuário de forma interativa ou com uma sessão memorizada por um cookie do navegador.
-
O IdP redireciona o usuário para sua aplicação com a declaração SAML, ou resposta, no corpo POST.
-
A aplicação adiciona a declaração SAML ao corpo POST de uma solicitação para o endpoint
saml2/idpresponsedo grupo de usuários. -
O Amazon Cognito emite um código de autorização para o usuário.
-
Seu usuário apresenta o código de autorização à sua aplicação, que troca o código por tokens web JSON (JWTs).
-
A aplicação aceita e processa o token de ID do usuário como autenticação, gera solicitações autorizadas aos recursos com o token de acesso e armazena o token de atualização.
As etapas a seguir descrevem o processo geral de configuração e login com um provedor de IdP-initiated SAML 2.0.
-
Crie ou atribua um grupo de usuários e um cliente de aplicação.
-
Crie um IdP SAML 2.0 em seu grupo de usuários.
-
Configure seu IdP para suportar a iniciação do IdP. IdP-initiated O SAML apresenta considerações de segurança às quais outros provedores de SSO não estão sujeitos. Por esse motivo, você não pode adicionar algo que não seja SAML IdPs, incluindo o próprio grupo de usuários, a nenhum cliente de aplicativo que use um provedor de SAML com login. IdP-initiated
-
Associe seu provedor de IdP-initiated SAML a um cliente de aplicativo em seu grupo de usuários.
-
Direcione seu usuário para a página de login do seu IdP SAML e recupere uma declaração de SAML.
-
Direcione o usuário ao endpoint
saml2/idpresponsedo grupo de usuários com sua declaração SAML. -
Receba tokens web JSON (JWTs).
Para aceitar declarações de SAML não solicitadas em seu grupo de usuários, pense no impacto sobre a segurança da sua aplicação. É provável que ocorram tentativas de falsificação de solicitações e CSRF quando você aceita solicitações. IdP-initiated Embora seu grupo de usuários não possa verificar uma sessão de IdP-initiated login, o Amazon Cognito valida seus parâmetros de solicitação e declarações de SAML.
Além disso, sua declaração de SAML não deve conter uma reivindicação InResponseTo e deve ter sido emitida nos últimos 6 minutos.
Você deve enviar solicitações com IdP-initiated SAML para o seu/saml2/idpresponse. Para solicitações de autorização de login gerenciadas SP-initiated e solicitações de autorização de login, você deve fornecer parâmetros que identifiquem o cliente do aplicativo solicitado, os escopos, o URI de redirecionamento e outros detalhes como parâmetros da sequência de caracteres de consulta nas HTTP GET solicitações. No entanto, para declarações de IdP-initiated SAML, os detalhes da sua solicitação devem ser formatados como um RelayState parâmetro no corpo de uma solicitação. HTTP POST O corpo da solicitação também deve conter sua declaração de SAML como um parâmetro SAMLResponse.
Veja a seguir um exemplo de solicitação e resposta para um provedor de IdP-initiated SAML.
POST /saml2/idpresponse HTTP/1.1 User-Agent:USER_AGENTAccept: */* Host:example.auth.us-east-1.amazoncognito.comContent-Type: application/x-www-form-urlencoded SAMLResponse=[Base64-encoded SAML assertion]&RelayState=identity_provider%3DMySAMLIdP%26client_id%3D1example23456789%26redirect_uri%3Dhttps%3A%2F%2Fwww.example.com%26response_type%3Dcode%26scope%3Demail%2Bopenid%2BphoneHTTP/1.1 302 Found Date: Wed, 06 Dec 2023 00:15:29 GMT Content-Length: 0 x-amz-cognito-request-id: 8aba6eb5-fb54-4bc6-9368-c3878434f0fb Location:https://www.example.com?code=[Authorization code]