の検索結果 :

×

Laravel Passport を OAuth プロバイダーとして使用する Laravel の OAuth シングル サインオン (SSO)

Laravel Passport を OAuth プロバイダーとして使用する Laravel の OAuth シングル サインオン (SSO)


Laravel OAuth シングルサインオン (SSO) プラグインは、laravel アプリケーションの OAuth シングル サインオンを有効にする機能を提供します。 シングルサインオンを使用すると、laravel アプリケーションとサービスにアクセスするために XNUMX つのパスワードだけを使用できます。 私たちのプラグインは、OAuth に準拠したすべての ID プロバイダーと互換性があります。 ここでは、Laravel Passport を OAuth プロバイダーとして考慮して、Laravel と Laravel Passport の間でシングル サインオン (SSO) を構成するためのステップバイステップのガイドを説明します。 Laravel OAuth クライアント シングル サインオン SSO プラグインで提供される他の機能について詳しく知りたい場合は、以下をご覧ください。 ここをクリック.

Laravel Oauth クライアントのインストール

  • コマンド プロンプト ウィンドウを開き、作業ディレクトリを次のディレクトリに変更します。 Laravelアプリのメインディレクトリ そして、以下のコマンドを使用してLaravel OAuthプラグインをインストールします。
  • composer require miniorange/oauth-laravel-free
  • パッケージが正常にインストールされたら、ブラウザで Laravel アプリに移動し、次のように入力します。 {laravel-application-domain}/mo_oauth_admin
  • パッケージによってデータベースのセットアップが開始され、管理者登録ページにリダイレクトされます。
  • miniOrange アカウントで登録またはログインして、プラグインを設定します。
  • LaravelシングルサインオンSSOプラグイン設定
  • ログイン後、次の画面が表示されます。 OAuthプロバイダーの設定 オプションで、 リダイレクト/コールバック URL。 後で Laravel Passport シングル サインオン (SSO) を設定するために必要になるため、手元に置いておいてください。
  • LaravelシングルサインオンSSO OAuthクライアント設定

Laravel Passport シングルサインオン (SSO) Laravel へのログインを設定する手順

1. Laravel PassportをOAuthプロバイダーとして構成する

  • 以下のコマンドを使用してlaravelパスポートをインストールします
  • composer require laravel/passport
  • に行く config / app.php そして以下のプロバイダーを追加します
  • Laravel\Passport\PassportServiceProvider::class
  • ラン PHP職人が移行する command
  • ラン php 職人パスポート:インストール command
  • に行く app/Models/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',
            ];
        }
        
        
        
  • 以下の Laravel バージョン 9.0 の場合: に行く app/Providers/AuthServiceProvider.php追加 Laravel\Passport\Passport を使用します。 、パスポート::ルート(); サービス コードへのルートは次のとおりです。
  •     
        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,
                ],
            ],
        
  • UserInfo エンドポイントを手動で作成するには、 アプリ/HTTP/コントローラー、ファイルを作成します ユーザーコントローラー.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;
            }
        }
        
  • また、以下の行を追加して API ルートを登録します。 ルート/api.php ファイル:
  • 
        //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');
        
  • 取得するため 顧客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]
         
        > Click Here to copy the Redirect URL.
          
        New client created successfully.
        
        Client ID: 1
        Client secret: zMm0tQ9Cp7LbjK3QTgPy1pssoT1X0u7sg0YWUW01
        


2. Laravel Passport用のLaravel OAuthクライアントプラグインを設定する

  • に行きます miniOrange Laravel OAuth SSO プラグインを選択してクリックします OAuthプロバイダーとしてLaravel Passportを選択します.
  • LaravelシングルサインオンSSO選択アプリ
  • 入力する 顧客ID & クライアントシークレット Laravelパスポートより App.
  • LaravelシングルサインオンSSO保存設定
  • 設定については、以下の表を参照してください。 対象領域 & エンドポイント .
  • 範囲: スコープフィールドは空のままにしておきます
    エンドポイントを承認します: http://your-laravel-site-url/oauth/authorize
    アクセストークンエンドポイント: http://your-laravel-site-url/oauth/token
    UserInfo エンドポイントの取得: http://your-laravel-site-url/api/user/get
  • クライアント認証情報は次のように送信できます。 ヘッダ or ボディ そしてまた送ります 状態 パラメータもそれに応じて入力します ログイン属性 あなたの要件ごとに。
  • LaravelシングルサインオンSSO選択アプリ
  • ソフトウェアの制限をクリック 設定を保存する ボタン。 その後、 をクリックします テスト構成 ボタン。 OAuth プロバイダーから送信された属性名と属性値のリストを取得します。
  • LaravelシングルサインオンSSO保存設定

3. SSO オプション

  • リンクを使用して、OAuth/OpenID プロバイダー経由でログインすることもできます。
  • このリンクの形式は次のとおりです。
    {laravel-application-domain}/ssologin.php?option=oauthredirect

このガイドでは、正常に構成されています Laravel Passport シングルサインオン (SSO) OAuth クライアントとしての Laravel。 このソリューションにより、Laravel サイトへの安全なアクセスを展開する準備が整います。 Laravelパスポートのログイン 数分以内に資格情報を取得します。

その他のリソース

こんにちは!

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

サポート
miniOrange サポートにお問い合わせください
成功

お問い合わせありがとうございます。

24 時間以内に当社からのご連絡がない場合は、お気軽にフォローアップ メールを送信してください。 info@xecurify.com