fbpx

Amazon Cognito Security

Compartilhar no facebook
Compartilhar no linkedin
Compartilhar no twitter
Compartilhar no whatsapp
Compartilhar no telegram

O Amazon Cognito fornece serviços de identidade e sincronização para aplicativos móveis e baseados na Web. Ele simplifica a tarefa de autenticar usuários e armazenar, gerenciar e sincronizar seus dados em vários dispositivos, plataformas e aplicativos.

Ele fornece credenciais temporárias com privilégios limitados para usuários autenticados e não autenticados sem precisar gerenciar nenhuma infraestrutura de back-end.

O Amazon Cognito trabalha com provedores de identidade conhecidos como Google, Facebook e Amazon para autenticar usuários finais de seus aplicativos móveis e da Web. Você pode tirar proveito dos recursos de identificação e autorização fornecidos por esses serviços, em vez de precisar criar e manter seus próprios.

Seu aplicativo se autentica com um desses provedores de identidade usando o SDK do provedor. Depois que o usuário final é autenticado com o fornecedor, um token OAuth ou OpenID Connect retornado do provedor é passado pelo seu aplicativo para o Amazon Cognito, que retorna um novo ID do Amazon Cognito para o usuário e um conjunto de credenciais temporárias da AWS com privilégios limitados.

Para começar a usar o Amazon Cognito, você cria um pool de identidades por meio do console do Amazon Cognito. O pool de identidades é um armazenamento de informações de identidade do usuário específicas da sua conta da AWS.

Durante a criação do pool de identidades, você será solicitado a criar uma nova função do IAM ou escolher uma existente para seus usuários finais. Uma função do IAM é um conjunto de permissões para acessar recursos específicos da AWS, mas essas permissões não estão vinculadas a um usuário ou grupo específico do IAM.

Uma entidade autorizada (por exemplo, usuário móvel, instância do Amazon EC2) assume uma função e recebe credenciais de segurança temporárias para autenticação nos recursos da AWS definidos na função.

As credenciais de segurança temporárias fornecem segurança aprimorada devido à sua curta vida útil (a expiração padrão é de 12 horas) e ao fato de que elas não podem ser reutilizadas depois que expiram.

A função que você seleciona afeta os serviços da AWS Cloud que seus usuários finais poderão acessar com credenciais temporárias. Por padrão, o Amazon Cognito cria uma nova função com permissões limitadas; os usuários finais têm acesso apenas ao serviço Amazon Cognito Sync e Amazon Mobile Analytics. Se seu aplicativo precisar acessar outros recursos da AWS, como Amazon S3 ou Amazon DynamoDB, você poderá modificar suas funções diretamente no console do IAM.

Com o Amazon Cognito, não há necessidade de criar contas individuais da AWS ou mesmo contas do IAM para todos os usuários finais de aplicativos da Web / dispositivos móveis que precisarão acessar seus recursos da AWS.

Em conjunto com as funções do IAM, os usuários móveis podem acessar com segurança a recursos da AWS e recursos de aplicativos e até mesmo salvar dados na nuvem da AWS sem precisar criar uma conta ou fazer login.

Se optarem por criar uma conta ou fazer login posteriormente, o Amazon Cognito mesclará informações de dados e identificação.

Como o Amazon Cognito armazena dados localmente e também no serviço, seus usuários finais podem continuar interagindo com os dados, mesmo quando estão offline. Seus dados offline podem estar obsoletos, mas eles podem recuperar imediatamente qualquer coisa que colocarem no conjunto de dados, estejam eles online ou não.

O SDK do cliente gerencia um armazenamento SQLite local para que o aplicativo possa funcionar mesmo quando não estiver conectado.

O armazenamento SQLite funciona como um cache e é o alvo de todas as operações de leitura e gravação. O recurso de sincronização do Amazon Cognito compara a versão local dos dados à versão em nuvem e aumenta ou diminui os deltas, conforme necessário. Observe que, para sincronizar dados entre dispositivos, seu pool de identidades deve suportar identidades autenticadas.

Identidades não autenticadas estão vinculadas ao dispositivo, portanto, a menos que um usuário final se autentique, nenhum dado poderá ser sincronizado em vários dispositivos.

Com o Amazon Cognito, seu aplicativo se comunica diretamente com um provedor de identidade pública suportado (Amazon, Facebook ou Google) para autenticar usuários. O Amazon Cognito não recebe ou armazena credenciais de usuário, apenas o token OAuth ou OpenID Connect recebido do provedor de identidade.

Depois que o Amazon Cognito recebe o token, ele retorna um novo ID do Amazon Cognito para o usuário e um conjunto de credenciais temporárias da AWS com privilégios limitados. Cada identidade do Amazon Cognito tem acesso apenas a seus próprios dados no armazenamento de sincronização, e esses dados são criptografados quando armazenados. Além disso, todos os dados de identidade são transmitidos por HTTPS.

O identificador exclusivo do Amazon Cognito no dispositivo é armazenado no local seguro apropriado. Por exemplo, no iOS, o identificador do Amazon Cognito é armazenado no chaveiro do iOS. Os dados do usuário são armazenados em cache em um banco de dados SQLite local na caixa de proteção do aplicativo; se você precisar de segurança adicional, poderá criptografar esses dados de identidade no cache local implementando a criptografia no seu aplicativo.