Gestión de marca en la app

Con IBM Cloud® App ID, puede personalizar toda la experiencia de inicio de sesión de la aplicación utilizando sus propias pantallas con su marca. Puede sustituir el widget de inicio de sesión suministrado por el suyo propio, añadir más campos, validar la seguridad de la contraseña y verificar las direcciones de correo electrónico con una lista de bloqueo

Visión general de la reutilización de pantalla

Cuando reutiliza las IU existentes, puede crear un flujo de inicio de sesión coherente para la app. Utilizando las mismas imágenes, colores y marcas, es más probable que los usuarios reconozcan su marca, incluso cuando no interactúen directamente con la app.

¿Desea utilizar un idioma que no sea el inglés? Puede elegir otro idioma utilizando las API de gestión de idiomas para mostrar su propio contenido traducido.

¿Qué información necesito obtener en mi pantalla de inicio de sesión o de registro?

Al hacer la solicitud de enviar su formulario de inicio de sesión, éste debe contener los parámetros de nombre de usuario y de contraseña en el cuerpo de la solicitud. La página de inicio de sesión o de registro debe solicitar esa información a los usuarios.

¿Puedo usar algunas de las pantallas propias y algunas predeterminadas?

¡Sí! Puede crear un flujo híbrido que utilice algunas de sus pantallas y algunas pantallas predeterminadas. Sin embargo, solo puede utilizar una opción por flujo. Como ejemplo, puede utilizar su propia pantalla de inicio de sesión y también utilizar la pantalla de inicio de sesión predeterminada. No obstante, si opta por utilizar la pantalla de inicio de sesión predeterminada, debe seguir utilizándola durante todo el flujo de inicio de sesión, incluyendo la verificación de inicio de sesión.

¿En qué se diferencian técnicamente los flujos?

El servicio utiliza flujos de otorgamiento de OAuth 2.0 para asignar el proceso de autorización. Cuando se configuran proveedores de identidad social como Facebook, se utiliza el flujo de concesión de autorización para llamar al widget de inicio de sesión. Cuando utiliza sus propias pantallas, el flujo de credenciales de contraseña de propietario de recurso se utiliza para proporcionar tokens de acceso e identidad que puede utilizar para llamar a sus pantallas.

Gestión de marca en la app con el SDK de Android

Con el Directorio en la nube habilitado, puede llamar a pantallas personalizadas con el SDK de Android. Puede elegir la combinación de las pantallas con las que desea que sus usuarios puedan interactuar.

Iniciar sesión

  1. Configure los ajustes de su Directorio en la nube en la consola.

  2. Añada el código siguiente a la aplicación. El flujo de inicio de sesión se activa cuando un usuario pulsa en el inicio de sesión de la pantalla personalizada. Obtiene las señales de acceso, identidad y renovación proporcionando el nombre de usuario y la contraseña del usuario.

    AppID.getInstance().signinWithResourceOwnerPassword(getApplicationContext(), username, password, new TokenResponseListener() {
       @Override
       public void onAuthorizationFailure (AuthorizationException exception) {
             //Exception occurred
       }
    
       @Override
       public void onAuthorizationSuccess (AccessToken accessToken, IdentityToken identityToken, RefreshToken refreshToken) {
             //User authenticated
       }
    });
    

Gestión de marca en la app con el SDK de iOS Swift

Con Cloud Directory activado, puede llamar a sus propias pantallas de marca con el SDK iOS Swift.

Iniciar sesión

  1. Configure los ajustes de su Directorio en la nube en la consola.

  2. Añada el código siguiente en la aplicación. Cuando un usuario intenta iniciar sesión, se llama a la pantalla personalizada y el proceso de autorización y autenticación se inicia con la página de inicio de sesión personalizada.

    class delegate : TokenResponseDelegate {
       public func onAuthorizationSuccess(accessToken: AccessToken?, identityToken: IdentityToken?, response:Response?) {
       //User authenticated
       }
    
       public func onAuthorizationFailure(error: AuthorizationError) {
       //Exception occurred
       }
    }
    
    AppID.sharedInstance.signinWithResourceOwnerPassword(username: username, password: password, delegate: delegate())
    

Gestión de marca en la app con el SDK de Node.js

Con el Directorio en la nube habilitado, puede llamar a pantallas personalizadas con el SDK de Node.js.

Iniciar sesión

Al utilizar WebAppStrategy, los usuarios pueden iniciar sesión en sus aplicaciones web con su nombre de usuario y una contraseña. Después de que un usuario inicie sesión correctamente en la aplicación, su señal de acceso persiste en una sesión HTTP mientras se mantiene activa. Una vez que la sesión HTTP se cierra o caduca, la señal de acceso también se destruye.

  1. Configure los ajustes de su Directorio en la nube en la consola.

  2. Añada el código siguiente en la aplicación. Cuando un usuario intenta iniciar sesión, se llama a la pantalla personalizada y el proceso de autorización y autenticación se inicia.

    app.post("/form/submit", bodyParser.urlencoded({extended: false}), passport.authenticate(WebAppStrategy.STRATEGY_NAME, {
    successRedirect: LANDING_PAGE_URL,
    failureRedirect: ROP_LOGIN_PAGE_URL,
    failureFlash : true // allow flash messages
    }));
    
    Parámetros de acceso
    Parámetro Descripción
    successRedirect El URL al que desea redirigir al usuario tras una autenticación correcta.
    failureRedirect

    El URL al que desea redirigir al usuario si la autenticación falla. Los usuarios se redirigen al URL especificado cuando se producen los siguientes errores de autenticación:

    • El usuario introduce un nombre de usuario o una contraseña incorrectos.
    • Se ha alcanzado el límite del plan para la instancia de App ID.
    failureFlash Cuando se establece en true, se devuelve un mensaje de error desde el servicio de Cloud Directory. De forma predeterminada, el valor se establece en false.

    Para verlo en acción, consulte el ejemplo de aplicación web.

Gestión de marca en la app con la API

Puede mostrar sus propias pantallas personalizadas y aprovechar las posibilidades de autenticación y autorización de App ID. Con el Directorio en la nube como proveedor de identidad, sus usuarios pueden interactuar con su app requiriendo menos ayuda. Son capaces de iniciar la sesión, registrarse, restablecer su contraseña, etc., sin necesidad de solicitar ayuda.

Para hacer posible esta experiencia, App ID expone las API REST. Puede utilizar las API REST para crear un servidor de fondo que sirva a sus aplicaciones web o para interactuar con una aplicación móvil con sus propias pantallas personalizadas.

La API de gestión está protegida con las señales generadas por IBM Cloud Identity and Access Management, lo que significa que los propietarios de las cuentas pueden especificar qué persona de su equipo tiene qué nivel de acceso para cada instancia de servicio. Para obtener más información sobre cómo funcionan juntos IAM y App ID, consulte Gestión de acceso de servicio.

Después de configurar los valores, puede llamar a los siguientes puntos finales para visualizar cada pantalla.

Registrarse

Puede utilizar el punto final /sign_up para permitir que los usuarios se registren ellos mismos para su app. Proporcione los datos siguientes en el cuerpo de solicitud:

  • Su tenantID.
  • Datos de usuario del directorio en la nube con los siguientes atributos necesarios. Para más detalles, véase Representación de usuario completa SCIM.
    • Un atributo password.
    • Una matriz de emails con al menos una dirección de correo electrónico y un atributo primary establecido en true.

Dependiendo de la configuración de correo electrónico, un usuario podría recibir una solicitud para su verificación o un correo electrónico que le da la bienvenida cuando se registra para su app, o ambos. Ambos tipos de correos electrónicos se desencadenan cuando un usuario se registra para su app. El correo electrónico de verificación contiene un enlace en el que el usuario puede pulsar para confirmar su identidad; se muestra una pantalla que le agradece que realice una verificación o confirme que la misma se ha completado.

Para presentar su propia página postverificación:

  1. Vaya al proveedor de identidad del directorio en la nube en el panel de control de App ID.
  2. Pulse en el separador Verificación de correo electrónico.
  3. En Personalizar URL de página de verificación introduzca el URL de su página de destino.

Cuando se proporcione este valor, App ID llama al URL junto con una consulta context. Cuando llama al punto final /sign_up/confirmation_result y pasa el parámetro context recibido, el resultado le indica si el usuario ha verificado su cuenta. Si lo ha hecho, puede mostrar su página personalizada.

¿Ha olvidado su contraseña?

Puede utilizar el punto final /forgot_password para permitir que los usuarios recuperen su contraseña si la olvidan.

Proporcione los datos siguientes en el cuerpo de solicitud:

  • Su tenantID.
  • El correo electrónico del usuario del directorio en la nube.

Cuando se llame al punto final, se enviará un correo electrónico de restablecimiento de contraseña al usuario. El correo electrónico contiene un botón Restablecer. Una vez que pulsen el botón, se mostrará una pantalla mediante App ID, donde podrán restablecer su contraseña.

Puede presentar su propia página de restablecimiento de contraseña:

  1. Configure los ajustes de su Directorio en la nube en la consola. Permitir a los usuarios gestionar la cuenta desde la app se debe establecer en Activado.
  2. En el separador Restablecer contraseña del panel de control del servicio, asegúrese de que Correo electrónico de contraseña olvidada se haya establecido en Activado.
  3. Especifique el URL de la página de destino en el URL para su página de restablecimiento de contraseña personalizada

Cuando se proporcione este valor, App ID llama al URL junto con una consulta context. El parámetro context se utiliza para recibir el resultado cuando se llame a /forgot_password/confirmation_result. Si el resultado es correcto, puede mostrar su página personalizada.

Añada una serie aleatoria a la página de restablecimiento de contraseña personalizada y pásela a su programa de fondo cuando se envíe la solicitud. Haga que el manejador valide la serie y llame al punto final /change_password solo si es válido. De esta manera, puede reducir la vulnerabilidad del punto final de programa de fondo del programa de fondo.

Cambiar contraseña

Puede utilizar el punto final /change_password de dos maneras: cuando un usuario envía una solicitud de restablecimiento o cuando un usuario ha iniciado sesión en la app y desea actualizar su contraseña.

Antes de llamar a la API /change_password para permitir que un usuario restablezca su contraseña, es muy recomendable comprobar si context tiene un resultado correcto utilizando el punto final /forgot_password/confirmation_result. Esta operación añade un nivel de seguridad más alto al proceso de restablecimiento de contraseña de programa de fondo y garantiza que un usuario puede modificar su contraseña sólo si context aún es válido.

Para actualizar la contraseña de un usuario después de una solicitud de restablecimiento, proporcione los datos siguientes en el cuerpo de la solicitud:

  • Su tenantID.
  • La nueva contraseña del usuario.
  • El UUID de usuario del directorio en la nube.
  • Opcional: la dirección IP desde la que se ha realizado el restablecimiento de contraseña. Si elige pasar la dirección IP, el marcador %{passwordChangeInfo.ipAddress} estará disponible para la plantilla de correo electrónico de cambio de contraseña.

Dependiendo de la configuración, cuando se modifica una contraseña, App ID envía un correo electrónico al usuario para informarle de que se ha realizado un cambio.

Para permitir que los usuarios cambien su contraseña mientras tienen una sesión iniciada en la app, proporcione los datos siguientes en el cuerpo de la solicitud:

  • Su tenantID.
  • La nueva contraseña del usuario.
  • El UUID de usuario del directorio en la nube.

La página de cambio de contraseña debe aparecerle al usuario para que especifique su contraseña actual y su nueva contraseña.

El programa de fondo valida la contraseña actual del usuario con la API ROP, y si es válida, llama al punto final con la contraseña nueva. Dependiendo de la configuración, cuando se modifica una contraseña, App ID podría enviar un correo electrónico al usuario haciéndole saber que hubo un cambio.

Reenviar

Puede utilizar la dirección /resend/<templateName> para reenviar un correo electrónico cuando un usuario no lo recibe por algún motivo.

Proporcione los datos siguientes en el cuerpo de solicitud:

  • El ID de arrendatario.
  • El nombre de la plantilla.
  • El UUID de usuario del directorio en la nube.

Cambio de detalles

Cuando un usuario haya iniciado sesión en su app, puede actualizar una parte de su información. Puede utilizar /Users/<userID> para obtener y actualizar su información.

Cuando se actualizan los datos del usuario, el endpoint obtiene los datos actualizados del usuario en el cuerpo de la solicitud en formato SCIM. Asegúrese de cambiar únicamente los detalles relevantes.

Su dirección de correo electrónico no se puede cambiar.