Usar o próprio domínio para fazer login gerenciado
Após configurar um cliente da aplicação, você poderá configurar o grupo de usuários com um domínio personalizado para os serviços de domínio do login gerenciado. Com um domínio personalizado, os usuários podem fazer login na aplicação usando seu próprio endereço da web em vez do domínio de prefixo amazoncognito.com. Domínios personalizados melhoram a confiança do usuário em sua aplicação com um nome de domínio familiar, especialmente quando o domínio raiz corresponde ao domínio que hospeda a aplicação. Os domínios personalizados podem melhorar a conformidade com os requisitos de segurança da organização.
Um domínio personalizado tem alguns pré-requisitos, incluindo um grupo de usuários, um cliente da aplicação e um domínio da web de sua propriedade. Os domínios personalizados também exigem um certificado SSL, gerenciado com AWS Certificate Manager (ACM) no Leste dos EUA (N. da Virgínia). O Amazon Cognito cria uma distribuição do Amazon CloudFront, protegida em trânsito com seu certificado ACM. Como o domínio é de sua propriedade, é necessário criar um registro DNS que direcione o tráfego para a distribuição do CloudFront do seu domínio personalizado.
Com esses elementos prontos, você pode adicionar o domínio personalizado ao grupo de usuários por meio do console ou da API do Amazon Cognito. Isso envolve especificar o nome de domínio e o certificado SSL e, em seguida, atualizar sua configuração de DNS com o destino de alias fornecido. Depois de fazer essas alterações, você pode verificar se a página de login está acessível no seu domínio personalizado.
A maneira mais simples de criar um domínio personalizado é com uma zona hospedada pública no Amazon Route 53. O console do Amazon Cognito pode criar os registros DNS corretos em algumas etapas. Antes de começar, considere criar uma zona hospedada do Route 53 para um domínio ou subdomínio que você possua.
Tópicos
Como adicionar um domínio personalizado a um grupo de usuários
Para adicionar um domínio personalizado para seu grupo de usuários, especifique o nome de domínio no console do Amazon Cognito e forneça um certificado que você gerencia com o AWS Certificate Manager (ACM). Depois de adicionar seu domínio, o Amazon Cognito fornece um destino de alias, que você adiciona à sua configuração de DNS.
Pré-requisitos
Antes de começar, você precisa de:
-
Um grupo de usuários com um cliente de aplicativo. Para obter mais informações, consulte Conceitos básicos dos grupos de usuários.
-
Um domínio da Web do qual você é proprietário. O domínio superior deve ter um registro A DNS válido. Você pode atribuir qualquer valor a esse registro. O domínio superior pode ser a raiz do domínio ou um domínio inferior que fica um nível acima na hierarquia do domínio. Por exemplo, se o domínio personalizado for auth.xyz.exemplo.com, o Amazon Cognito precisará ser capaz de resolver xyz.exemplo.com como um endereço IP. Com o objetivo de evitar um impacto acidental na infraestrutura do cliente, o Amazon Cognito não aceita o uso de domínios de nível superior (TLDs) para domínios personalizados. Para obter mais informações, consulte Nomes de domínio
. -
A capacidade de criar um subdomínio para seu domínio personalizado. Recomendamos auth para o nome do subdomínio. Por exemplo,
auth.example.com.nota
Poderá ser necessário obter um novo certificado para o subdomínio do domínio personalizado se você não tiver um certificado curinga
. -
Um certificado TLS/SSL público gerenciado pelo ACM no Leste dos EUA (Norte da Virgínia). O certificado deve estar em us-east-1 porque será associado a uma distribuição no CloudFront, um serviço global.
-
Clientes de navegador compatíveis com Server Name Indication (SNI). A distribuição do CloudFront que o Amazon Cognito atribui aos domínios personalizados exige SNI. Você não pode alterar essa configuração. Para obter mais informações sobre SNI em distribuições do CloudFront, consulte Usar a SNI para atender a solicitações HTTPS no Guia do desenvolvedor do Amazon CloudFront.
-
Uma aplicação que permite que o servidor de autorização do grupo de usuários adicione cookies às sessões do usuário. O Amazon Cognito define vários cookies obrigatórios para páginas de login gerenciado. Entre eles estão
cognito,cognito-fleXSRF-TOKEN. Embora cada cookie individual respeite os limites de tamanho do navegador, alterações na configuração do grupo de usuários podem fazer com que os cookies do login gerenciado aumentem de tamanho. Um serviço intermediário, como o Application Load Balancer (ALB), na frente do domínio personalizado pode impor um tamanho máximo de cabeçalho ou tamanho total do cookie. Se a aplicação também definir seus próprios cookies, as sessões dos usuários poderão exceder esses limites. Para evitar conflitos de limite de tamanho, recomendamos que a aplicação não defina cookies no subdomínio que hospeda os serviços de domínio do grupo de usuários. -
Permissão para atualizar as distribuições do Amazon CloudFront. Você pode fazer isso anexando a declaração de política do IAM a seguir a um usuário em sua Conta da AWS:
Para ter mais informações sobre como autorizar ações no CloudFront, consulte Using Identity-Based Policies (IAM Policies) for CloudFront (Usar políticas baseadas em identidade (políticas do IAM) para o CloudFront).
Inicialmente, o Amazon Cognito usa suas permissões do IAM para configurar a distribuição do CloudFront, mas a distribuição é gerenciada pela AWS. Você não pode alterar a configuração da distribuição do CloudFront que o Amazon Cognito associou ao seu grupo de usuários. Por exemplo, não é possível atualizar as versões de TLS compatíveis na política de segurança.
Etapa 1: insira o nome de domínio personalizado
É possível adicionar seu domínio ao grupo de usuários usando a API ou o console do Amazon Cognito.
Etapa 2: adicionar um destino do alias e subdomínio
Nesta etapa, configure um alias por meio do seu provedor de serviços do servidor de nome de domínio (DNS) que aponta para o destino do alias da etapa anterior. Se você estiver usando o Amazon Route 53 para resolução do endereço DNS, escolha a seção To add an alias target and subdomain using Route 53 (Para adicionar um destino do alias e subdomínio usando o Route 53).
-
Se não estiver usando o Route 53 para resolução do endereço DNS, é necessário utilizar as ferramentas de configuração do seu provedor de serviço DNS para adicionar o destino do alias da etapa anterior ao registro DNS do domínio. O provedor DNS também precisará configurar o subdomínio para o seu domínio personalizado.
-
Faça login no console do Route 53
. Se solicitado, insira suas credenciais da AWS. -
Se não tiver uma zona hospedada pública no Route 53, crie uma com uma raiz que seja pai do seu domínio personalizado. Para obter mais informações, consulte Criar uma zona hospedada pública no Guia do desenvolvedor do Amazon Route 53.
-
Escolha Criar zona hospedada.
-
Insira o domínio pai, por exemplo
auth.example.com, do seu domínio personalizado, por exemplomyapp.auth.example.com, da lista Domain Name (Nome do domínio). -
Insira uma Descrição para a sua zona hospedada.
-
Selecione um Type (Tipo) de zona hospedada de Public hosted zone (Zona hospedada pública) para permitir que clientes públicos resolvam seu domínio personalizado. Não há compatibilidade com a seleção de Private hosted zone (Zona hospedada privada).
-
Aplique Etiquetas como desejar.
-
Escolha Criar zona hospedada.
nota
Também é possível criar uma nova zona hospedada para o domínio personalizado com um conjunto de delegação na zona hospedada principal que direciona consultas para a zona hospedada do subdomínio. Caso contrário, crie um registro A. Esse método oferece mais flexibilidade e segurança com suas zonas hospedadas. Para mais informações, consulte Creating a subdomain for a domain hosted through Amazon Route 53
(Criar um subdomínio para um domínio hospedado por meio do Amazon Route 53).
-
-
Na página Hosted Zones (Zonas hospedadas), escolha o nome da sua zona hospedada.
-
Adicione um registro DNS ao domínio pai do seu domínio personalizado, caso ainda não tenha um. Crie um registro DNS para o domínio pai com as propriedades a seguir:
-
Nome do registro: deixe em branco.
-
Tipo de registro:
A. -
Alias: não ative.
-
Valor: insira o valor desejado. Esse registro deve ser resolvido como algo, mas o valor do registro não importa para o Amazon Cognito.
-
TTL: defina como seu TTL preferido ou deixe o padrão.
-
Política de roteamento: escolha roteamento simples.
-
-
Escolha Criar registros. Veja a seguir um exemplo de registro para o domínio
example.com:example.com.60 IN A198.51.100.1nota
O Amazon Cognito verifica que há um registro DNS para o domínio pai do seu domínio personalizado para proteger contra o sequestro acidental de domínios de produção. Se você não tiver um registro DNS para o domínio pai, o Amazon Cognito retornará um erro quando você tentar definir o domínio personalizado. Um registro de Início de autoridade (SOA) não é um registro DNS suficiente para fins de verificação do domínio pai.
-
Adicione outro registro DNS para seu domínio personalizado com as seguintes propriedades:
-
Nome do registro: prefixo do domínio personalizado, por exemplo,
authpara criar um registro paraauth.example.com. -
Tipo de registro:
A. -
Alias: ative.
-
Rotear tráfego para: escolha Alias para distribuição do CloudFront. Insira o Destino do alias que você registrou anteriormente, por exemplo,
123example.cloudfront.net. -
Política de roteamento: escolha roteamento simples.
-
-
Escolha Criar registros.
nota
A propagação de seus novos registros para todos os servidores de DNS do Route 53 pode levar cerca de 60 segundos. É possível utilizar o método da API GetChange do Route 53 para verificar se as alterações foram propagadas.
Etapa 3: verificar a página de acesso
-
Verifique se a página de login está disponível no seu domínio personalizado.
Faça login com o domínio e o subdomínio personalizados inserindo esse endereço no navegador. Este é um exemplo de URL de um domínio personalizado
example.comcom o subdomínioauth:https://myapp.auth.example.com/login?response_type=code&client_id=<your_app_client_id>&redirect_uri=<your_callback_url>
Como alterar o certificado SSL do seu domínio personalizado
Quando necessário, você poderá usar o Amazon Cognito para alterar o certificado aplicado ao seu domínio personalizado.
Geralmente, isso é desnecessário ao ser seguida a rotina de renovação do certificado com o ACM. Quando você renovar seu certificado existente no ACM, o ARN do certificado permanecerá o mesmo, e seu domínio personalizado usará o novo certificado automaticamente.
No entanto, se você substituir o certificado existente por um novo, o ACM dará ao novo certificado um novo ARN. Para aplicar o novo certificado ao seu domínio personalizado, você deve fornecer esse ARN ao Amazon Cognito.
Depois de fornecer o novo certificado, o Amazon Cognito precisará de até uma hora para distribuí-lo ao seu domínio personalizado.
Antes de começar
Antes de alterar seu certificado no Amazon Cognito, você deve adicionar o certificado ao ACM. Para obter mais informações, consulte Conceitos básicos no Guia do usuário do AWS Certificate Manager.
Ao adicionar seu certificado ao ACM, você deve escolher Leste dos EUA (Norte da Virgínia) como região da AWS.
É possível alterar seu certificado usando a API ou o console do Amazon Cognito.