ホームページ >バックエンド開発 >PHPチュートリアル >メインドメイン全体に SSO を実装するためのアイデア_PHP チュートリアル

メインドメイン全体に SSO を実装するためのアイデア_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:38:291024ブラウズ

クロスメインドメイン、SSO実装のアイデア

同じメイン ドメイン (つまり、同じ第 1 レベル ドメイン名の下にあるすべてのサブドメイン名) の下にある複数のサーバー間で SESSION データを共有する方法はたくさんあるので、ここでは詳しく説明しません。

現在の重要な問題は、さまざまなメイン ドメインでの SSO の実装です。この問題は比較的複雑で実装可能ですが、その多くはいくつかの特別なソフトウェア システムによってサポートされています。 。 。

実際、SESSION をサポートするには COOKIE も必要です。COOKIE はクロスメイン ドメインをサポートしていません。つまり、SESSION はメイン ドメインを越えることができません。では、クロスメインドメインを実現するにはどうすればよいでしょうか? ? ?

これは、プロジェクトで SSO を実装するときに、みんなで議論するために突然思いついたもう 1 つの簡単な方法です

1. 3 つの主要なドメインがあると仮定します。そのうちの 1 つは、A.COM、B.COM、C.COM です。 A.COM は主にパスの検証を担当し (速度は比較的速い)、B.COM と C.COM は特定のアプリケーションであり、A.COM 独自のアプリケーションの一部も同様です。 、信頼 (ログイン) を得るには、A. COM にアクセスする必要があります

3. サブドメイン Passport.B.COM と Passport.C.COM を各メイン ドメインに割り当てます。それらの IP は、A.COM が配置されているホスト アドレスを指します。

4. ユーザーはログインします。 検証に合格した後、パラメータとして session_id を使用して、passport.B.COM、passport.C.COM に 1 つずつジャンプするジャンプ ルールを設定します (実際、これらのサブドメインは配列といくつかのパラメータを介して、ホスト A のデフォルト サイトに確立されます) 1 つずつすばやくジャンプできます)、PHP の header("Location:passport.B.COM/?sid=xxxxxxxx&i=0"); を使用して直接ジャンプできます。ジャンプすると、現在のメインドメインの session_id が渡されます。

以下にいくつかの考慮事項があります:
1. 各パスポートの割り当て。 。 。
2. 同じホスト上でジャンプすると、ジャンプの失敗につながる中間ジャンプ リンクのエラーを回避できます。

ローカルのシミュレートされたマルチマスター ドメインでのみテストしましたが、効果は良好です。インターネット ネットワークではまだテストしていません。時間があるときに試して、より良い SSO ソリューションを考えてください。 .



http://www.bkjia.com/PHPjc/735114.html

tru​​ehttp://www.bkjia.com/PHPjc/735114.html技術記事クロスメイン ドメイン、SSO 実装のアイデア 同じメイン ドメイン (つまり、同じ第 1 レベル ドメイン名の下にあるすべてのサブドメイン名) 内の複数のサーバーによって共有される SESSION データを実装するには、さまざまな方法があります。ここでは詳細には触れません! ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。