ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用してシングル サインオンを実装する方法の分析
この記事で共有した内容は、PHP を使用してシングル サインオンを実装する方法を分析したもので、非常に参考になる内容であり、困っている友人の助けになれば幸いです。
シングル サインオン (シングル サインオン) は SSO と呼ばれ、現在最も人気のあるエンタープライズ ビジネス統合ソリューションの 1 つです。 SSO の定義は、複数のアプリケーション システムにおいて、ユーザーは一度ログインするだけで、相互に信頼されているすべてのアプリケーション システムにアクセスできることです。
「共有 Cookie」はセッションを共有する方法です。セッション ID、メディア、セッション ID を各リクエストの URL に配置することもできます。セッション メカニズムは 1 つのサーバーと 1 つのセッションです
SSO トークン メソッドは、セッションを共有する方法は安全ではないため、ID 識別子として session-id を使用しなくなりました。別の識別子を生成し、それに SSO-Token という名前を付けます。この識別子はサーバー グループ全体で一意であるため、すべてのサーバー グループは、同時に、トークンの取得はユーザーの情報の取得を意味します
単一署名には別の非常に重要な手順があります-in. この手順は、「サーバー側のトークン検証の方法はそれとは関係ありません。最も初期の「共有セッション」方法が使用されるか、現在の「トークン」方法が使用されるかに関係なく、ID 識別はこのような問題に直面します。ブラウザ側の問題: ユーザーは正常にログインしてトークン (またはセッション ID) を取得しましたが、ブラウザにそれを保存して他のドメイン名で共有させるにはどうすればよいでしょうか?同じドメイン名は非常にシンプルで、トークンを Cookie に保存し、Cookie のパスをトップレベル ドメイン名に設定して、すべてのサブドメインが Cookie 内のトークンを読み取れるようにします。これは Cookie を共有する方法です (これを共有 Cookie と呼びます。上記のものは共有セッションと呼ぶ必要があります)。例: Google、google.com はそのトップレベル ドメイン名で、電子メール サービスの mail.google.com と地図サービスの map.google.com は両方ともそのサブドメインです。しかし、クロスドメインに移行する場合はどうすればよいでしょうか? Google には、ビデオ サービスを提供する youtube.com というドメイン名もあります[2]。
ユーザーが初めてアプリケーション システムにアクセスするとき、まだログインしていないため、
次の案内が表示されます。 ;ユーザーが提供したログイン情報に従って、認証システムは本人確認を実行します。検証に合格した場合、認証資格情報 (チケット) を返します。ユーザーが他のアプリケーションにアクセスするときは、このチケットを持参してください。リクエストを受信した後、アプリケーションシステムは検証のためにチケットを認証システムに送信し、チケットの有効性を確認します。認証に合格した場合、ユーザは再度ログインすることなく、アプリケーションシステム2およびアプリケーションシステム3にアクセスできるようになる。
SSO を実装するには、次の主な機能が必要です。
すべてのアプリケーション システムは ID 認証システムを共有します。
すべてのアプリケーション システムがチケット情報を識別して抽出できる
php を使用して簡単なバックグラウンド登録とログインを実装する (コード付き)
以上がPHP を使用してシングル サインオンを実装する方法の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。