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á.
Acesse os serviços da AWS a partir de um aplicativo ASP.NET Core usando bancos de identidade do Amazon Cognito
Criado por Bibhuti Sahu (AWS) e Marcelo Barbosa (AWS)
Ambiente: PoC ou piloto | Tecnologias: segurança, identidade, conformidade; aplicativos web e móveis | Serviços da AWS: Amazon Cognito |
Resumo
Esse padrão discute como você pode configurar grupos de usuários e bancos de identidade do Amazon Cognito e, em seguida, habilitar um aplicativo ASP.NET Core para acessar os recursos da AWS após a autenticação bem-sucedida.
O Amazon Cognito fornece autenticação, autorização e gerenciamento de usuários para aplicativos web e móveis. Os dois principais componentes do Amazon Cognito são grupos de usuários e bancos de identidades.
Grupo de usuários é um diretório de usuários no Amazon Cognito. Com um grupo de usuários, seus usuários podem fazer login em aplicações Web ou móveis por meio do Amazon Cognito. Os usuários também podem fazer login por meio de provedores de identidade social, como o Google, o Facebook, a Amazon ou a Apple, e por meio de provedores de identidade SAML.
Os grupos de identidades do Amazon Cognito (identidades federadas) permitem a criação de identidades exclusivas para os usuários e federá-las com provedores de identidade. Com um grupo de identidades, você pode obter credenciais da AWS temporárias e de privilégio limitado para acessar outros serviços da AWS. Antes de começar a usar seu novo banco de identidade do Amazon Cognito, você deve atribuir uma ou mais perfis do AWS Identity and Access Management (IAM) para determinar o nível de acesso que você deseja que os usuários do seu aplicativo tenham aos seus recursos da AWS. Os grupos de identidades definem dois tipos de identidades: autenticadas e não autenticadas. Cada tipo de identidade pode ter sua própria função no IAM. As identidades autenticadas pertencem aos usuários que serão autenticados por um provedor de login público (grupos de usuários do Amazon Cognito, Facebook, Google, SAML ou qualquer provedor do OpenID Connect) ou um provedor de desenvolvedor (seu próprio processo de autenticação de back-end), enquanto identidades não autenticadas geralmente pertencem a usuários convidados. Quando o Amazon Cognito receber uma solicitação, o serviço determinará o tipo de identidade, a função atribuída a esse tipo de identidade e usará a política anexada a essa função para responder.
Pré-requisitos e limitações
Pré-requisitos
Um conta da AWS com permissões do Amazon Cognito e do IAM.
Acesso a recursos da AWS que você deseja usar
ASP.NET Core 2.0.0 ou superior
Arquitetura
Pilha de tecnologia
Amazon Cognito
ASP.NET Core
Arquitetura de destino
![](images/pattern-img/0152c4af-3e42-4ab0-9f03-3350cdb09e69/images/bd12b499-e6de-454e-a2ef-175a8b5ab9c8.png)
Ferramentas
Ferramentas, SDKs e serviços da AWS
Visual Studio ou Visual Studio Code
AWSSDK.S3 (3.3.110.32)
— pacote NuGet
Código
O arquivo.zip anexado inclui arquivos de amostra que ilustram:
Como recuperar um token de acesso para o usuário conectado
Como trocar um token de acesso por credenciais da AWS
Como acessar o serviço Amazon Simple Storage Service (Amazon S3) com credenciais da AWS
Perfil do IAM para identidades autenticadas
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "mobileanalytics:PutEvents", "cognito-sync:*", "cognito-identity:*", "s3:ListAllMyBuckets*" ], "Resource": [ "*" ] } ] }
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Criar um grupo de usuários. |
| Desenvolvedor |
Adicione um cliente de aplicativo. | Você pode criar um aplicativo para usar as páginas da Web integradas a fim de fazer login e cadastro de seus usuários.
| Desenvolvedor |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie um grupo de identidades do . |
| Desenvolvedor |
Atribua perfis do IAM para o banco de identidades. | Você pode editar os perfis do IAM para usuários autenticados e não autenticados ou manter os padrões e escolher Permitir. Para esse padrão, editaremos o perfil do IAM autenticado e forneceremos acesso para | Desenvolvedor |
Copie o ID do banco de identidades. | Quando você escolhe Permitir na etapa anterior, a página Conceitos básicos do Amazon Cognito é exibida. Nessa página, você pode copiar o ID do banco de identidades da seção Obter credenciais da AWS ou escolher Editar banco de identidades no canto superior direito e copiar a ID do grupo de identidades da tela exibida. | Desenvolvedor |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Clone o aplicativo web ASP.NET de amostra. |
| Desenvolvedor |
Adicione dependências. | Adicione uma NuGet dependência | Desenvolvedor |
Adicione as chaves e os valores de configuração ao appsettings.json. | Inclua o código do arquivo | Desenvolvedor |
Crie um novo usuário e faça login. | Crie um novo usuário no grupo de usuários do Amazon Cognito e verifique se o usuário existe em Usuários e grupos no grupo de usuários. | Desenvolvedor |
Crie uma nova página Razor chamada MyS3buckets. | Adicione uma nova página Razor Page ASP.NET Core ao seu aplicativo de amostra e substitua o conteúdo por | Desenvolvedor |
Solução de problemas
Problema | Solução |
---|---|
Depois de abrir o aplicativo de amostra no GitHub repositório, você recebe um erro ao tentar adicionar o NuGet pacote ao projeto Samples. | Na pasta |
Recursos relacionados
Anexos
Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: attachment.zip