Configuración de Login with Amazon como un IdP de grupos de identidades - Amazon Cognito

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración de Login with Amazon como un IdP de grupos de identidades

Amazon Cognito se integra en Login with Amazon con el fin de ofrecer autenticación federada para sus usuarios de las aplicaciones móviles y web. En esta sección se explica cómo registrar y configurar su aplicación con Login with Amazon como proveedor de identidad (IdP).

Configuración de Login with Amazon para que funcione con Amazon Cognito en el portal para desarrolladores. Para obtener más información, consulte Configuración de Login with Amazon en las preguntas frecuentes sobre Login with Amazon.

nota

Para integrar Login with Amazon en una aplicación de Xamarin, siga la guía de introducción a Xamarin.

nota

No puede integrar de forma nativa Login with Amazon en la plataforma Unity. En su lugar, utilice una vista web y siga el flujo de inicio de sesión del navegador.

Configuración de Login with Amazon

Implementar Login with Amazon

En el portal para desarrolladores de Amazon puede configurar una aplicación OAuth para integrarla con su grupo de identidades, buscar documentación de Login with Amazon y descargar SDK. Elija Developer console (Consola para desarrolladores) y luego Login with Amazon (Inicio de sesión con Amazon) en el portal para desarrolladores. Puede crear un perfil de seguridad para tu su y, a continuación, crear mecanismos de autenticación Login with Amazon en ella. Consulte Obtención de credenciales para ver más información sobre cómo integrar la autenticación Login with Amazon con la aplicación.

Amazon emite un ID de cliente de OAuth 2.0 para su nuevo perfil de seguridad. Puede encontrar el ID de cliente en la pestaña Web Settings (Configuración web) del perfil de seguridad. Ingrese el ID de perfil de seguridad en el campo ID de aplicación del IdP de Login with Amazon en el grupo de identidades.

nota

Se ingresa el ID de perfil de seguridad en el campo ID de aplicación del IdP de Login with Amazon en el grupo de identidades. Esto difiere de los grupos de usuarios, que utilizan el ID de cliente.

Configuración del proveedor externo en la consola de Amazon Cognito

Para agregar un inicio de sesión con el proveedor de identidades (IdP) de Amazon
  1. Elija Grupos de identidades en la consola de Amazon Cognito. Seleccione un grupo de identidades.

  2. Elija la pestaña Acceso de usuario.

  3. Seleccione Agregar proveedor de identidades.

  4. Elija Iniciar sesión con Amazon.

  5. Ingrese el ID de aplicación del proyecto de OAuth que creó en Inicio de sesión con Amazon. Para obtener más información, consulte la Documentación de Login with Amazon.

  6. Para establecer el rol que Amazon Cognito solicita cuando emite credenciales a los usuarios que se han autenticado con este proveedor, configure Configuración del rol.

    1. Puede asignar a los usuarios de ese IdP el Rol predeterminado que configuró al configurar el Rol autenticado o puede Elegir el rol con reglas.

      1. Si eligió Elegir rol con reglas, ingrese la Reclamación de origen de la autenticación del usuario, el Operador con el que desea comparar la afirmación, el Valor que hará que coincida con esta elección de rol y el Rol que desea asignar cuando la Asignación del rol coincida. Seleccione Agregar otra para crear una regla adicional en función de una condición diferente.

      2. Elija una Resolución de rol. Cuando las reclamaciones del usuario no coinciden con las reglas, puede denegar las credenciales o emitir credenciales para el Rol autenticado.

  7. Para cambiar las etiquetas de la entidad principal que Amazon Cognito asigna cuando emite credenciales a los usuarios que se han autenticado con este proveedor, configure Atributos para el control de acceso.

    1. Para no aplicar ninguna etiqueta de entidad principal, elija Inactivo.

    2. Para aplicar etiquetas de entidades principales en función de las reclamaciones sub y aud, elija Usar mapeos predeterminados.

    3. Para crear su propio esquema personalizado de atributos para las etiquetas de la entidades principales, elija Usar mapeos personalizados. A continuación, ingrese una Clave de etiqueta que desee obtener de cada Reclamación que desee representar en una etiqueta.

  8. Seleccione Guardar cambios.

Utilización de Login with Amazon: Android

Tras autenticar el inicio de sesión en Amazon, puede pasar el token al proveedor de credenciales de Amazon Cognito en el método onSuccess de la interfaz. TokenListener El código tiene este aspecto:

@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); }

Utilización de Login with Amazon: iOS - Objective-C

Tras autenticar el inicio de sesión en Amazon, puede pasar el token al proveedor de credenciales de Amazon Cognito mediante requestDidSucceed el método AMZN: AccessTokenDelegate

- (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 }; } }}

Utilización de Login with Amazon: iOS - Swift

Una vez que haya autenticado el inicio de sesión con Amazon, puede transmitir el token al proveedor de credenciales de Amazon Cognito con el método requestDidSucceed de la interfaz 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] } }

Usa Login with Amazon: JavaScript

Una vez que el usuario se haya autenticado con Login with Amazon y vuelva a su sitio web, se proporciona el token de acceso de Login with Amazon en la cadena de consulta. Pase este token a la asignación de inicios de sesión de credenciales.

AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'IDENTITY_POOL_ID', Logins: { 'www.amazon.com': 'Amazon Access Token' } });

Utilización de 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

En AppDelegate.cs, inserte lo siguiente:

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; }

Luego, haga lo siguiente en ViewController.cs:

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()); } }