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á.
O OpenID Connect
Como adicionar um provedor OpenID Connect
Para ter informações sobre como criar um provedor OpenID Connect, consulte Criar provedores de identidades OpenID Connect (OIDC) no Guia do usuário do AWS Identity and Access Management .
Como associar um provedor ao Amazon Cognito
Como adicionar um provedor de identidades (IdP) OIDC
-
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.
-
Selecione OpenID Connect (OIDC).
-
Escolha um provedor de identidade OIDC do IAM IdPs em seu. Conta da AWS Se você quiser adicionar um novo provedor SAML, selecione Criar provedor para navegar até o console do IAM.
-
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 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 seu provedor para saber como fazer login e receber um token de ID.
Assim que tiver um token, adicione-o ao mapa de logins. Use o URI do 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 tokens de OpenID Connect.
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 de ativação pública RSA.
nota
Os grupos de identidades mantêm um cache da chave de assinatura do IdP do OIDC por um breve período. Se seu provedor alterar sua chave de assinatura, o Amazon Cognito poderá retornar um
NoKeyFound
erro até que esse cache seja atualizado. Se você encontrar esse erro, aguarde cerca de dez minutos para que seu grupo de identidades atualize a chave de assinatura. -
A impressão digital da chave pública do certificado corresponde à impressão digital que você definiu no IAM quando criou seu provedor OIDC.
-
Se o
azp
parâmetro estiver presente, verifique esse valor em relação ao cliente listado IDs em seu provedor OIDC. -
Se o
azp
parâmetro não estiver presente, verifique oaud
parâmetro em relação ao cliente listado IDs em seu provedor OIDC.
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 ID do OIDC ao Amazon Cognito, implemente o protocolo AWSIdentityProviderManager
.
Na implementação do método logins
, retorne um dicionário contendo o nome do provedor OIDC 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")
}
}
Quando você instancia oAWSCognitoCredentialsProvider
, passe a classe que implementa AWSIdentityProviderManager como o valor de identityProviderManager no construtor. Para obter mais informações, acesse 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);