Vamos a actualizar nuestra Política de privacidad próximamente. Te recomendamos consultar el avance.

GitLab esencial

Omniauth: autenticación de usuarios de otros servicios

¡Prueba gratis durante 10 días

nuestros 1290 cursos !

Prueba gratis Mostrar modalidades de suscripción
GitLab no sólo permite que accedamos con las credenciales o usuarios que creamos internamente en su sistema, sino que también dispone de un sistema, Omniauth, que, con diferentes plugins, nos permite autenticarnos y acceder a través de diferentes servicios externos como Github, Bitbucket, Google, Facebook, etc.

Transcripción

Omniauth es un componente que incluye GitLab que sirve para autenticarnos a través de terceras partes y que además nos sirva tanto como para entrar a GitLab como para tomar proyectos de estas terceras partes que tenemos autenticación con ellos. Es decir, podemos utilizar plataformas como GitLab.com si es que nuestro sistema no está incluido allí y está hecho en un servidor privado, como Github o Bitbucket, para que GitLab nos reconozca y nos deje hacer login o también para poder importar los proyectos que aún tenemos almacenados allí. Lo que vamos a hacer va a ser utilizar una organización de Github para autenticarnos dentro de nuestro servidor. Yo tengo en Github una organización que se llama Organizaguay Si no conocéis las organizaciones de Github, básicamente, pues es una manera de agrupar usuarios. Son grupos de usuarios que pueden ser públicos o privados y utilizan mucho las empresas. Podéis aprovecharlas para dar permisos dentro de vuestro repositorio de GitLab a gente que está dentro de vuestra organización de Github o incluso podéis utilizarlas para importar los datos que tenéis ahí dentro en vuestro GitLab y hacerlos vuestros. Lo primero que hay que hacer es ir a vuestro servidor y editar el fichero GitLab.rb Está en vuestra ruta etc/gitlab. Buscar la sección Omniauth, que aparte de un enlace que tenéis para ir a la documentación de cómo funciona, tenéis una serie de opciones. La primera es la activación de Omniauth, que la tendremos que poner siempre como true. La siguiente es una lista de los servicios de autenticación a los que permites entrar con singlesimon. Es decir, todos los servicios que pongáis aquí dentro que estén soportados por Omniauth, permitirán que los usuarios registrados con esos servicios puedan acceder. Yo, en este caso, ya que vamos a utilizar Github, voy a permitir solo Github en esta lista. Esto puede ser una lista separada por comas, o podemos cambiarlo por el valor true para que todos los servicios que están soportados por Omniauth se puedan utilizar para hacerlo bien. La siguiente es si queremos que cualquiera que esté logueado en estos servicios entre automáticamente sin siquiera pasar por la pantalla de login. Esto en principio no nos interesa, salvo que utilicemos un sistema como saml que esté conectado en mlab, y que sean usuarios internos de nuestra empresa. También hay una opción que es bloquear los usuarios autocreados. Podríamos aceptar que cuando entremos a nuestro GitLab, con una cuenta de Github nos cree automáticamente un usuario, al igual que estas páginas web que tienen login con Google, o que tienen login con Facebook, o con cualquier otro servicio. Sin embargo, si nuestro repositorio es privado, quizá no nos interesa esto. Entonces, bloqueamos los usuarios creados automáticamente. También podemos enlazar si utilizáramos ldab o saml. Podríamos enlazar los usuarios. Hay una opción para que determinados proveedores, cada vez que alguien haga login con ellos, considere al usuario como externo, para que no puedan ver los repositorios privados. Y después es donde vienen los proveedores que vamos a activar. En este caso, solo vamos a activar Github. Este ejemplo que hay aquí arriba es un ejemplo de Google. No utilizan exactamente todos la misma sintaxis, así que tendráis que ir a vuestra documentación donde tenéis toda la información de Omniauth, buscáis los proveedores que están soportados, nos vamos a Github, nos pone todas las instrucciones y la pieza de código que tenemos que utilizar, que es muy sencilla. Tenemos que activar el proveedor de Github, que consiste en insertar esta pieza de código y conseguir una clave de aplicación y un secreto de aplicación. Para conseguirla, deberemos ir a la cuenta de Github con la que queremos autorizar, podría ser incluso nuestra cuenta personal si lo único que queremos hacer es autorizarnos para poder importar repositorios personales. Pero si estamos en una organización, debería ser la cuenta de la organización. Con la organización seleccionada, vamos a settings bajamos a las aplicaciones OAuth registramos una aplicación y le damos un nombre. Le damos la url de la aplicación. La describimos. Y la url de callback, en el caso de nuestro GitLab, es la misma que la url de aplicación. Registramos la aplicación. Y además le voy a poner un logo, que me parece que queda bonito. Actualizamos. Y vemos que tenemos tanto un ID como un secreto de cliente. Esto es lo que tenemos que insertar en el código que hemos puesto antes. Copiamos el ID. Lo insertamos en el application ID. Cogemos el secreto del cliente. Lo insertamos en el secreto. Guardamos, salimos y lanzamos: sudo, gitlab-ctl, reconfigure. Ya hemos reconfigurado nuestro GitLab. Vemos que se han realizado algunos cambios. Y en principio, ya deberíamos tener nuestro Omniauth activado. Podemos revisar n el área de administración que en efecto ya tenemos Omniauth en verde. y una pecualiaridad es que si ahora salimos de nuestro GitLab, salimos de nuestro usuario, vemos que ahora aparece un logo de Github. Este logo es el que nos permite hacer login en nuestra instancia utilizando la cuenta de Github. Si os fijáis, yo pincho, me manda a Github, y se hace una especie de autorización cruzada. Debo autorizar la aplicación. Pero no me deja hacer login porque el administrador tiene que permitir primero el acceso con esta cuenta que es autocreada. Esto lo tenéis que llevar desde la gestión de usuarios de dentro de Github. De momento, ya lo tenemos enlazado y ya podríamos empezar a enlazar los usuarios dentro de nuestro GitLab. Lo que hay que hacer ahora es vincular nuestra cuenta para que nos permita hacerlo bien. Podemos ir a nuestro perfil. Abrimos la configuración de nuestro perfil. Vamos a la cuenta. Y vemos que ahora tenemos un social sign-in que antes no teníamos aquí puesto, con un logo de Github. Con esto podemos conectar nuestra aplicación de GitLab con la de Github. Si pinchamos en el botón de Github para intentar hacer login automáticamente nos habrá pasado a través de la plataforma Github y nos habrá autenticado, nos ha reconocido y nos ha dejado el acceso. Esto no solo sirve para poder acceder, sino también para importar proyectos que tenemos al otro lado. Si queremos importar un proyecto que tengamos en Github, como ya lo tenemos autenticado y autorizado, y está agregado en Omniauth, nos podemos venir a Nuevo Proyecto pinchamos en el botón de Github, se conectará, las Apis intercambiarán la información necesaria, y me saldrá el listado de todos los proyectos que puedo importar con mi usuario. En concreto, puedo coger, por ejemplo, este proyecto que es mío me realiza la importación automática y ya lo tengo en mi repositorio, incluyendo las incidencias que tenía dadas de alta en Github.

GitLab esencial

Aprende a instalar y administrar GitLab, bien en tu propio servidor o en un servicio web gratuito o de pago, y cómo crear un perfil y generar tu primer proyecto en GitLab.

3:14 horas (47 Videos)
Actualmente no hay comentarios.
 
Fecha de publicación:27/10/2016

Este curso video2brain está disponible como descarga y para ser visualizado online. ¡Pero no hace falta que decidas entre las dos opciones! Al comprar el curso, disfrutarás de ambas posibilidades.

La descarga te permite ver las lecciones sin estar conectado/a a internet y supone una navegación fácil y ágil entre capítulo y capítulo. Si vas a trabajar en diferentes ordenadores o si no quieres descargarte el curso completo, entra en la web con tus datos de acceso y disfruta directamente de tus vídeos online. Te deseamos que disfrutes de este curso y te resulte de mucha utilidad.

Estamos a tu disposición si tienes cualquier tipo de duda o pregunta.