の検索結果 :

×

登録する お問い合わせ

Joomla OAuth クライアントと Laravel Passport シングル サインオン (SSO) の統合


統合 Laravel Passport シングルサインオン (Laravel Passport SSO) Joomla を使用して OAuth 2.0 プロトコル。 miniOrange Joomla OAuth / OpenID Connect シングル サインオン (SSO) プラグインにより、セットアップが簡単になります LaravelパスポートSSO Joomlaに導入し、 Joomla への安全なログインを有効にします。 その結果、ユーザーは、Laravel Passport OAuth プロバイダーの資格情報で認証することで Joomla にログインし、サイトにアクセスできます。
私たちの Joomla OAuth クライアント プラグイン Joomla OAuth シングル サインオン (OAuth および OpenID Connect) プラグイン用に提供される機能とプランの詳細については、Web ページをご覧ください。

前提条件: ダウンロードとインストール


  • Joomla サイトにログインします。 管理者 コンソール。
  • 左側のトグルメニューから、 をクリックします システムをクリックし、「インストール」セクションで「」をクリックします。 拡張機能.
  • 今後はクリック またはファイルを参照します ボタンをクリックして、前にダウンロードしたプラグイン ファイルを見つけてインストールします。
  • プラグインのインストールは成功しました。 今すぐクリックしてください miniOrange OAuth Serverプラグインの使用を開始する.
  • OAuthの構成 タブをクリックします。 追加
OAuth サーバーのセットアップを開始する

Joomla に OAuth SSO を設定する手順

1. 設定する コールバック/リダイレクト URL

  • OAuth プロバイダーを選択すると、次のページにリダイレクトされます。 ステップ1 [リダイレクトURL] タブ。 今すぐコピーしてください コールバック/リダイレクト URL OAuth サーバーの設定に使用します。 保存して次へ
  • Joomla への OAuth シングル サインオン SSO - リダイレクト URL のコピー
  • ダウンロード ララベルパスポート.
  • コマンドを使用してマシン上にlaravelプロジェクトを作成し、設定します。
  • composer create-project --prefer-dist laravel/laravel blog
  • Laravelパスポートをインストールする
  • composer require Laravel/Passport
  • config/app.php に移動し、以下のクラスを以下に追加します。 プロバイダーセクション app.php ファイル内
  • Laravel\Passport\PassportServiceProvider::class,
  • ラン PHP職人が移行する command
  • ラン php 職人パスポート:インストール command
  • に行く app/User.php モデルクラス、追加 HasApiTokens コードの特徴:-
  • 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', ]; }
  • この道に行きます app/Providers とファイル AuthServiceProvider.php を開きます。 加えます パスポート サービス コードへのルートを以下に示し、保存します。
  • 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();
    //
    }
    }
  • に行く config/auth.php 変更 API ドライバートークンへの パスポート パスポートライブラリを使用するので。
  • 'guards' => [
    'web' => [
    'driver' => 'session',
    'provider' => 'users',
    ],
    'api' => [
    'driver' => 'passport',
    'provider' => 'users',
    'hash' => false,
    ],
    ],
  • API ルートを作成できるデモ リソースを設定します。 ルート/api.php ファイルにソフトウェアを指定する必要があります。
  • 取得するため 顧客ID および クライアントシークレット 次のコマンドを実行します。 php 職人パスポート:クライアント 次のような質問が表示されます。
  • 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

  • UserInfo エンドポイントを手動で作成するには、 アプリ/HTTP/コントローラー、ファイルを作成します ユーザーコントローラー.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;
    }
    }
  • また、以下の行を追加して API ルートを登録します。 ルート/api.php ファイル:
  • Route::middleware('auth:api')->get('/user/get', 'UserController@get');

2. クライアント ID を設定し、 秘密

  • に行きます ステップ2 [クライアントIDとシークレット] Joomla OAuth クライアント プラグインのタブ、ここに貼り付けます 顧客ID, クライアントシークレット および 取得。 クリックします。 設定の保存
  • Joomla への OAuth シングル サインオン SSO - 構成の保存

2.1. スコープとエンドポイント

  • これで、OAuth クライアントを Laravel Passport (OAuth Provider) に接続できるようになり、エンドポイントは次のとおりです。
    ( 走る php 職人サーブ cmdで取得する あなたのlaravelサイトのURL (ドメイン)。 )
  • 範囲:
    openid メール プロファイル
    認可エンドポイント:
    http://your-laravel-site-url/oauth/authorize
    トークンエンドポイント:
    http://your-laravel-site-url/oauth/token
    ユーザー情報エンドポイント:
    http://your-laravel-site-url/api/user/get
    クライアント認証情報を設定します。
    両方 (ヘッダーと本文)
  • ユーザー属性マッピングは、ユーザーが Joomla に正常にログインできるようにするには必須です。以下の設定を使用して、Joomla のユーザー プロファイル属性を設定します。
  • に行く ステップ 3 [属性マッピング] タブをクリックして テスト構成
IdPメタデータをアップロード

  • 次のように、テスト構成の出力で属性を確認できます。
IdPメタデータをアップロード

  • 今すぐ ステップ 3 [属性マッピング] タブをクリックして属性名を選択します メールアドレスとユーザー名 ドロップダウンから選択します。 構成の完了
IdPメタデータをアップロード

  • さあ行く ステップ4 [SSO URL] タブ、ここにコピーします ログイン/SSO URL 指定された手順に従ってサイトに追加します。
IdPメタデータをアップロード

  • 次にログアウトして、このリンクを追加した Joomla サイトのページに移動します。ボタンを配置した場所にログイン リンクが表示されます。このボタンをクリックして SSO を実行します。


正常に設定されました OAuth クライアントとしての Joomla 達成するために Joomla Laravel シングル サインオン (SSO) ユーザー認証には Joomla を使用します。


このガイドでは、次のように構成することで、Joomla Laravel シングル サインオン (SSO) を正常に構成しました。 OAuthプロバイダーとしてのLaravel および OAuth クライアントとしての Joomla Joomla OAuth クライアント プラグインを使用します。このソリューションにより、Laravel ログイン資格情報を使用して Joomla サイトへの安全なアクセスを数分以内に展開する準備が整います。

追加リソース


メールでお問い合わせください joomlasupport@xecurify.com お客様の要件に関する迅速なガイダンス(電子メール/会議経由)が必要です。当社のチームは、お客様の要件に応じて最適なソリューション/プランの選択をお手伝いします。

こんにちは!

助けが必要? 私たちはここにいます!

サポート