Ir al contenido
Otras versiones

Cargando…

Configurar Google Drive

La API de Google Drive se basa en la API de seguridad OAuth2.

El objetivo de esta API de seguridad es que una aplicación de terceros nunca tenga acceso a las credenciales del cliente. En su lugar, la aplicación se redirige a la página del propietario, donde se introducen las credenciales del cliente (en este caso, una página de Google).

Después se devuelve un token con un periodo de vigencia determinado que nos permite acceder a los recursos sin conocer las credenciales

Como se ha comentado, nuestra aplicación será redirigida a una página de Google donde se introducirán las credenciales del cliente. Como medida de seguridad adicional, no solo se necesitan las credenciales del usuario, sino que la petición de redirección debe incluir algunos parámetros que autentiquen a la aplicación como válida para interactuar con Google. Estos parámetros son el identificador de cliente y el secreto de cliente. ¿Dónde puede obtenerlos?

Para ello, vaya a la página para desarrolladores de Google.

Tras iniciar sesión con una cuenta válida, se mostrará la siguiente página:

El siguiente paso es crear un nuevo proyecto:

  • Haga clic en el botón “Create Project”
  • Rellene alguna información básica, como el nombre del proyecto.

Al final del proceso, el nombre del proyecto aparecerá en el menú anterior:

                             

Seleccione el proyecto para aplicarle cambios.

El primer paso es configurar las APIs de Google con las que la aplicación puede interactuar. Para ello, en la página principal deben habilitarse las APIs relacionadas con Google+ y Drive. Como mínimo se necesitan las siguientes:

  • Google+ API
  • Drive API
  • Contact API

Si no las encuentra directamente, puede utilizar el campo de texto de la parte superior para buscarlas.

El siguiente paso es crear las credenciales OAuth. Ahora, en el menú de la izquierda, haga clic en la opción credentials.

  • Después haga clic en “Create credentials” y seleccione “OAuth client ID”.

Se iniciará un asistente con los siguientes pasos:

  1. Seleccione Web application. Antes de esto debe configurarse la página de autorización: será la página que se muestre al cliente para aceptar la redirección. Los datos que se muestran son: - Nombre de la aplicación        - Logotipo del producto - Dirección de correo electrónico
  2. Tras rellenar los datos necesarios, se redirigirá a la página anterior y, después de seleccionar Web application, aparecerán los siguientes campos:

                                             

   3. Configure las Authorized redirect URLs, que son las URL desde las que google aceptará peticiones. Puede aceptar varias URL, una por línea. En este espacio rellene la siguiente URL:

  • http://host:port/OpenKM/frontend/googledrive/signin/google sustituyendo “host” y “port” por los datos correspondientes.

  • Tras rellenar estos datos, haga clic de nuevo en el botón “Create” y se mostrará una página con los datos generados, como puede verse en la imagen siguiente. Estos datos serán necesarios para configurar la instancia de OpenKM.

                    

    Notas sobre las URL de redirección

  • Google espera nombres de dominio reales dentro de la URI de redirección, o localhost. No se aceptan ni dominios falsos ni IP.
  • Una URL de redirección debe coincidir con la que envía el servidor. Esto significa que el nombre de host con el que se accede a OpenKM debe ser el mismo que en esta URL (localhost o el nombre de dominio real que sea), porque el servidor construye la URI de redirección a partir de él.

Estos son todos los pasos de configuración necesarios desde la consola de desarrolladores de google. Ahora, los parámetros de configuración creados (client id y client secret) se añadirán a la configuración de Configuration parameters de OpenKM.

Propiedad Tipo Descripción
google.drive.client.id String El client id de Google Drive.
google.drive.client.secret String El client secret de Google Drive.

Por último, para que se aplique el cambio, es necesario cerrar la sesión de OpenKM.

Puede ver este error al utilizar esta extensión:

ERROR org.springframework.social.connect.web.ProviderSignInController - Exception while completing OAuth 2 connection: org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://accounts.google.com/o/oauth2/token": java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty; nested exception is javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

Esto está relacionado con un problema con el almacén de claves cacerts de Java, pero no estamos seguros de si tiene que ver con la versión de Java (OpenJDK frente a la versión de Oracle).

Para solucionarlo:

  • Instale los certificados de Java desde el repositorio: sudo apt-get install ca-certificates-java
  • Modifique $TOMCAT_HOME/bin/setenv.sh y añada este parámetro: -Djavax.net.ssl.trustStore=/etc/ssl/certs/java/cacerts