ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用してシングル サインオンを実装する方法の分析

PHP を使用してシングル サインオンを実装する方法の分析

不言
不言オリジナル
2018-07-24 11:36:221800ブラウズ

この記事で共有した内容は、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 認証システムを共有します。

  • #統合認証システムは、SSO の前提条件の 1 つです。認証システムの主な機能は、ユーザーのログイン情報をユーザー情報データベースと比較してユーザーのログインを認証することであり、認証に成功すると、認証システムは統一認証マーク (チケット) を生成してユーザーに返す必要があります。さらに、認証システムはチケットを検証して、その有効性を判断する必要もあります。

    すべてのアプリケーション システムがチケット情報を識別して抽出できる

  • SSO 機能を実装し、ユーザーが 1 回だけログインできるようにするには、アプリケーション システムが既にチケット情報を取得しているユーザーを識別できる必要があります。ログインしました。アプリケーション システムはチケットを識別して抽出できる必要があり、認証システムとの通信を通じて現在のユーザーがログインしているかどうかを自動的に判断し、シングル サインオン機能を完了します。

関連する推奨事項:

php を使用して簡単なバックグラウンド登録とログインを実装する (コード付き)

以上がPHP を使用してシングル サインオンを実装する方法の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。