ホームページ >バックエンド開発 >PHPの問題 >PHP シングル サインオンはどのように実装されますか?

PHP シングル サインオンはどのように実装されますか?

尚
オリジナル
2019-10-21 14:13:333046ブラウズ

PHP シングル サインオンはどのように実装されますか?

シングル サインオン (シングル サインオン) は SSO と呼ばれ、現在最も人気のあるエンタープライズ ビジネス統合ソリューションの 1 つです。 SSO の定義は、複数のアプリケーション システムにおいて、ユーザーは一度ログインするだけで、相互に信頼されているすべてのアプリケーション システムにアクセスできることです。

推奨書籍:php サーバー

シングル サインオンを実装する方法

サーバー側

「共有 Cookie」はセッションを共有する方法です。本質的に、Cookie はセッション ID を保存するための単なる媒体です。セッション ID は各リクエストの URL に配置することもできます。セッション メカニズムは 1 つのサーバーですおよび 1 つのセッション

SSO トークン方式は、セッションの共有方法が安全ではないため、アイデンティティ識別子としてセッション ID を使用しなくなりました。別の識別子を生成し、SSO トークンという名前を付けます。識別子は全体で使用されます サーバー グループは一意であるため、すべてのサーバー グループがトークン全体を検証できます トークンの取得と同時にユーザーの情報も取得することになります

ブラウザ側

単一ポイント ログインには非常に重要なステップがあります。このステップは、サーバー側でトークンが検証される方法とは何の関係もありません。最も初期の「共有セッション」メソッドを使用するか、現在の「トークン」メソッドを使用するかに関係なく、 ID の識別は、ブラウザ側でこのような問題に直面します。ユーザーが正常にログインしてトークン (またはセッション ID) を取得した後、ブラウザはどのようにしてそれを保存し、他のドメイン名と共有できるでしょうか。

同じドメイン名は非常に単純です。トークンを Cookie に保存し、Cookie のパスをトップレベル ドメイン名に設定して、すべてのサブドメインが Cookie 内のトークンを読み取れるようにします。これは Cookie を共有する方法です (これを共有 Cookie と呼びます。上記のものは共有セッションと呼ぶ必要があります)。

テクノロジーによって実装される仕組み

ユーザーが初めてアプリケーション システムにアクセスするとき、まだログインしていないため、認証システムに誘導されます。ログインする; ユーザーによる 提供されたログイン情報を使用して、認証システムは本人確認を実行します。検証に合格した場合、認証資格情報チケットがユーザーに返されます。

ユーザーが他のアクセスした場合アプリケーション システムがリクエストを受信した後、アプリケーション システムは、チケットの有効性を確認するための検証のためにチケットを認証システムに送信し、独自の認証のための資格情報としてこのチケットを持参します。認証に合格した場合、ユーザは再度ログインすることなく、アプリケーションシステム2およびアプリケーションシステム3にアクセスできるようになる。

SSO を実装するには、次の主な機能が必要です。

すべてのアプリケーション システムは ID 認証システムを共有します。

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

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

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

以上がPHP シングル サインオンはどのように実装されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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