ホームページ >よくある問題 >シングルサインオンとはどういう意味ですか?

シングルサインオンとはどういう意味ですか?

Guanhui
Guanhuiオリジナル
2020-06-28 16:38:456895ブラウズ

シングル サインオン SSO とは、複数のアプリケーション システムにおいて、ユーザーは一度ログインするだけで、相互に信頼されているすべてのアプリケーション システムにアクセスできることを意味し、エンタープライズ ビジネス統合のためのソリューションの 1 つです。ユーザーの効率性、2. 開発者の効率性の向上、3. 管理の簡素化。

シングルサインオンとはどういう意味ですか?

#会社の設立当初は、企業にサーバーは 1 台しかありませんでしたが、徐々にサーバーの数が増え始めました。各サーバーは登録してログインする必要があり、ログアウトする場合は 1 つずつログアウトする必要があります。ユーザーエクスペリエンスは非常に悪いです! Douban に行って、Douban FM、Douban Reading、Douban Movies、Douban Diary にログインすると、人々は本当に倒れてしまうでしょう。別のログイン エクスペリエンスが必要です。企業のサービスでは、登録が 1 回、ログイン時にログインが 1 回、ログアウト時にログアウトが 1 回だけ必要です。どうやってするの?

登録は 1 件です。一度登録すればそれほど難しくはありませんが、考えてみれば、サーバー間でユーザー情報を同期するだけではないでしょうか。はい、ただしこの説明は完全ではありませんので、後でユーザー登録について説明するときに詳しく説明します。実はSSOの本当の難しさはユーザー情報の管理なのですが、初心者にとって難しいのはSSOを実現するための技術です!まず実装手段について説明します。

1 回のログインと 1 回のログアウト。通常のショッピングモールの話を振り返ってみると、ログインし続けるために重要なことは何でしょうか?レコーダー(セッション)?クッキーという紙のこと?紙に書かれたIDとはセッションに記録された情報でありIDであり、Cookieは単なるIDを記録するツールではありません。クライアントは ID を保持し、サーバーはセッションを保持し、両方を併用してログイン状態を維持します。クライアントは ID を認証情報として使用する必要があり、サーバーはセッションを使用して ID の有効性を確認する必要があります (ID の有効期限が切れている可能性もあれば、まったく偽造されている可能性もあり、対応する情報が見つからない場合、クライアントは対応するログイン認証等を行っていないIDに対しては、ただし、セッションは最初は各サーバーに固有であり、Douban FM は独自のセッションを持ち、Douban Reading は独自のセッションを持ち、ID を記録する Cookie はクロスドメインにすることができません。したがって、ログインとログアウトを 1 回だけ行いたい場合は、各サーバーが同じセッション情報を共有し、クライアントが各ドメイン名でこの ID を保持できるようにする方法を見つけるだけで済みます。さらに言えば、各サーバーが同じ ID を取得している限り、ID の有効性をチェックし、その ID に対応するユーザー情報を取得する方法、つまり ID を確認する方法があります。 ## シングルサインオンの実装方法

サーバー側

サーバーグループがIDを生成・検証する方法により、大きく2種類に分けられます。

「共有 Cookie」 これは、上記のセッション共有の方法については、「共有セッション」と呼ぶのが適切だと思います 本質的に、Cookie はセッション ID を保存するための単なる媒体であり、セッション ID を配置することもできます各リクエストの URL に含まれます。この方法は安全ではないと言われているので詳しくは説明しませんでしたが、何かお勧めの情報があれば教えてください。結局のところ、セッションの仕組みは最初からセッションごとに 1 つのサーバーであり、セッションを取り出してすべてのサーバーで共有するのは確かに少し奇妙です。

SSO トークン方式 セッションを共有する方式は安全ではないため、ID 識別子として session-id を使用しなくなりました。別の識別子を生成し、それに SSO-Token (または Ticket) という名前を付けます。この識別子はサーバー グループ全体に固有であり、すべてのサーバー グループはトークンを検証し、トークンの背後にあるユーザーの情報を取得できます。これからお話しする内容もこのような形で、具体的なフローチャートは後ほどお示しします。

ブラウザ側

シングル サインオンには非常に重要な手順があります。この手順は、サーバー側でトークンを検証する方法とは何の関係もありません。最も初期の「共有セッション」メソッドが依然として現在の "token" " メソッドである場合、ID 識別子はブラウザ側でこのような問題に直面します。ユーザーが正常にログインしてトークン (またはセッション ID) を取得した後、ブラウザはそれをどのように保存して共有できるでしょうか。他のドメイン名は?同じドメイン名は非常にシンプルで、トークンを Cookie に保存し、Cookie のパスをトップレベル ドメイン名に設定して、すべてのサブドメインが Cookie 内のトークンを読み取れるようにします。これは Cookie を共有する方法です (これを共有 Cookie と呼びます。上記のものは共有セッションと呼ぶ必要があります)。例: Google、google.com はそのトップレベル ドメイン名で、電子メール サービスの mail.google.com と地図サービスの map.google.com は両方ともそのサブドメインです。しかし、クロスドメインに移行する場合はどうすればよいでしょうか? Google には、ビデオ サービスを提供する youtube.com というドメイン名もあります。

推奨チュートリアル: 「

PHP


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

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