Resultados de la búsqueda :

×

Inicie sesión SSO en Drupal utilizando Laravel como proveedor de OAuth/OpenID Connect


La integración de Drupal OAuth/OpenID Connect SSO permite el SSO entre el sitio Drupal y Laravel Passport. Esta guía de instalación ayuda a configurar Inicio de sesión único (SSO) entre el sitio Drupal y Laravel Passport utilizando el módulo OAuth/OpenID Connect. Este módulo es compatible con Drupal 7, Drupal 8, Drupal 9 y Drupal 10. Cuando incorpora el módulo OAuth/OpenID Connect con el sitio Drupal, puede iniciar sesión en el sitio Drupal sin problemas con las credenciales de Laravel Passport.

Pasos de la instalación:


  • Descarga el módulo:
    el compositor requiere 'drupal/miniorange_oauth_client'
  • Navegue hasta ampliar menú en su consola de administración de Drupal y busque Configuración del cliente miniOrange OAuth utilizando el cuadro de búsqueda.
  • Habilite el módulo marcando la casilla de verificación y haga clic en el Instalar del botón.
  • Puede configurar el módulo en:
    {BaseURL}/admin/config/people/miniorange_oauth_client/config_clc
  • Instale el módulo:
    drush en drupal/miniorange_oauth_client
  • Limpiar la caché:
     drush cr
  • Puede configurar el módulo en:
    {BaseURL}/admin/config/people/miniorange_oauth_client/config_clc
  • Navegue hasta ampliar menú en su consola de administración de Drupal y haga clic en Instalar el nuevo módulo.
  • Instalar Drupal Inicio de sesión de OAuth y OpenID Connect: inicio de sesión SSO del cliente OAuth2 módulo ya sea descargando el zip o desde la URL del paquete (tar/zip).
  • Haga clic en Habilitar módulos recién agregados.
  • Habilite este módulo marcando la casilla de verificación y haga clic en instalar del botón.
  • Puede configurar el módulo en:
    {BaseURL}/admin/config/people/miniorange_oauth_client/config_clc

Configure Drupal como cliente OAuth:

  • En el sitio Drupal, navegue hasta Configuración -> Configuración del cliente miniOrange OAuth -> Configurar OAuth .
  • Drupal como inicio de sesión único de OAuth/OpenID Connect - Configuración de navegación - Configuración del cliente miniOrange OAuth
  • Seleccione Proveedor OAuth 2.0 personalizado del desplegable Seleccionar aplicación en el Menú despegable.
  • Copia el URL de devolución de llamada/redireccionamiento y tenlo a mano.
  • Note: Si su proveedor solo admite HTTPS URL de devolución de llamada/redireccionamiento y tiene un sitio HTTP, asegúrese de habilitar la opción 'Aplicar URL de devolución de llamada HTTPS' casilla de verificación en la parte inferior de la pestaña.

  • Ingrese Laravel como nombre de la aplicación en el Nombre que se ve en la pagina campo de texto.
  • Drupal como OAuth/OpenID Connect Inicio de sesión único - En Configurar OAuth - Seleccione Proveedor OAuth 2.0 personalizado de la aplicación seleccionada - Copiar devolución de llamada

Cree una aplicación SSO OAuth/OpenID en Laravel Passport:

  • Cree un proyecto laravel en su máquina local usando el comando y configúrelo:
    compositor crear-proyecto --prefer-dist laravel/laravel blog
  • Cambie el directorio a blog usando blog del cd dominio. Instalar el pasaporte laravel.
    el compositor requiere laravel/pasaporte
  • Vaya a config/app.php y agregue el siguiente proveedor
    Laravel\Pasaporte\PassportServiceProvider::clase
  • Ejecute los siguientes comandos
    php artesano migrar
    pasaporte artesanal php: instalar
  • Ve a aplicación/Usuario.php clase de modelo, agregar HasApiTokens rasgo al código:
        aplicación de espacio de nombres;
        utilice Laravel\Passport\HasApiTokens;
        utilice Illuminate\Contracts\Auth\MustVerifyEmail; utilice Illuminate\Foundation\Auth\User como autenticable; utilice Illuminate\Notificaciones\Notificable; clase Usuario extiende Autenticable {
          utilizar HasApiTokens, Notificables;
         
          
            /** * Los atributos que se pueden asignar en masa. * * @var matriz */
            
            protegido $rellenable = [ 'nombre', 'correo electrónico', 'contraseña', ];
         
            /** * Los atributos que deben ocultarse para las matrices. * * @var matriz */
            protegido $ oculto = [ 'contraseña', 'recordar_token', ];
         
            /** * Los atributos que se deben convertir a tipos nativos. * * @var matriz */
           
            protegido $casts = [ 'email_verified_at' => 'fecha y hora', ]; }
        
  • Ve a aplicación/Providers/AuthServiceProvider.php, Añade utilizar Laravel\Pasaporte\Pasaporte; , Pasaporte::rutas(); rutas al código de servicio:
        aplicación de espacio de nombres\proveedores;
        utilizar Laravel\Pasaporte\Pasaporte;
        utilice Illuminate\Foundation\Support\Providers\AuthServiceProvider como proveedor de servicios; utilice Iluminar\Soporte\Fachadas\Puerta; clase AuthServiceProvider extiende ServiceProvider {
        
            /** * Las asignaciones de políticas para la aplicación. * * @var matriz */
            protected $policies = [ // 'Aplicación\Modelo' => 'Aplicación\Políticas\ModelPolicy', ];
         
            /** * Registre cualquier servicio de autenticación/autorización. * * @return void */
            arranque de función pública() { $this->registerPolicies();
                Pasaporte::rutas();
                // } }
       
  • Ve a configuración/auth.php y cambiar el API ficha de conductor para El pasaporte ya que vamos a utilizar la biblioteca de Passport.
        'guardias' => [ 'web' => [ 'conductor' => 'sesión', 'proveedor' => 'usuarios', ], 'api' => [
                    'conductor' => 'pasaporte',
                    'proveedor' => 'usuarios', 'hash' => falso, ], ],
        

Integrando Drupal con Laravel:

  • Navegue hasta el portal de Laravel y ejecute los siguientes comandos para obtener ID de cliente y Secreto del cliente:
    pasaporte artesanal php: cliente
  • Le hará las siguientes preguntas:
        ¿A qué ID de usuario se debe asignar el cliente?: > 1 ¿Cómo debemos nombrar al cliente?: > Cuenta de cliente Demo OAuth2 ¿A dónde debemos redirigir la solicitud después de la autorización? > Pegue la URL de devolución de llamada/redireccionamiento. Nuevo cliente creado exitosamente. ID de cliente: 1 Secreto de cliente: zMm0tQ9Cp7LbjK3QTgPy1pssoT1X0u7sg0YWUW01
        
  • Copie el ID del cliente y el valor del secreto del cliente.
  • Ir a Drupal Configurar OAuth pestaña y pegue el copiado ID de cliente y Secreto del cliente en los respectivos campos de texto.
  • En la pestaña Configurar OAuth de Drupal, proporcione el ID del cliente y el secreto del cliente de la aplicación Laravel Passport.
  • Para crear un punto final UserInfo manualmente, en el aplicación / Http / Controladores, crea un archivo Controlador de usuario.php:
        <?php
        espacio de nombres App\Http\Controllers;
        utilice App\Http\Controllers\Controller;
        utilice Illuminate\Http\Request;
        utilizar Aplicación\Modelos\Usuario;
        utilizar autenticación;
        clase UserController extiende el controlador
        {
            función pública get(Solicitud $solicitud)
            {
                $user_id = Autenticación::id();
                $usuario = Usuario::buscar($user_id);
                devolver $usuario;
            }
        }
        
  • Registre la ruta API agregando la siguiente línea en rutas/api.php archivo:
        //Para Laravel por debajo de 8 y migrado a la versión 8:
        Ruta::middleware('auth:api')->get('/usuario/get', 'UserController@get');
            OR
        //Para nuevos usuarios de Laravel 8:
         utilice App\Http\Controllers\UserController; Ruta::middleware('auth:api')->get('/usuario/get', 'App\Http\Controllers\UserController@get');
        
  • Copie y pegue el siguiente alcance y puntos finales en la pestaña Configurar OAuth de Drupal.
    Lo que hacemos perfil de correo electrónico openid
    Autorizar punto final / oauth / autorizar
    Punto final del token de acceso /autorización/token
    Obtener punto final de información de usuario /api/usuario/get
  • En la pestaña Configurar OAuth de Drupal, proporcione el alcance y los puntos finales de la aplicación Laravel Passport
  • Haga clic en el Guardar configuración del botón.

Conexión de prueba entre Drupal y Laravel

  • Haga clic en el Realizar configuración de prueba para verificar la conexión de inicio de sesión único (SSO) entre Drupal y Laravel.
  • Prueba de la conexión de inicio de sesión único entre Drupal y Laravel Passport: haga clic en Realizar configuración de prueba
  • En una ventana emergente de Conexión de prueba, si no tiene una sesión activa en Laravel en el mismo navegador, se le pedirá que inicie sesión en su cuenta de Laravel. Después de iniciar sesión exitosamente en una cuenta de Laravel, se le proporcionará una lista de atributos que se reciben del Pasaporte Laravel.
  • Seleccione Atributo de correo electrónico desde el menú desplegable en el que se obtiene el correo electrónico del usuario y haga clic en el Terminado del botón.
  • Para obtener una lista de atributos que se reciben de Laravel: seleccione Atributo de correo electrónico en la lista desplegable

Ten en cuenta que: Es obligatorio asignar el atributo de correo electrónico para que su inicio de sesión funcione.

¡Felicidades! Ha configurado correctamente Laravel Passport como proveedor OAuth/OpenID y Drupal como cliente OAuth.

¿Cómo realizar el SSO?

  • Ahora, abra un nuevo navegador/ventana privada y vaya a la página de inicio de sesión de su sitio Drupal.
  • Haga clic en el Iniciar sesión usando Laravel enlace para iniciar el SSO desde Drupal.
  • Si también desea agregar el enlace SSO a otras páginas, siga los pasos que se indican en la imagen a continuación:
  • Drupal OAuth OpenID Single Single-On: agregue un enlace de inicio de sesión en una página diferente del sitio Drupal

¿Necesita Ayuda?

Si tiene algún problema durante la configuración o si desea algunas funciones adicionales, contáctenos en drupalsupport@xecurify.com.

Características adicionales:

Solución de Problemas:

Obteniendo error: 'Nombre de usuario no recibido. Verifique su configuración de Asignación de Atributos.' O aparece el error: 'Correo electrónico no recibido. Verifique su configuración de Asignación de Atributos.'
 

Siga los pasos mencionados AQUÍ

Recibo el mensaje "No se encontraron credenciales de cliente en los encabezados o en el cuerpo" cuando intento realizar la configuración de prueba.
 

Siga los pasos mencionados AQUÍ

Después de hacer clic en cerrar sesión en Drupal, me envía de regreso a la página de inicio de Drupal. Sin embargo, cuando intento iniciar sesión con otro usuario, no me pide que inicie sesión, sino que inicia sesión automáticamente con el mismo usuario.
 

La funcionalidad de cierre de sesión que mencionó aquí es el comportamiento predeterminado de un módulo. Te cierra la sesión de Drupal pero no de tu Aplicación/Proveedor. Para permitir que el módulo cierre sesión en su cuenta de proveedor/aplicación (lo que está buscando), debe realizar las siguientes configuraciones: [Más información]

Compré el módulo Drupal pago y lo reemplacé con el módulo gratuito, pero aún no puedo utilizar las funciones pagas.
 

Como actualizó a una de nuestras versiones pagas del módulo Drupal y reemplazó el módulo gratuito por el pago, primero debe activar el módulo pago. Consulte los pasos a continuación. [Conozca más]

Preguntas más frecuentes (FAQ)
 Casos de Estudio
miniOrange ha atendido con éxito los casos de uso de más de 400 clientes confiables con sus soluciones Drupal altamente flexibles y personalizables. No dude en consultar algunos de nuestros estudios de casos únicos utilizando este liga.
 Otras soluciones
No dude en explorar otras soluciones Drupal que ofrecemos esta página. Las soluciones populares utilizadas por nuestros clientes de confianza incluyen autenticación de dos factores: 2FA, seguridad del sitio web, autenticación API REST y JSON, aprovisionamiento de usuarios y sincronización. 
  Soporte activo 24 horas al día, 7 días a la semana
Los desarrolladores de Drupal de miniOrange ofrecen soporte rápido y activo para sus consultas. Podemos ayudarlo desde elegir la mejor solución para su caso de uso hasta implementar y mantener la solución.
¡Hola!

¿Necesitas ayuda? ¡Estamos aquí!

SOPORTE
Póngase en contacto con el soporte técnico de miniOrange
comercial

Gracias por su consulta.

Si no recibe noticias nuestras dentro de las 24 horas, no dude en enviar un correo electrónico de seguimiento a info@xecurify.com