Resultados de la búsqueda :

×

Laravel Passport OAuth y OpenID conectan el inicio de sesión único (SSO) | Inicio de sesión SSO con pasaporte Laravel

Laravel Passport OAuth y OpenID conectan el inicio de sesión único (SSO) | Inicio de sesión SSO con pasaporte Laravel


Conseguir prueba gratuita

El complemento de inicio de sesión único (SSO) de WordPress OAuth y OpenID Connect permite iniciar sesión de forma segura en WordPress utilizando Laravel Passport como proveedor de OAuth y OpenID Connect. También puede configurar el complemento utilizando diferentes proveedores personalizados e IDP estándar. Admite funciones avanzadas de inicio de sesión único (SSO), como mapeo de atributos de perfil de usuario, mapeo de roles, etc. Aquí revisaremos una guía para configurar SSO entre WordPress y Laravel Passport. Al final de esta guía, los usuarios deberían poder iniciar sesión en WordPress desde Laravel Passport. Para saber más sobre otras funciones que ofrecemos en el complemento WP OAuth Single Sign-On (OAuth & OpenID Connect Client), puede haga clic aquí.

Requisitos previos: descarga e instalación


  • Inicie sesión en su instancia de WordPress como administrador.
  • Ir a WordPress Panel de control -> Complementos y haga clic en Añadir nuevo.
  • Buscar un WordPress Inicio de sesión único (SSO) de OAuth complemento y haga clic en Instalar ahora .
  • Una vez instalado, haga clic en Activar.

Pasos para configurar el inicio de sesión único (SSO) de Laravel Passport en WordPress

1. Configurar Laravel Passport como proveedor de OAuth

  • 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 pasaporte laravel
  • el compositor requiere laravel/pasaporte

  • Vaya a config/app.php y agregue el siguiente proveedor
  • Laravel\Pasaporte\PassportServiceProvider::clase

  • Ejecutar php artesano migrar comando
  • Ejecutar pasaporte artesanal php: instalar comando
  • Ve a aplicación/Usuario.php clase de modelo, agregar HasApiTokens rasgo al código:
  • 
         
        namespace App;
        use Laravel\Passport\HasApiTokens;
        use Illuminate\Contracts\Auth\MustVerifyEmail;
        use Illuminate\Foundation\Auth\User as Authenticatable;
        use Illuminate\Notifications\Notifiable;
         
        class User extends Authenticatable
        {
          use HasApiTokens, Notifiable;
         
          
            /**
             * The attributes that are mass assignable.
             *
             * @var array
            */
            protected $fillable = [
                'name', 'email', 'password',
            ];
         
            /**
             * The attributes that should be hidden for arrays.
             *
             * @var array
             */
            protected $hidden = [
                'password', 'remember_token',
            ];
         
            /**
             * The attributes that should be cast to native types.
             *
             * @var array
             */
           
            protected $casts = [
                'email_verified_at' => 'datetime',
            ];
        }
        
        
        
  • Ve a aplicación/Providers/AuthServiceProvider.php, Añade utilizar Laravel\Pasaporte\Pasaporte; , Pasaporte::rutas(); Las rutas al código de servicio se detallan a continuación:
  •     
        namespace App\Providers;
        use Laravel\Passport\Passport;
        use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
        use Illuminate\Support\Facades\Gate;
         
        class AuthServiceProvider extends ServiceProvider
        {
        
            /**
             * The policy mappings for the application.
             *
             * @var array
             */
            protected $policies = [
                // 'App\Model' => 'App\Policies\ModelPolicy',
            ];
         
            /**
             * Register any authentication / authorization services.
             *
             * @return void
             */
            public function boot()
            {
                $this->registerPolicies();
                Passport::routes();
                //
            }
        }
        
  • Ve a configuración/auth.php cambiar el abejas ficha de conductor para pasaporte ya que vamos a utilizar la biblioteca Passport.
  • 
        'guards' => [
                'web' => [
                    'driver' => 'session',
                    'provider' => 'users',
                ],
                'api' => [
                    'driver' => 'passport',
                    'provider' => 'users',
                    'hash' => false,
                ],
            ],
        
  • Para obtener ID de cliente y Secreto del cliente ejecute los siguientes comandos: pasaporte artesanal php:cliente Le hará las siguientes preguntas:
  • 
         Which user ID should the client be assigned to?:
         > 1
         
         What should we name the client?
         > Demo OAuth2 Client Account
         
         Where should we redirect the request after authorization?
         [http://localhost/auth/callback]
         
        > Click Here to copy the Redirect URL.
          
        New client created successfully.
        
        Client ID: 1
        Client secret: zMm0tQ9Cp7LbjK3QTgPy1pssoT1X0u7sg0YWUW01
        

  • Para crear un punto final UserInfo manualmente, en el aplicación / Http / Controladores, crea un archivo Controlador de usuario.php:
  • 
        <?php
        namespace App\Http\Controllers;
        use App\Http\Controllers\Controller;
        use Illuminate\Http\Request;
        use App\Models\User;
        use Auth;
        class UserController extends Controller
        {
            public function get(Request $request)
            {
              $user_id = Auth::id();
              $user = User::find($user_id);
              return $user;
            }
        }
        
  • Además, registre la ruta API agregando la siguiente línea en rutas/api.php archivo:
  • 
        //For Laravel below 8 and migrated to the 8 version:
        Route::middleware('auth:api')->get('/user/get', 'UserController@get');
         

    OR

    
        //For Laravel 8 new users:
        use App\Http\Controllers\UserController;                                                                       
         Route::middleware('auth:api')->get('/user/get', 'App\Http\Controllers\UserController@get');
        

Has configurado correctamente Pasaporte Laravel como proveedor de OAuth para lograr iniciar sesión con Laravel Passport en su sitio de WordPress.


2. Configure WordPress como cliente OAuth

  • Ve a Configurar OAuth pestaña y configurar Nombre de la aplicación, ID del cliente, secreto del cliente de proporcionado Puntos finales.
  • Consulte la siguiente tabla para configurar el alcance y puntos finales para Laravel Passport en el complemento.


    Identificación del cliente : desde el paso 3 anterior
    Secreto del cliente: desde el paso 3 anterior
    Autorizar punto final: http://your-laravel-site-url/oauth/authorize
    Punto final del token de acceso: http://your-laravel-site-url/oauth/token
    Obtener punto final de información del usuario: http://your-laravel-site-url/api/user/get
  • Haga clic en Guardar configuración para guardar la configuración.
  • Puntos finales de configuración de WordPress de inicio de sesión único (SSO) de Laravel Passport OAuth/OpenID

Has configurado correctamente WordPress como cliente OAuth para lograr iniciar sesión con Laravel Passport en su sitio de WordPress.


3. Mapeo de atributos de usuario

  • La asignación de atributos de usuario es obligatoria para permitir a los usuarios iniciar sesión correctamente en WordPress. Configuraremos los atributos del perfil de usuario para WordPress usando la siguiente configuración.
  • Encontrar atributos de usuario

    • Ve a Configurar OAuth pestaña. Desplácese hacia abajo y haga clic en Configuración de prueba.
    • Configuración de prueba de WordPress de inicio de sesión único (SSO) de Laravel Passport OAuth/OpenID
    • Verá todos los valores devueltos por su proveedor de OAuth a WordPress en una tabla. Si no ve el valor de Nombre, Apellido, Correo electrónico o Nombre de usuario, realice las configuraciones necesarias en su proveedor de OAuth para devolver esta información.
    • Resultado de la configuración de la prueba de WordPress de Laravel Passport Single Sign-On (SSO) OAuth/OpenID
    • Una vez que vea todos los valores en Configuración de prueba, vaya a Mapeo de atributos/roles pestaña, obtendrá la lista de atributos en un menú desplegable de Nombre de usuario.
    • Laravel Passport Inicio de sesión único (SSO) OAuth/OpenID WordPress atributo/asignación de funciones

4: Mapeo de roles [Premium]

  • Haga clic en “Configuración de prueba” y obtendrá la lista de nombres de atributos y valores de atributos enviados por su proveedor de OAuth.
  • Desde la ventana Configuración de prueba, asigne los nombres de atributos en la sección Asignación de atributos del complemento. Consulte la captura de pantalla para obtener más detalles.
  • Inicio de sesión único (SSO) de Laravel Passport: mapeo de atributos
  • Habilitar asignación de roles: Para habilitar la asignación de roles, debe asignar el atributo de nombre de grupo. Seleccione el nombre del atributo de la lista de atributos que devuelve los roles de su aplicación de proveedor.
    P.ej: Función

  • Inicio de sesión único (SSO) de Laravel Passport - configuración de prueba - mapeo de roles
  • Asigne el rol de WordPress al rol de Proveedor: Según su aplicación de proveedor, puede asignar la función de WordPress a sus funciones de proveedor. Puede ser estudiante, profesor, administrador o cualquier otro dependiendo de su aplicación. Agregue los roles de proveedor en Valor de atributo de grupo y asigne el rol de WordPress requerido delante de él en Rol de WordPress.

    Por ejemplo:, en la imagen de abajo. Al maestro se le ha asignado el rol de administrador y al estudiante el rol de suscriptor.
  • Inicio de sesión único (SSO) de Laravel Passport - configuración de prueba - mapeo de roles
  • Una vez que guarde la asignación, al rol de proveedor se le asignará el rol de administrador de WordPress después del SSO.
    Ejemplo: Según el ejemplo dado, los usuarios con el rol de "profesor" se agregarán como administradores en WordPress y el "estudiante" se agregará como suscriptor.

5. Configuración de inicio de sesión

  • La configuración en la pestaña Configuración de inicio de sesión único (SSO) define la experiencia del usuario para el inicio de sesión único (SSO). Para agregar un widget de inicio de sesión de Laravel en su página de WordPress, debe seguir los pasos a continuación.
    • Ve a Panel izquierdo de WordPress > Apariencias > Widgets.
    • Seleccione miniOrange OAuth. Arrastra y suelta en tu ubicación favorita y guarda.
    • Laravel Single Sign-on (SSO): configuración del botón de inicio de sesión para crear un nuevo cliente en WordPress
    • Ve a Panel izquierdo de WordPress > Apariencias > Widgets.
    • Seleccione miniOrange OAuth. Arrastra y suelta en tu ubicación favorita y guarda.
    • Laravel Single Sign-on (SSO): configuración del botón de inicio de sesión para crear un nuevo cliente en WordPress
    • Abra su página de WordPress y podrá ver el botón de inicio de sesión de Laravel SSO allí. Puede probar el inicio de sesión único (SSO) de Laravel ahora.
    • Asegúrese de que el "Mostrar en la página de inicio de sesión" La opción está habilitada para su aplicación. (Consulte la imagen a continuación)
    • Laravel Single Sign-on (SSO): configuración del botón de inicio de sesión para crear un nuevo cliente en WordPress
    • Ahora ve a tu Iniciar sesión en WordPress . (Por ejemplo, https://<su-dominio-wordpress>/wp-login.php)
    • Verá un botón de inicio de sesión de Laravel SSO allí. Una vez que haga clic en el botón de inicio de sesión, podrá probar el inicio de sesión único (SSO) de Laravel.
    • Laravel Single Sign-on (SSO): configuración del botón de inicio de sesión para crear un nuevo cliente en WordPress
En esta guía, ha configurado correctamente Inicio de sesión único (SSO) de Laravel Passport configurando Laravel Passport como proveedor de OAuth y WordPress como cliente de OAuth utilizando nuestro complemento WP OAuth Single Sign-On (OAuth & OpenID Connect Client). Esta solución garantiza que esté listo para implementar un acceso seguro a su sitio de WordPress utilizando las credenciales de inicio de sesión de Laravel Passport en cuestión de minutos.


Recursos adicionales


Envíenos un correo electrónico a oauthsupport@xecurify.com para obtener orientación rápida (por correo electrónico/reunión) sobre sus necesidades y nuestro equipo le ayudará a seleccionar la mejor solución/plan adecuado según sus necesidades.

¡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