首頁 常見問題 單一登入是什麼意思?

單一登入是什麼意思?

Jun 28, 2020 pm 04:38 PM
sso

單一登入SSO是指在多個應用系統中,使用者只需要登入一次就可以存取所有互信的應用系統,是企業業務整合的解決方案之一,其優點:1、提高使用者的效率;2、提高開發人員的效率;3、簡化管理。

單一登入是什麼意思?

很早期的公司,一家公司可能只有一個Server,慢慢的Server開始變多了。每個Server都要進行註冊登錄,退出的時候又要一個個退出。使用者體驗很不好!你可以想像一下,上豆瓣 要登入豆瓣FM、豆瓣讀書、豆瓣電影、豆瓣日記......真的會讓人崩潰的。我們想要另一種登入體驗:一家企業下的服務只要一次註冊,登入的時候只要一次登錄,退出的時候只要一次退出。怎麼做?

一次註冊。一次註冊不難,想一下是不是只要Server之間同步使用者資訊就行了?可以,但這樣描述不太完整,後續講用戶註冊的時候詳細說。實際上使用者資訊的管理才是SSO真正的困難,只是作為初學者,我們的困難在於實現SSO的技術!我們先討論實現手段。

一次登入與一次登出。回頭看看普通商場的故事,什麼東西才是保持登入狀態關鍵的東西?記錄器(session)?那種叫做cookie的紙張?寫在紙張上的ID? 是session裡面記錄的資訊跟那個ID,cookie不只是記錄ID的工具而已。客戶端持有ID,服務端持有session,兩者一起用來保持登入狀態。客戶端需要用ID來當作憑證,而服務端需要用session來驗證ID的有效性(ID可能過期、可能根本就是偽造的找不到對應的資訊、ID下對應的客戶端還沒有進行登入驗證等)。但session這東西一開始是每個server自己獨有的,豆瓣FM有自己的session、豆瓣讀書有自己的session,而記錄ID的cookie又是不能跨域的。所以,我們要實現一次登入一次退出,只需要想辦法讓各個server的共用一個session的信息,讓客戶端在​​各個網域下都能持有這個ID就好了。再進一步講,只要各個server拿到同一個ID,都能有辦法檢驗出ID的有效性、並且能得到ID對應的用戶資訊就行了,也就是能檢驗ID;

##單一登入實作方法

server端

以server群如何產生、驗證ID的方式大致分為兩種:

「共享Cookie」這個就是上面提到的共享session的方式,我倒覺得叫「共享session」來好一點,本質上cookie只是儲存session-id的介質,session-id也可以放在每一個請求的url裡。據說這種方式不安全,我沒去細究,哪位大神可以推薦下相關的資料,我後期補上。其實也是,畢竟session這項機制一開始就是一個server一個session的,把session拿出來讓所有server共享確實有點奇怪。

SSO-Token方式因為共享session的方式不安全,所以我們不再以session-id作為身分的識別。我們另外產生一種標識,把它取名SSO-Token(或Ticket),這種標識是整個server群唯一的,並且所有server群都能驗證這個token,同時能拿到token背後代表的用戶的信息。我們要討論的也是這種方式,一會上具體流程圖。

瀏覽器端

單一登入還有非常關鍵的一步,這一步跟server端驗證token的方式無關,用最早的「共享session」的方式還是現在的「token 」方式,身分識別到了瀏覽器端都要面臨這樣的一個問題:使用者登入成功拿到token(或者是session-id)後怎麼讓瀏覽器儲存和分享到其它網域下?同域名很簡單,把token存在cookie裡,把cookie的路徑設定成頂級網域下,讓所有子網域都能讀取cookie中的token。這就是共享cookie的方式(這才叫共享Cookie嘛,上面那個應該叫共享session)。例如:Google公司,google.com是他的頂級域名,信箱服務的mail.google.com和地圖服務的map.google.com都是它的子網域。但是,跨域的時候怎麼辦?谷歌公司還有一個域名,youtube.com,提供視訊服務  。

推薦教學:《

PHP



#

以上是單一登入是什麼意思?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用PHP實現高效穩定的SSO單一登錄 如何使用PHP實現高效穩定的SSO單一登錄 Oct 15, 2023 pm 02:49 PM

如何使用PHP實現高效穩定的SSO單一登入引言:隨著網路應用的普及,使用者面臨大量的註冊和登入流程。為了提高使用者體驗,並減少使用者的註冊和登入間隔,許多網站和應用程式開始採用單一登入(SingleSign-On,簡稱SSO)技術。本文將介紹如何使用PHP實現高效穩定的SSO單一登錄,並提供具體的程式碼範例。一、SSO單一登入原理SSO單一登入是一種身分認證的解決

PHP中的OAuth:建構一個多平台SSO解決方案 PHP中的OAuth:建構一個多平台SSO解決方案 Jul 28, 2023 pm 09:38 PM

PHP中的OAuth:建立一個多平台SSO解決方案隨著互聯網的快速發展,人們在多個平台中使用各種應用程式已成為常態。這就帶來了一個問題:如何實現不同平台間的單一登入(SSO)? OAuth(開放授權)成為了解決這個問題的優秀選擇。 OAuth是一個開放標準,允許使用者在不共享他們的憑證的情況下,授權第三方應用程式存取他們的網路資源。 OAuth可以用來建構一個多

探討PHP SSO單一登入的安全性與漏洞防範 探討PHP SSO單一登入的安全性與漏洞防範 Oct 15, 2023 pm 02:36 PM

PHPSSO單一登入的安全性與漏洞防範一、介紹隨著網路的發展,越來越多的網站實現了使用者驗證功能。但是,使用者每次登入不同的網站都需要輸入帳號和密碼,既不方便又容易遺忘。為了解決這個問題,單一登入(SingleSign-On,簡稱SSO)應運而生。 SSO是解決多個網站使用者身分認證的解決方案,使用者只需要登入一次,即可在其他網站上實現無縫存取。二、PH

聊聊基於Node實作單一登入(SSO)的方法 聊聊基於Node實作單一登入(SSO)的方法 Dec 06, 2022 pm 07:49 PM

什麼是單一登入?原理是什麼?怎麼實現?以下這篇文章帶大家了解單一登錄,並聊聊使用Node實作單一登入SSO的方法,希望對大家有幫助!

基於Swoole的SSO單一登入系統設計實踐 基於Swoole的SSO單一登入系統設計實踐 Jun 14, 2023 pm 04:08 PM

隨著網路的高速發展,越來越多的網站和應用程式需要實現使用者單一登入(SingleSign-On,SSO)功能,以提供更便利和安全的使用者體驗。在此背景下,基於Swoole的SSO單一登入系統逐漸成為了業界關注的熱點。本文將為大家介紹如何設計實作一個基於Swoole的SSO單一登入系統。一、SSO單一登入系統設計想法SSO單一登入系統目的是實現使用者在一個系統中登

Java JAAS 的最新最佳實踐 Java JAAS 的最新最佳實踐 Feb 23, 2024 pm 10:52 PM

一、JAAS概述JavaJAAS(JavaAuthenticationandAuthorizationService)是一個用於多系統單一登入(SSO)整合、基於角色的存取控制(RBAC)和授權管理的框架。 JAAS允許應用程式保護對資料或資源的訪問,並定義存取控制機制。二、JAAS最新最佳實踐1.使用JAAS進行身份驗證JAAS提供兩種主要的身份驗證方法:基於令牌的身份驗證:此方法使用令牌(例如,使用者名稱和密碼)來驗證使用者身份。基於認證的身份驗證:此方法使用認證(例如,數位憑證)來驗證使用者身分。 2

深入理解PHP SSO單一登入的工作原理與技術機制 深入理解PHP SSO單一登入的工作原理與技術機制 Oct 15, 2023 am 09:19 AM

深入理解PHPSSO單一登入的工作原理和技術機制隨著網路的快速發展,各種網站和應用程式的數量也日益增加。使用者為了造訪不同的網站和應用,需要分別註冊不同的帳號和密碼,給使用者帶來了不便和麻煩。為了解決這個問題,單一登入(SingleSign-On,SSO)應運而生。 SSO是一種授權認證系統,在使用者登入成功後,可以實現使用者在多個系統中的無縫存取。本文將深入理解P

PHP SSO單一登入在多系統整合中的實際應用案例 PHP SSO單一登入在多系統整合中的實際應用案例 Oct 15, 2023 am 11:45 AM

PHPSSO單一登入在多系統整合中的實際應用案例引言:隨著網際網路的快速發展和使用者需求的成長,越來越多的網站和應用程式需要實現使用者單一登入(SSO)功能。 PHP作為一種廣泛應用的伺服器端腳本語言,具有靈活、簡單且易於整合的特點,成為了許多開發者選擇的首選。本文將介紹一個基於PHP的單一登入解決方案,並透過實際案例來展示其在多系統整合中的應用。一、什麼是單點登