Procurar Resultados :

×

Registrar Contato

Integração do cliente Joomla OAuth com Laravel Passport Single Sign-On (SSO)


Integração de Login único do Laravel Passport (SSO do Laravel Passport) com Joomla usando OAuth2.0 Protocolo. O plugin miniOrange Joomla OAuth / OpenID Connect Single Sign-on (SSO) simplifica a configuração SSO do Laravel Passport para Joomla e Habilite o login seguro no Joomla. Como resultado, os usuários podem fazer login no Joomla e acessar o site autenticando-se com suas credenciais do Provedor OAuth do Laravel Passport.
Visite a nossa Plug-in de cliente Joomla OAuth página da web para saber mais sobre os recursos e planos que oferecemos para o plugin Joomla OAuth Single Sign-on (OAuth & OpenID connect).

Pré-requisitos: Download e instalação


  • Faça login no seu site Joomla Administrador console.
  • No menu de alternância à esquerda, clique em System, então na seção Instalar clique em Extensões.
  • Agora clique em Ou procurar arquivo botão para localizar e instalar o arquivo de plugin baixado anteriormente.
  • A instalação do plugin foi bem-sucedida. Agora clique em Comece a usar o plugin miniOrange OAuth Server.
  • Sob o Configurar OAuth guia, clique no ADD botão.
Introdução à configuração do servidor OAuth

Etapas para configurar o OAuth SSO no Joomla

1. Configurar URL de retorno/redirecionamento

  • Após selecionar seu provedor OAuth, você será redirecionado para o Etapa 1 [URL de redirecionamento] aba. Agora copie o URL de retorno/redirecionamento que usaremos para configurar o servidor OAuth e, em seguida, clicar no Salvar e Avançar botão.
  • OAuth Single Sign-On SSO no Joomla - Copiar URL de redirecionamento
  • Baixar Passaporte Laravel.
  • Crie um projeto Laravel na sua máquina usando o comando e configure-o:
  • composer create-project --prefer-dist laravel/laravel blog
  • Instalar o Laravel Passport
  • composer require Laravel/Passport
  • Vá para config/app.php e adicione a classe abaixo, seção do provedor no arquivo app.php
  • Laravel\Passport\PassportServiceProvider::class,
  • Execute php artesão migrar comando
  • Execute passaporte do artesão php: instalar comando
  • Acesse app/Usuário.php classe de modelo, adicionar HasApiTokens característica do 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', ]; }
  • Vá para este caminho app/Providers e abra o arquivo AuthServiceProvider.php, adicionar Passaporte rotas para o código de serviço são fornecidas abaixo e salve-as:
  • 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();
    //
    }
    }
  • Acesse config/auth.php alterar o API token de driver para passaporte pois usaremos a biblioteca Passport.
  • 'guards' => [
    'web' => [
    'driver' => 'session',
    'provider' => 'users',
    ],
    'api' => [
    'driver' => 'passport',
    'provider' => 'users',
    'hash' => false,
    ],
    ],
  • Agora configure um recurso de demonstração no qual você pode criar uma rota de API rotas/api.php arquivo.
  • Para obter ID do cliente e Segredo do cliente execute os seguintes comandos: passaporte do artesão php:cliente Ele fará as seguintes perguntas:
  • 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]:
    > http://localhost/oauth2_client/callback.php
    New client created successfully.
    Client ID: 1
    Client secret: zMm0tQ9Cp7LbjK3QTgPy1pssoT1X0u7sg0YWUW01

  • Para criar um endpoint UserInfo manualmente, no aplicativo/Http/Controladores, crie um arquivo UserController.php:
  • use App\Http\Controllers\Controller;
    use Illuminate\Http\Request;
    use App\User;
    class UserController extends Controller
    {
    public function get(Request $request)
    {
    $user_id = $request->get("uid", 0);
    $user = User::find($user_id);
    return $user;
    }
    }
  • Além disso, registre a rota da API adicionando a linha abaixo em rotas/api.php arquivo:
  • Route::middleware('auth:api')->get('/user/get', 'UserController@get');

2. Configurar ID do cliente e segredo

  • Vou ao Etapa 2 [ID do cliente e segredo] aba do plugin Joomla OAuth Client, aqui cole o ID do cliente, Segredo do cliente e Inquilino. Clique no Salvar configuração botão.
  • OAuth Single Sign-On SSO no Joomla - Salvar configuração

2.1. Escopo e Pontos Finais

  • Agora você pode conectar o cliente OAuth com o Laravel Passport (Provedor OAuth) e os seguintes endpoints são:
    ( Correr serviço php artisan em cmd para obter url-do-seu-site-laravel (Domínio). )
  • Escopo:
    perfil de e-mail openid
    Ponto final de autorização:
    http://your-laravel-site-url/oauth/authorize
    Ponto final do token:
    http://your-laravel-site-url/oauth/token
    Ponto final de informações do usuário:
    http://your-laravel-site-url/api/user/get
    Definir credenciais do cliente:
    Em ambos (no cabeçalho e no corpo)
  • O Mapeamento de Atributos do Usuário é obrigatório para permitir que os usuários façam login no Joomla com sucesso. Configuraremos os atributos do perfil de usuário para o Joomla usando as configurações abaixo.
  • Acesse Etapa 3 no Configurar OAuth guia e clique em Configuração de teste botão.
Carregar metadados do IdP

  • Você poderá ver os atributos na saída da configuração de teste da seguinte maneira.
Carregar metadados do IdP

  • Agora selecione o nome do atributo para E-mail e nome de usuário no menu suspenso. Em seguida, clique em Concluir configuração botão.
Carregar metadados do IdP

  • Agora vá para Etapa 4, copie aqui o URL de login/SSO e adicione-o ao seu site.
Carregar metadados do IdP

  • Agora, saia e acesse as páginas do seu site Joomla onde você adicionou este link. Você verá um link de login onde colocou o botão. Clique neste botão para realizar o SSO.


Você configurou com sucesso Joomla como cliente OAuth para alcançar Login único (SSO) do Joomla Laravel com Joomla para autenticação de usuários.


Neste guia, você configurou com sucesso o Joomla Laravel Single Sign-On (SSO) configurando Laravel como provedor OAuth e Joomla como cliente OAuth usando nosso plugin Joomla OAuth Client. Esta solução garante que você esteja pronto para implementar acesso seguro ao seu site Joomla usando credenciais de login do Laravel em minutos.

Recursos adicionais


Envie-nos um e-mail joomlasupport@xecurify.com para orientação rápida (por e-mail/reunião) sobre sua necessidade e nossa equipe ajudará você a selecionar a melhor solução/plano adequado de acordo com sua necessidade.

Olá!

Preciso de ajuda? Estamos bem aqui!

ajuda