Laravelパスポートを使用したSSO



Sso With Laravel Passport



解決:

これは私がリソース指向のアプローチと呼んでいるもので、すべてのクライアント(app1、app2 ...)は、天気予報を要求するユーザーがリソースへのアクセスを許可されているかどうかを知りたいと思っています...

ここでは、すべての認証ロジックをoauthにシフトし、要求するすべてのアプリをOAuthに依存させる必要があります。このように、ユーザーがアプリにリソースへのアクセスを要求した場合、次の場合になります。



  1. トークンが存在する場合、アプリは指定されたトークンを検証するようにoauthサーバーに要求し、trueが見つかった場合、アプリはユーザーにアクセスを提供します。

  2. トークンが存在しない場合は、クレデンシャルを要求することで解決できます。アプリはユーザーデータをoAuthサーバーに転送し、トークンで応答することを検証します。



私の経験によると、私はこのアプローチを実装するために使用し、LaravelPassportは認証システムの上にある抽象化レイヤーだと思います。必要に応じて成形できます。これ以上の拡張と進歩はほとんどありませんが、これはSSOの上にある基本的なレイヤーとして機能します。


パスポートでこれを達成することができますが、いくつかのステップが多くないか不足しているので、あなたは例について正しいです。

ID.mysite.comと通信してユーザーデータ(トークン、スコープなど、ID)を取得する新しいミドルウェアをApp1およびApp2側に作成すると、トークンが有効かどうかが検証されます。



パスポートサーバー側では、トークンが有効かどうかを返すエンドポイントと追加情報が必要です。

パスポートサーバーへのリクエストが多すぎるのを避けるために、アクセストークンのTTLを取得するサービスを作成し、それをユーザーデータのApp1またはApp2のキャッシュ時間として設定することをお勧めします。