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á.
Configurando um OIDC provedor como IdP do grupo de identidades
O OpenID Connect
Como adicionar um provedor OpenID Connect
Para obter informações sobre como criar um provedor OpenID Connect, consulte Criação de provedores de identidade OpenID Connect (OIDC) no Guia do Usuário.AWS Identity and Access Management
Como associar um provedor ao Amazon Cognito
Para adicionar um provedor de OIDC identidade (IdP)
-
Selecione Bancos de identidades no console do Amazon Cognito
. Selecione um banco de identidades. -
Selecione a guia Acesso do usuário.
-
Selecione Adicionar provedor de identidade.
-
Escolha OpenID Connect () OIDC.
-
Escolha um provedor de OIDC identidade IAM IdPs no seu Conta da AWS. Se você quiser adicionar um novo SAML provedor, escolha Criar novo provedor para navegar até o IAM console.
-
Para alterar o perfil que o Amazon Cognito solicita ao emitir credenciais para usuários que se autenticaram com esse provedor, defina Configurações de perfil.
-
Você pode atribuir aos usuários desse IdP o Perfil padrão que você configurou ao definir seu Perfil autenticado ou Escolher perfil com regras.
-
Se você escolheu Escolher perfil com regras, insira a Declaração de origem da autenticação do usuário, o Operador pelo qual você deseja comparar a declaração, o Valor que gerará uma correspondência com essa opção de perfil e o Perfil que você deseja atribuir quando houver correspondência com a Atribuição de perfil. Selecione Adicionar outra para criar uma regra adicional com base em uma condição diferente.
-
Selecione uma Resolução de perfil. Quando as declarações do usuário não correspondem às suas regras, você pode negar ou emitir credenciais para seu Perfil autenticado.
-
-
-
Para alterar as tags de identidade principal que o Amazon Cognito atribui ao emitir credenciais para usuários que se autenticaram com esse provedor, configure Atributos para controle de acesso.
-
Para não aplicar nenhuma tag de entidade principal, selecione Inativo.
-
Para aplicar tags de entidade principal com base em declarações
sub
eaud
, selecione Usar mapeamentos padrão. -
Para criar seu próprio esquema personalizado de atributos para as tags de entidade principal, selecione Usar mapeamentos personalizados. Depois, insira a Chave de tag que você deseja obter de cada declaração e representar em uma tag.
-
-
Selecione Save Changes (Salvar alterações).
É possível associar vários provedores OpenID Connect a um único grupo de identidades.
Uso do OpenID Connect
Consulte a documentação do provedor sobre como fazer login e receber um token de ID.
Assim que tiver um token, adicione-o ao mapa de logins. Use o URI do seu provedor como chave.
Como validar um token de OpenID Connect
Ao fazer a primeira integração com o Amazon Cognito, você poderá receber uma exceção InvalidToken
. É importante entender como o Amazon Cognito valida os tokens do OpenID Connect OIDC ().
nota
Conforme especificado aqui (https://tools.ietf.org/html/rfc7523
-
O parâmetro
iss
deve corresponder à chave que o mapa de logins usa (por exemplo, login.provider.com). -
A assinatura deve ser válida. A assinatura deve ser verificável por meio de uma chave RSA pública.
-
A impressão digital da chave pública do certificado corresponde à impressão digital que você definiu IAM quando criou seu OIDC provedor.
-
Se o
azp
parâmetro estiver presente, verifique esse valor em relação ao cliente listado IDs em seu OIDC provedor. -
Se o
azp
parâmetro não estiver presente, verifique oaud
parâmetro em relação ao cliente listado IDs em seu OIDC provedor.
O site jwt.io
Android
Map<String, String> logins = new HashMap<String, String>(); logins.put("login.provider.com", token); credentialsProvider.setLogins(logins);
iOS – Objective-C
credentialsProvider.logins = @{ "login.provider.com": token }
iOS – Swift
Para fornecer o token de OIDC ID ao Amazon Cognito, implemente o AWSIdentityProviderManager
protocolo.
Ao implementar o logins
método, retorne um dicionário que contém o nome do OIDC provedor que você configurou. Esse dicionário atua como a chave, ao passo que o token de ID atual do usuário autenticado atua como o valor, conforme mostrado no exemplo de código a seguir.
class OIDCProvider: NSObject, AWSIdentityProviderManager { func logins() -> AWSTask<NSDictionary> { let completion = AWSTaskCompletionSource<NSString>() getToken(tokenCompletion: completion) return completion.task.continueOnSuccessWith { (task) -> AWSTask<NSDictionary>? in //login.provider.name is the name of the OIDC provider as setup in the Amazon Cognito console return AWSTask(result:["login.provider.name":task.result!]) } as! AWSTask<NSDictionary> } func getToken(tokenCompletion: AWSTaskCompletionSource<NSString>) -> Void { //get a valid oidc token from your server, or if you have one that hasn't expired cached, return it //TODO code to get token from your server //... //if error getting token, set error appropriately tokenCompletion.set(error:NSError(domain: "OIDC Login", code: -1 , userInfo: ["Unable to get OIDC token" : "Details about your error"])) //else tokenCompletion.set(result:"result from server id token") } }
Ao instanciar oAWSCognitoCredentialsProvider
, passe a classe que implementa AWSIdentityProviderManager como o valor de identityProviderManager no construtor. Para obter mais informações, acesse a página de AWSCognitoCredentialsProvider
JavaScript
AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'IDENTITY_POOL_ID', Logins: { 'login.provider.com': token } });
Unity
credentials.AddLogin("login.provider.com", token);
Xamarin
credentials.AddLogin("login.provider.com", token);