Cookie ベースの SSO ログインの分析と実装、cookieso login_PHP チュートリアル
CookieベースのSSOログイン分析と実装、Cookiesoログイン
SSOとは何ですか?
現在、多くの大手インターネット企業が多くのアプリケーションを提供しています。たとえば、以下は Taobao のスクリーンショットです。

Tmall ジュファスアン Toutiao などはすべて別のアプリケーションであり、まったく異なるドメイン名を使用しているものもあります。ただし、淘宝網に登録されているすべてのユーザーは一連のユーザー名とパスワードを使用しているため、これらのシステムを直接切り替えると、ログインできなくなります。同じ時間です。 ステップ、経験は非常に貧弱です。別の例を挙げると、多くの企業には、人事システム、財務システム、勤怠システムなど、多数の社内システムがあります。従業員が 1 つのシステムにログインした場合、別のシステムにジャンプすることは依然として困難です。 ログインする必要があるので、非常に不快に感じます...
これに基づいて、
他のアプリケーション (同じドメイン内にない) に通知しますか? SSO(Single Sign On)
应运而生。当然,我们来现实这个需求的方法有很多种,使用Cookie是其中比较简单的方式,主要需要解决的问题是:Cookie
是不能跨域传递的,如何将一个域的Cookie
クロスドメインやその他の関連する問題を防ぐように設計されています。 so
,如果你对cookie
机制不太熟悉,请先google
,并大致了解为什么cookie
SSOは次の方法で実装できます
Cookieを共有する
サブシステムがすべて親ドメイン名の下にある場合、親ドメインの下に Cookie を植えることができます。これにより、同じドメイン名の下にある Cookie をブラウザで共有できるようになり、Cookie の暗号化および復号化アルゴリズムを通じてユーザーのセッション ID を取得できるようになります。したがって、SSO を実装します。
ただし、この方法にはいくつかの欠点があることが後でわかりました。
a. 同じドメイン名を持つすべてのシステムが SessionID を取得できますが、これは簡単に変更され、安全ではありません。
b. ドメインをまたいで使用することはできません。
チケット認証、現在採用している方法です
この SSO の実装には次の手順があります:
a. ユーザーが特定のサブシステムにアクセスすると、ログインしていない場合は SSO ログイン ページにジャンプするよう指示されることがわかります。 b. SSO がログインしたかどうかを確認します。 c. すでにログインしている場合は、コールバック アドレスに直接ジャンプし、認証チケットを返します。 d. ログインしていない場合、ユーザーがユーザー名/パスワードを正しく入力すると、認証が成功してコールバック アドレスにジャンプし、認証チケットが返されます。 e. サブシステムはチケットを取得し、SSO を呼び出してユーザー ID およびその他の情報を取得し、成功後にユーザーがログインできるようにします。
前に述べたように、
属性を渡す方法。
Http
プロトコルがコンテキストをある程度維持できるようにするために、server
は応答ヘッダーに Set-Cookie
を追加して、クライアント側では、Set-Cookie
の domain
フィールドを使用して、この cookie
が配置されているドメインを示します。 Cookie
来实现SSO
,主要是如何解决跨域问题。首先来谈谈Set-Cookie
中的domain
栗: server
が戻りヘッダーに Set-Cookie
を追加する場合は、www.cookieexm.com
にアクセスします。 を指定しない場合は、 <code>cookie
の場合、この cookie
のデフォルト ドメインは www.cookieexm.com
になります。つまり、www.cookieexm.com
にのみアクセスします。 > >クライアントはこの cookie
をサーバーに返します。
domain
を .cookieexm.com
として指定すると、クライアントは次のドメイン名にアクセスします: www.cookieexm.com www1.cookieexm.com cookieexm.com ***.cookieexm.com
は cookie
を返すことができます。 それで、結論を導き出します:
クライアントは Cookie のドメインと最後から一致します これに基づいて、SSO
ログインを実装できます。 Http
协议在一定程度上保持上下文,server
在响应的头部可以加入Set-Cookie
来写入一些数据到客户端,Set-Cookie
中的domain
字段用来表示这个cookie
所在的域。
栗子:
我们访问www.cookieexm.com
,如果server
在返回头部中加入了Set-Cookie
,如果不指定domain
,那么默认这个cookie
的域就是www.cookieexm.com
,也就是只有访问www.cookieexm.com
时客户端才会把这个cookie
返给服务端。
如果我们指定domain
为.cookieexm.com
,那么客户端在访问以下域名:www.cookieexm.com www1.cookieexm.com a.cookieexm.com ***.cookieexm.com
时都能够把cookie
返回。
所以,我们得出一条结论:客户端对cookie的domain的匹配是从结尾进行匹配的,有了这个基础,我们就可以实现我们的SSO
- http のみに設定します
- ログイン資格情報(チケットやユーザー名など)は暗号化する必要があります
- Cookie は個人データを保存できません
次のサブシステムが必要だとします
たとえば: **.a1.a2 **.b1.b2 **.c1.c2
间实现单点登录,首先我们需要一个专门用于单点登陆的认证系统(sso.s1.s2)。假设目前系统处于未登录状态,访问www.a1.a2

各ステップの機能を個別に見てみましょう:
説明: ビジネス認証システムは存在しない可能性があります。機密性が高くない一部のシステムは、
認証情報から直接取得できます。 SSO Authorization
重定向到业务系统,并把SSO
アプリケーションにアクセスする場合は、この時点で上記を続行します。 www.b1.b2
www.a1.a2
にアクセスする場合とは異なり、sso.s1
であるため、SSO 認証
にリダイレクトするときにユーザー名を入力する必要はありません。 > にはこの時点ですでに cookie
があり、cookie
で直接確認できます。 www.a1.a2
不同的是我们在重定向到SSO Authorization
时已经不需要再去输入用户名,因为sso.s1.s2
此时已经存有cookie
,直接用cookie
验证。
以上,就是一个简单的基于Cookie
上記は、Cookie
に基づくシンプルなログイン システムです。
これらの問題のいくつかは解決する必要があります
- 大量の一時信頼データを効率的に保存する方法
- 情報転送プロセスの改ざんを防ぐ方法
- SSO システムにログイン システムとログイン システムを信頼させる方法
最初の問題については、通常、memcached に似た分散キャッシュ ソリューションを使用できます。これにより、スケーラブルなデータ量のメカニズムを提供できるだけでなく、効率的なアクセスも提供できます
2 番目の質問では、デジタル証明書署名または md5 などの方法によるデジタル署名方法が一般的に採用されます。これには、SSO システムがログイン URL を返すときに検証する必要があるパラメーターを md5 で暗号化する必要があります。ログインする必要があるシステムが最終的に信頼関係を検証するときに、トークンが SSO システムに渡される必要があります。SSO システムは、トークンを検証することで情報が変更されたかどうかを識別できます。
最後の問題については、ホワイトリストを通じて解決できます。簡単に言うと、ホワイトリストにあるシステムのみが本番信頼関係を要求でき、同様に、ホワイトリストにあるシステムのみがログインから除外されます。
転載アドレス: http://www.jianshu.com/p/baa94d5f1673
。
ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP を使用して効率的かつ安定した SSO シングル サインオンを実現する方法 はじめに: インターネット アプリケーションの普及に伴い、ユーザーは多数の登録およびログイン プロセスに直面しています。ユーザー エクスペリエンスを向上させ、ユーザーの登録とログイン間隔を短縮するために、多くの Web サイトやアプリケーションでシングル サインオン (シングル サインオン、SSO と呼ばれる) テクノロジが採用され始めています。この記事では、PHP を使用して効率的で安定した SSO シングル サインオンを実装する方法を紹介し、具体的なコード例を示します。 1. SSO シングル サインオンの原理 SSO シングル サインオンは ID 認証ソリューションです

GitLab の権限管理とシングル サインオンの統合に関するヒントには、特定のコード サンプルが必要です。 概要: GitLab では、権限管理とシングル サインオン (SSO) は非常に重要な機能です。権限管理により、コード リポジトリ、プロジェクト、その他のリソースへのユーザー アクセスを制御でき、シングル サインオン統合により、より便利なユーザー認証および認可方法を提供できます。この記事では、GitLab で権限管理とシングル サインオン統合を実行する方法を紹介します。 1. 権限管理 プロジェクトのアクセス権限制御 GitLabではプロジェクトをプライベートに設定できます

シングルサインオン機能を実装するために安全な MySQL テーブル構造を設計するにはどうすればよいですか?インターネットの発展に伴い、ユーザーが異なるアプリケーションで異なるアカウントにログインすることが一般的な状況になりました。ユーザー エクスペリエンスと利便性を向上させるために、シングル サインオン (SSO) テクノロジーが登場しました。 SSO テクノロジーを使用すると、ユーザーは 1 回のログインで複数のアプリケーションにアクセスできるため、アカウントとパスワードを頻繁に入力する手間が省けます。シングルサインオン機能を実装するための安全な MySQL テーブル構造の設計

シングル サインオンに PHP と OAuth を使用する方法 最近の Web サイトやアプリケーションでは、シングル サインオン (SingleSign-On、SSO と呼ばれる) が非常に重要な機能になっています。ユーザーは 1 回のログインで複数のシステムにアクセスできるため、ユーザー エクスペリエンスと作業効率が大幅に向上します。この記事では、PHP と OAuth プロトコルを使用してシングル サインオンを実装する方法を紹介します。 1. OAuth の概要 OAuth は、ユーザーがサードパーティ アプリケーションのアクセスを承認できるようにするオープン標準の承認プロトコルです。

シングルサインオンとは何ですか?原理は何ですか?それを達成するにはどうすればよいでしょうか?次の記事では、シングル サインオンについて説明し、Node を使用してシングル サインオン SSO を実装する方法について説明します。

インターネットの急速な発展に伴い、より便利で安全なユーザー エクスペリエンスを提供するために、ユーザーのシングル サインオン (シングル サインオン、SSO) 機能を実装する必要がある Web サイトやアプリケーションがますます増えています。このような背景から、Swoole をベースとした SSO シングル サインオン システムが業界で徐々に話題になっています。この記事では、Swoole をベースにした SSO シングル サインオン システムを設計および実装する方法を紹介します。 1. SSO シングル サインオン システムの設計思想 SSO シングル サインオン システムの目的は、ユーザーがシステムにログインできるようにすることです。

PHPSSO シングル サインオンの動作原理と技術メカニズムを深く理解するインターネットの急速な発展に伴い、さまざまな Web サイトやアプリケーションの数も増加しています。異なるウェブサイトやアプリケーションにアクセスするには、ユーザーはそれぞれ異なるアカウントとパスワードを登録する必要があり、ユーザーに不便と煩わしさをもたらします。この問題を解決するために、シングル サインオン (SSO) が登場しました。 SSO は、ユーザーが正常にログインした後に複数のシステムにシームレスにアクセスできるようにする認可および認証システムです。この記事では、P について詳しく説明します。

PHPSession を使用してクロスドメイン シングル サインオンを実現する インターネット テクノロジの発展に伴い、シングル サインオン (シングル サインオン、SSO と呼ばれる) が多くの Web サイトやアプリケーションの要件になりました。 SSO を使用すると、ユーザーは複数の関連ドメインに再度ログインすることなく、1 回のログインで認証を行うことができます。この記事では、PHPSession を使用してドメイン間でのシングル サインオンを実装する方法を紹介します。シングル サインオンを実装するには、次の 3 つの主要コンポーネントが必要です。 認証センター (Authenticat
