2016年5月,我们发布了最新版本的Google Identity Toolkit作为Firebase身份验证; 2019年4月,我们发布了Google Cloud的Identity Platform 。这些产品包括升级的客户端SDK,开源UI库,会话管理和用于忘记密码流的集成电子邮件发送服务。

20206月30日,此页面和API设置页面上记录的SDK将停止运行。 (Identity Platform和Firebase身份验证使用的https://identitytoolkit.googleapis.com/...https://securetoken.googleapis.com/...端点将继续运行。)

要从Identity Toolkit迁移现有项目,请参阅《 Identity Platform迁移指南》或《 Firebase身份验证迁移指南》

Migrar de Google Identity Toolkit a Google Cloud Identity Platform

La nueva versión de Google Identidad Toolkit ha sido lanzado como plataforma de identidad y autenticación Firebase . En el futuro, se congelará el trabajo de funciones en Identity Toolkit; Todo el desarrollo de nuevas funciones se realizará en Identity Platform y Firebase Authentication. Alentamos a los desarrolladores de Identity Toolkit a migrar a estas plataformas tan pronto como sea práctico para sus aplicaciones.

Nuevas características

Identity Platform ya tiene importantes mejoras de funciones sobre Google Identity Toolkit:

  • Nueva consola de administración

    Identidad de la Plataforma tiene una nueva consola de desarrollo que le permite ver, modificar y borrar sus usuarios; esto puede resultar útil para depurar los flujos de inicio de sesión y registro. La consola también le permite configurar métodos de autenticación y personalizar plantillas de correo electrónico.

  • Nuevos métodos de autenticación

    Identity Platform es compatible con los estándares de federación empresarial, como SAML y OIDC, lo que le permite escalar aplicaciones y servicios SaaS. Identity Platform también ofrece soporte para proveedores como GitHub, Microsoft, Yahoo y más. Puede utilizar el inicio de sesión anónimo para crear una identificación de usuario única sin necesidad de que el usuario realice ningún proceso de inicio de sesión o registro; esto le permite realizar llamadas API autenticadas como lo haría con un usuario normal. Cuando el usuario decide registrarse para obtener una cuenta, toda la actividad se conserva con el mismo ID de usuario. Esto es valioso para escenarios como carritos de compras del lado del servidor u otras aplicaciones en las que desea involucrar al usuario antes de enviarlo a través de un flujo de registro.

  • Escale con confianza con acuerdos de nivel de servicio y soporte en la nube

    Identidad de la Plataforma de confianza se basa en la infraestructura de Google, y proporciona los acuerdos de nivel de servicio y apoyo de la nube de Google. Esto significa que puede escalar su servicio con confianza y confiar en Google para brindar la resistencia, disponibilidad y escalabilidad que necesita.

  • Acceso a todo Firebase

    Firebase es una plataforma móvil que lo ayuda a desarrollar rápidamente aplicaciones de alta calidad, aumentar su base de usuarios y ganar más dinero. Firebase se compone de características complementarias que se pueden mezclar y combinar para adaptarse a sus necesidades e incluye la infraestructura para: móviles de análisis , mensajería en la nube , de bases de datos en tiempo real , almacenamiento de archivos , alojamiento estática , configuración remota , móvil informe de bloqueo y Android de prueba .

  • UI actualizadas

    Hemos reconstruido por completo los flujos de la interfaz de usuario en función de la última investigación de UX de Google. Esto incluye recuperación de contraseñas, vinculación de cuentas, flujos de desambiguación de cuentas nuevas / existentes que a menudo requieren mucho tiempo para codificar y depurar. Se integra Smart Lock para contraseñas en Android, que ha mejorado significativamente el inicio de sesión y la conversión de inscripción para participar aplicaciones . También es compatible con las modificaciones tema fácil de combinar su aplicación y, para una máxima capacidad de personalización, los Android y iOS versiones han sido abiertas de origen.

  • Configuración de servidor simplificada

    Con Identity Toolkit, vimos que muchos desarrolladores optaron por no implementar el flujo de recuperación de correo electrónico, lo que hizo imposible que sus usuarios recuperaran sus cuentas si olvidaban su contraseña. Identidad de la Plataforma puede enviar correo electrónico de verificación, para restablecer la contraseña, y los mensajes de contraseña cambiada para el usuario y el texto puede ser fácilmente personalizado para sus usuarios. Además, ya no es necesario para albergar los widgets de interfaz de usuario para la celebración de redirecciones y completar las operaciones de cambio de contraseña.

  • Nuevos SDK

    Todas las API de servidor de Identity Toolkit ahora están disponibles de forma nativa con cada una de nuestras bibliotecas cliente (Android, iOS, web). Los desarrolladores podrán iniciar sesión y registrar usuarios nuevos y antiguos, acceder a las propiedades del usuario, vincular, actualizar y eliminar cuentas, restablecer contraseñas y más sin estar atados a una interfaz de usuario fija. Si lo prefiere, puede crear manualmente su propio flujo y experiencia de inicio de sesión completos sobre esta API.

  • Gestión de sesiones para aplicaciones móviles

    Con Identity Toolkit, las aplicaciones crearon su propio estado de sesión en función del evento de autenticación inicial de Identity Toolkit. Identity Platform utiliza un servicio de backend que toma un token de actualización, creado a partir del evento de autenticación, y lo intercambia por tokens de acceso de una hora para Android, iOS y JavaScript. Cuando un usuario cambia su contraseña, los tokens de actualización ya no podrán generar nuevos tokens de acceso, deshabilitando así el acceso hasta que el usuario se vuelva a autenticar en ese dispositivo.

Diferencias de características

Algunas funciones de Identity Toolkit no están disponibles actualmente en Identity Platform, mientras que otras funciones se han rediseñado y funcionan de manera diferente. Puede optar por no migrar inmediatamente si estas funciones son importantes para su aplicación. En muchos casos, estas funciones pueden no ser importantes para su aplicación o puede haber alternativas fáciles que le permitirán continuar con la migración.

Diferencias del lado del servidor

El servicio principal de Identity Toolkit con sus API REST subyacentes, la lógica de validación de cuentas y la base de datos de usuario principal solo se han actualizado de menor importancia. Pero algunas características y la forma en que integra Identity Platform en su servicio han cambiado.

  • Proveedores de identidad

    Paypal y AOL no son compatibles. Los usuarios con cuentas de estos IDP aún pueden iniciar sesión en su aplicación con el flujo de recuperación de contraseña y configurar una contraseña para su cuenta.

  • Bibliotecas de servidor

    Actualmente, hay SDK de administración disponibles para Java, Node.js, Python, Ir y C #.

  • Correos electrónicos de gestión de cuentas

    Los mensajes de restablecimiento de contraseña, verificación de correo electrónico y cambio de correo electrónico pueden ser realizados por Firebase o desde el propio servidor de correo del desarrollador. Actualmente, plantillas de correo electrónico ofrecen sólo personalización limitada de la interfaz de usuario, pero se pueden personalizar con los SDK de administración

  • Confirmación de cambio de dirección de correo electrónico

    En Identity Toolkit, cuando un usuario decide cambiar su dirección de correo electrónico, envía un correo electrónico a la nueva dirección que tiene un enlace para continuar con el flujo de cambio de dirección de correo electrónico.

    Firebase confirma el cambio de dirección de correo electrónico enviando un correo electrónico de revocación a la dirección de correo electrónico anterior con un enlace para revertir el cambio.

  • Lanzamiento de IDP

    Identity Toolkit tenía la capacidad de agregar proveedores de identidad a su sistema de inicio de sesión gradualmente, para que pudiera experimentar con el impacto en sus solicitudes de soporte. Esta función se eliminó en Firebase Authentication.

Diferencias del lado del cliente

En Identity Platform, las funciones proporcionadas por Google Identity Toolkit se dividen en dos componentes:

  • SDK de cliente y servidor

    En Identity Platform, la funcionalidad proporcionada por la API REST de Identity Toolkit se ha empaquetado en los SDK de cliente disponibles para Android, iOS y JavaScript. Puede utilizar el SDK para iniciar sesión y registrar usuarios; acceder a la información del perfil del usuario; vincular, actualizar y eliminar cuentas; y restablecer las contraseñas utilizando el SDK del cliente en lugar de comunicarse con el servicio de back-end a través de llamadas REST.

  • Widget de interfaz de usuario

    Todos los flujos de IU que administran el inicio de sesión, el registro, la recuperación de contraseñas y la vinculación de cuentas se han reconstruido utilizando los SDK de cliente y se han empaquetado como un widget de inicio de sesión. Están disponibles como los SDK de código abierto para iOS , Android y Web , y le permiten personalizar completamente los flujos de formas que no son posibles con Identidad Toolkit.

Las diferencias adicionales incluyen:

  • Sesiones y migración

    Debido a que las sesiones se administran de manera diferente en Identity Toolkit e Identity Platform, las sesiones existentes de sus usuarios finalizarán al actualizar el SDK, y sus usuarios deberán iniciar sesión nuevamente.

Antes de que empieces

Antes de poder migrar de Identity Toolkit a Identity Platform, debe:

  1. Abra la consola de la nube y seleccione su proyecto de identidad Toolkit.

  2. Desde el mercado, busque la Identidad de la Plataforma y seleccione 'Activar Identidad de la Plataforma'

  3. Cuentas abiertas servicio de la página. Aquí puede ver la cuenta de servicio que configuró previamente para Identity Toolkit.

  4. Junto a la cuenta de servicio, haga clic > Crear clave. A continuación, en el cuadro de diálogo Crear clave privada, establecer el tipo de clave para JSON y haga clic en Crear. Se descarga un archivo JSON que contiene las credenciales de su cuenta de servicio. Lo necesitará para inicializar el SDK en el siguiente paso.

  5. Volver a la consola de la nube . En la sección de proveedores, dentro del 'Correo electrónico / contraseña' en el método de inicio de sesión, abra la página Plantillas de Correo Electrónico. A continuación, puede personalizar las plantillas de su aplicación.

    En Identity Toolkit, cuando los usuarios restablecen contraseñas, cambian direcciones de correo electrónico o verifican sus direcciones de correo electrónico, debe obtener un código OOB del servidor de Identity Toolkit y luego enviar el código a los usuarios por correo electrónico. Identity Platform envía correos electrónicos basados ​​en las plantillas que configura sin realizar acciones adicionales.

  6. Opcional: Si necesita acceder a los servicios de la plataforma de identidad en su servidor, instale el SDK Firebase.

    1. Se puede instalar el SDK del administrador Node.js con npm :

      $ npm init
      $ npm install --save firebase-admin
      
    2. En su código, puede acceder a Firebase usando:

      var admin = require('firebase-admin');
      var app = admin.initializeApp({
        credential: admin.credential.cert('path/to/serviceAccountCredentials.json')
      });
      

A continuación, complete los pasos de migración de la plataforma de su aplicación: Android , iOS , web .

Servidores y JavaScript

Cambios notables

Hay una serie de diferencias adicionales en la implementación web de Identity Platform de Identity Toolkit.

  • Gestión de sesiones web

    Anteriormente, cuando un usuario autenticado mediante el widget de Identidad Toolkit , una cookie se fijó para el usuario que se utiliza para arrancar la sesión . Esta cookie tenía una duración de dos semanas y se utilizaba para permitir al usuario utilizar el widget de gestión de cuentas para cambiar la contraseña y la dirección de correo electrónico. Algunos sitios utilizan esta cookie para autenticar todas las demás solicitudes de página en el sitio. Otros sitios utilizaron la cookie para crear sus propias cookies a través del sistema de gestión de cookies de su marco.

    SDK de cliente de la plataforma de identidad ahora manejan fichas Id y trabajo con backend de identidad Plataformas para mantener el fresco sesión. El backend expira las sesiones cuando se han producido cambios importantes en la cuenta (como cambios de contraseña de usuario). Los tokens de identificación no se configuran automáticamente como cookies en el cliente web y solo tienen una duración de una hora. A menos que desee sesiones de solo una hora, los tokens de identificación no son apropiados para usarse como la cookie para validar todas las solicitudes de su página. En su lugar, tendrá que definir un detector para cuando el usuario inicia sesión, obtener el token Id , validar el token , y crear su propia cookie a través del sistema de gestión de cookies de su marco.

    Deberá establecer la duración de la sesión de su cookie en función de las necesidades de seguridad de su aplicación.

  • Flujo de inicio de sesión web

    Anteriormente, los usuarios se redirigen a accountchooser.com cuando el inicio de sesión se inició a aprender qué identificador que el usuario desea utilizar. Flujo de la identidad de la plataforma de interfaz de usuario ahora comienza con una lista de métodos de inicio de sesión, incluyendo una opción de correo electrónico que va a accountchooser.com para la web y utiliza la API HintRequest en Android. Además, las direcciones de correo electrónico ya no son necesarias en la interfaz de usuario. Esto facilitará la compatibilidad con usuarios anónimos, usuarios de autenticación personalizada o usuarios de proveedores donde no se requieren direcciones de correo electrónico.

  • Widget de administración de cuentas

    Este widget proporciona una interfaz de usuario para que los usuarios cambien las direcciones de correo electrónico, cambien la contraseña o desvinculen sus cuentas de los proveedores de identidad. Actualmente se encuentra en desarrollo.

  • Botón / widget de inicio de sesión

    Ya no se proporcionan widgets como el botón de inicio de sesión y la tarjeta de usuario. Se pueden construir muy fácilmente usando la API de autenticación de Firebase.

  • No signOutUrl

    Tendrá que llamar firebase.auth.signOut() y manejar la devolución de llamada.

  • No oobActionUrl

    El envío de correo electrónico ahora lo maneja Identity Platform y está configurado en Firebase console.

  • Personalización de CSS

    La interfaz de usuario Reproductor utiliza material Diseño Lite estilo, lo que añade dinámicamente animaciones Material Design.

Paso 1: cambiar el código del servidor

  1. Si su servidor se basa en el token de Identity Toolkit (válido por dos semanas) para administrar las sesiones de los usuarios web, debe convertir el servidor para que use su propia cookie de sesión.

    1. Implementar un punto final para validar el ID de símbolo y el establecimiento de la cookie de sesión para el usuario. La aplicación cliente envía el token de ID de Firebase a este extremo.
    2. Si la solicitud entrante contiene su propia cookie de sesión, puede considerar que el usuario está autenticado. De lo contrario, trate la solicitud como no autenticada.
    3. Si no desea que ninguno de sus usuarios pierda sus sesiones de inicio de sesión existentes, debe esperar dos semanas para que caduquen todos los tokens de Identity Toolkit, o también realizar la validación de doble token para su aplicación web como se describe a continuación en el paso 3.
  2. A continuación, debido a que los tokens de Id son diferentes a los tokens de Identity Toolkit, debe actualizar su lógica de validación de tokens. Instalar el SDK del administrador de su servidor; o, si se utiliza un idioma no compatible con el SDK de administración, descargar una biblioteca de token de validación de JWT para su entorno y debidamente validar el token .

  3. Cuando realice las actualizaciones anteriores por primera vez, es posible que aún tenga rutas de código que dependan de los tokens de Identity Toolkit. Si tiene aplicaciones de iOS o Android, los usuarios deberán actualizar a la nueva versión de la aplicación para que funcionen las nuevas rutas de código. Si no desea obligar a sus usuarios a actualizar su aplicación, puede agregar una lógica de validación de servidor adicional que examine el token y determine si necesita usar el SDK de Firebase o el SDK de Identity Toolkit para validar el token. Si solo tiene una aplicación web, todas las nuevas solicitudes de autenticación se transferirán a Identity Platform y, por lo tanto, solo necesita usar los métodos de verificación del token de identificación.

Consulte la Referencia de API Web .

Paso 2: actualiza tu HTML

  1. Agregue el código de inicialización a su aplicación:

    1. Abra su proyecto en la consola de la nube .
    2. Por proveedores de página, haga clic en Aplicación de configuración detalles. Se muestra un fragmento de código que inicializa Identity Platform.
    3. Copie y pegue el fragmento de inicialización en su página web.
  2. Añadir autenticación Widget para su aplicación:

    <script src="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.js"></script>
    <link type="text/css" rel="stylesheet" href="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.css" />
    <!-- *******************************************************************************************
       * TODO(DEVELOPER): Paste the initialization snippet from:
       * Firebase Console > Overview > Add Firebase to your web app. *
       ***************************************************************************************** -->
    <script type="text/javascript">
      // FirebaseUI config.
      var uiConfig = {
        'signInSuccessUrl': '<url-to-redirect-to-on-success>',
        'signInOptions': [
          // Leave the lines as is for the providers you want to offer your users.
          firebase.auth.GoogleAuthProvider.PROVIDER_ID,
          firebase.auth.FacebookAuthProvider.PROVIDER_ID,
          firebase.auth.TwitterAuthProvider.PROVIDER_ID,
          firebase.auth.GithubAuthProvider.PROVIDER_ID,
          firebase.auth.EmailAuthProvider.PROVIDER_ID
        ],
        // Terms of service url.
        'tosUrl': '<your-tos-url>',
      };
    
      // Initialize the FirebaseUI Widget using Firebase.
      var ui = new firebaseui.auth.AuthUI(firebase.auth());
      // The start method will wait until the DOM is loaded.
      ui.start('#firebaseui-auth-container', uiConfig);
    </script>
    
  3. Elimina Identity Toolkit SDK de tu aplicación.

  4. Si confió en el token de ID de Identity Toolkit para la administración de sesiones, debe realizar los siguientes cambios en el lado del cliente:

    1. Después de firmar con éxito en la Identidad de la Plataforma, obtener una ID de símbolo llamando firebase.auth().currentUser.getToken() .

    2. Envíe el token de identificación al servidor backend, valídelo y emita su propia cookie de sesión.

      No confíe únicamente en la cookie de sesión cuando realice operaciones sensibles o envíe solicitudes de edición autenticadas a su servidor. Deberá proporcionar protección adicional contra la falsificación de solicitudes entre sitios (CSRF).

      Si el marco no proporciona protección CSRF, una manera de prevenir un ataque sería la de obtener un ID de símbolo para la firma-en usuario con getToken() e incluir el token con cada solicitud (la cookie de sesión también se enviará por defecto) . Luego, validaría ese token utilizando el SDK de administrador además de la verificación de cookies de sesión, que completó su marco de backend. Esto dificultará el éxito de los ataques CSRF, ya que el token de identificación solo se almacena mediante el almacenamiento web y nunca en una cookie.

    3. Los tokens de Identity Toolkit son válidos por dos semanas. Es posible que desee continuar emitiendo tokens durante las últimas dos semanas, o puede que desee alargarlo o acortarlo en función de los requisitos de seguridad de su aplicación. Cuando un usuario cierra la sesión, borre la cookie de sesión.

Paso 3: Actualice las URL de redireccionamiento de IDP

  1. En la consola de la nube , abra la Proveedores de sección.

  2. Para cada proveedor de inicio de sesión federado que admita, haga lo siguiente:

    1. Haga clic en el nombre del proveedor de inicio de sesión.
    2. Copie el URI de redireccionamiento de OAuth.
    3. En la consola para desarrolladores del proveedor de inicio de sesión, actualice el URI de redireccionamiento de OAuth.

Androide

Paso 1: agrega Identity Platform a tu aplicación con Firebase

  1. Abra la consola de la nube , y seleccione su proyecto de identidad Toolkit.

  2. En la página Proveedores, haga clic en los detalles de configuración de la aplicación, seleccione la ficha de Android, y luego haga clic en empezar en Firebase. En el diálogo Añadir Firebase, proporcionar el nombre del paquete y la firma de certificados de huellas dactilares de la aplicación y haga clic en Agregar aplicación. El google-services.json fichero de configuración a continuación, se descarga en su ordenador.

  3. Copie el archivo de configuración en el directorio raíz del módulo de la aplicación de Android. Este archivo de configuración contiene información sobre el proyecto y el cliente de Google OAuth.

  4. En el Proyecto de nivel build.gradle archivo ( <var>your-project</var>/build.gradle ), especifique el nombre del paquete de la aplicación en la defaultConfig sección:

    defaultConfig {
       …..
      applicationId "com.your-app"
    }
    
  5. También en el nivel de proyecto build.gradle archivo, agregar una dependencia para incluir los servicios de Google-plugins:

    buildscript {
     dependencies {
       // Add this line
       classpath 'com.google.gms:google-services:3.0.0'
     }
    }
    
  6. En la aplicación a nivel de su aplicación build.gradle archivo ( <var>my-project</var>/<var>app-module</var>/build.gradle ), añada la línea siguiente después de la Gradle Android plugin para permitir que el complemento de servicios de Google:

    apply plugin: 'com.android.application'
    // Add this line
    apply plugin: 'com.google.gms.google-services'
    

    Los servicios de Google-plugin utiliza el google-services.json archivo para configurar la aplicación para utilizar Firebase.

  7. También en la App nivel build.gradle archivo, agregue la dependencia de autenticación Firebase:

    compile 'com.google.firebase:firebase-auth:21.0.1'
    compile 'com.google.android.gms:play-services-auth:19.2.0'
    

Paso 2: quitar el SDK del kit de herramientas de identidad

  1. Eliminar la configuración de la identidad del kit de herramientas de AndroidManifest.xml archivo. Esta información se incluye en el google-service.json archivo y cargado por los servicios de Google-plugin.
  2. Elimina Identity Toolkit SDK de tu aplicación.

Paso 3: agrega FirebaseUI a tu aplicación

  1. Añadir FirebaseUI de autenticación para su aplicación.

  2. En su aplicación, reemplace las llamadas al SDK de Identity Toolkit por llamadas a FirebaseUI.

iOS

Paso 1: agrega Firebase a tu aplicación

  1. Agrega el SDK del cliente a tu aplicación ejecutando los siguientes comandos:

    $ cd your-project directory
    $ pod init
    $ pod 'Firebase'
    
  2. Abra la consola de la nube , y seleccione su proyecto de identidad Toolkit.

  3. En la página Proveedores, haga clic en Aplicación detalles de configuración, seleccione la ficha IOS, y luego haga clic en empezar en Firebase. En el diálogo Añadir Firebase, proporcionar el nombre del paquete y la firma de certificados de huellas dactilares de la aplicación y haga clic en Agregar aplicación. El google-services.json fichero de configuración a continuación, se descarga en su ordenador. En el diálogo Añadir Firebase, proporcionar paquete ID de la aplicación y la App Store ID y, a continuación, haga clic en Agregar aplicación. El GoogleService-Info.plist fichero de configuración a continuación, se descarga en su ordenador. Si tiene varios ID de paquete en su proyecto, cada ID de paquete debe ser conectado en la consola Firebase por lo que puede tener su propio GoogleService-Info.plist archivo.

  4. Copie el archivo de configuración a la raíz de su proyecto Xcode y agréguelo a todos los destinos.

Paso 2: quitar el SDK del kit de herramientas de identidad

  1. Retire GoogleIdentityToolkit de PODFILE de su aplicación.
  2. Ejecutar la pod install comandos.

Paso 3: agrega FirebaseUI a tu aplicación

  1. Añadir FirebaseUI de autenticación para su aplicación.

  2. En su aplicación, reemplace las llamadas al SDK de Identity Toolkit por llamadas a FirebaseUI.