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 o Login with Amazon como um IdP de grupos de identidades
Os grupos de identidade do Amazon Cognito funcionam com o Login with Amazon para fornecer autenticação federada para seus usuários de aplicativos móveis e web. Esta seção explica como inscrever e configurar a aplicação com o Login with Amazon como provedor de identidade (IdP).
No Portal do desenvolvedor
nota
Para integrar o Login with Amazon a uma aplicação Xamarin, siga o Guia de conceitos básicos do Xamarin
nota
Você não pode integrar nativamente o Login with Amazon na plataforma Unity. Em vez disso, use uma visualização da Web e siga o fluxo de login do navegador.
Como configurar o Login with Amazon
Implementar o Login with Amazon
No portal do desenvolvedor da Amazon
A Amazon emite um ID de cliente OAuth 2.0 para seu novo perfil de segurança. Você pode encontrar o ID de cliente na guia do perfil de segurança Web Settings (Configurações da Web). Digite o ID do perfil de segurança no campo ID da aplicação do Login com Amazon IdP no banco de identidades.
nota
Digite o ID do perfil de segurança no campo ID da aplicação do Login com Amazon IdP no banco de identidades. Isso difere dos grupos de usuários, que usam ID do cliente.
Configurar o provedor externo no console do Amazon Cognito
Como adicionar um login com o provedor de identidades (IdP) da Amazon
-
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 Login with Amazon.
-
Insira o ID do aplicativo do OAuth projeto que você criou em Login with Amazon
. Para ter mais informações, consulte a documentação do Login with Amazon . -
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).
Use o Login with Amazon: Android
Depois de autenticar o login da Amazon, você pode passar o token para o provedor de credenciais do Amazon Cognito no método onSuccess da interface. TokenListener O código é semelhante a:
@Override public void onSuccess(Bundle response) { String token = response.getString(AuthzConstants.BUNDLE_KEY.TOKEN.val); Map<String, String> logins = new HashMap<String, String>(); logins.put("www.amazon.com", token); credentialsProvider.setLogins(logins); }
Use o Login with Amazon: iOS – Objective-C
Depois de autenticar o login da Amazon, você pode passar o token para o provedor de credenciais do Amazon Cognito requestDidSucceed no método de: AMZNAccessTokenDelegate
- (void)requestDidSucceed:(APIResult \*)apiResult { if (apiResult.api == kAPIAuthorizeUser) { [AIMobileLib getAccessTokenForScopes:[NSArray arrayWithObject:@"profile"] withOverrideParams:nil delegate:self]; } else if (apiResult.api == kAPIGetAccessToken) { credentialsProvider.logins = @{ @(AWSCognitoLoginProviderKeyLoginWithAmazon): apiResult.result }; } }}
Use o Login with Amazon: iOS – Swift
Depois de autenticar o login da Amazon, você pode passar o token para o provedor de credenciais do Amazon Cognito no método requestDidSucceed
de AMZNAccessTokenDelegate
:
func requestDidSucceed(apiResult: APIResult!) { if apiResult.api == API.AuthorizeUser { AIMobileLib.getAccessTokenForScopes(["profile"], withOverrideParams: nil, delegate: self) } else if apiResult.api == API.GetAccessToken { credentialsProvider.logins = [AWSCognitoLoginProviderKey.LoginWithAmazon.rawValue: apiResult.result] } }
Use o Login with Amazon: JavaScript
Depois que o usuário se autentica com o Login with Amazon e é redirecionado de volta para o site, o access_token Login with Amazon é fornecido na string de consulta. Passe esse token para mapear as credenciais de login.
AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'IDENTITY_POOL_ID', Logins: { 'www.amazon.com': 'Amazon Access Token' } });
Use o Login with Amazon: Xamarin
Xamarin para Android
AmazonAuthorizationManager manager = new AmazonAuthorizationManager(this, Bundle.Empty); var tokenListener = new APIListener { Success = response => { // Get the auth token var token = response.GetString(AuthzConstants.BUNDLE_KEY.Token.Val); credentials.AddLogin("www.amazon.com", token); } }; // Try and get existing login manager.GetToken(new[] { "profile" }, tokenListener);
Xamarin para iOS
Em AppDelegate.cs
, insira o seguinte:
public override bool OpenUrl (UIApplication application, NSUrl url, string sourceApplication, NSObject annotation) { // Pass on the url to the SDK to parse authorization code from the url bool isValidRedirectSignInURL = AIMobileLib.HandleOpenUrl (url, sourceApplication); if(!isValidRedirectSignInURL) return false; // App may also want to handle url return true; }
Depois, em ViewController.cs
, faça o seguinte:
public override void ViewDidLoad () { base.LoadView (); // Here we create the Amazon Login Button btnLogin = UIButton.FromType (UIButtonType.RoundedRect); btnLogin.Frame = new RectangleF (55, 206, 209, 48); btnLogin.SetTitle ("Login using Amazon", UIControlState.Normal); btnLogin.TouchUpInside += (sender, e) => { AIMobileLib.AuthorizeUser (new [] { "profile"}, new AMZNAuthorizationDelegate ()); }; View.AddSubview (btnLogin); } // Class that handles Authentication Success/Failure public class AMZNAuthorizationDelegate : AIAuthenticationDelegate { public override void RequestDidSucceed(ApiResult apiResult) { // Your code after the user authorizes application for requested scopes var token = apiResult["access_token"]; credentials.AddLogin("www.amazon.com",token); } public override void RequestDidFail(ApiError errorResponse) { // Your code when the authorization fails InvokeOnMainThread(() => new UIAlertView("User Authorization Failed", errorResponse.Error.Message, null, "Ok", null).Show()); } }