2009-07-24 61 views
3

我一直在尋找一個模式,並試圖找出此表可用於:什麼是「單點登錄」表以及爲什麼需要此列表?

CREATE TABLE "single_sign_ons" 
"token" VARCHAR(64) NOT NULL, 
"ip" VARCHAR(32) NOT NULL, 
"expired_at" DATETIME NOT NULL, 
"one_time" VARCHAR(64), 
"created_at" DATETIME, 
"updated_at" DATETIME, 
"user_id" INTEGER, 
PRIMARY KEY("token")); 

是什麼,爲什麼會出現這種表的作者包括這些列用於此目的的「單點登錄」?

+0

我不知道爲什麼IP地址在那裏?您可以從一個IP地址登錄,穿過街道喝杯咖啡並恢復會話(假設咖啡店有不同的IP)。但是,也許這是爲了防止這種情況發生在第一位:) – NoChance 2017-01-25 07:32:16

回答

4

它是用戶登錄會話的持有者。我相信,當用戶登錄以驗證他們的會話仍處於活動狀態時,將使用該表,並允許他們在不登錄的情況下訪問不同的服務器/站點。

我假設在第一次登錄時,用戶的會話將被稱爲是新的,所以用戶會被詢問憑據。然後在這張表中輸入用戶的ID,IP地址,創建日期和令牌。該令牌隨後將附加到用戶的會話並用於後續登錄。然後

其他進程將收到該令牌作爲通信的一部分,並檢查該表以確保會話仍然有效。每次檢查會話時,更新字段都會更改,以便知道用戶處於活動狀態。

還有更多的邏輯會定期檢查表並使最近未更新的任何會話行過期。無論這個系統「足夠」。然後,使用該令牌的後續訪問請求將註冊到期,查詢憑證並使用新令牌建立新行。

2

Single Sign On是一種Web站點的身份驗證技術。它允許您登錄到一個位置,並通過讓站點檢查身份驗證服務器來查看該用戶是否已登錄,從而進行自動身份驗證。它使用令牌跟蹤此信息。它的行爲有點像Kerberos爲本地登錄所做的。

Single Sign On

爲了澄清,但它使你不必守在記錄和維護跨多個業務獨立覈算。

+1

SSO不僅適用於網站**。當我登錄到Windows PC時,我的憑證可以保留並授予我對其他資源(如網絡文件共享和SQL Server數據庫)的訪問權限。我也會稱之爲SSO。 – 2009-07-24 17:07:06

+0

你說得對。單點登錄是一個通用術語,但我只是在Web環境中處理它。我不需要登錄到SQL服務器的事實就是我忘了的「魔術」,而將SSO放入我自己的Web App中會讓我胃口大開,並且與我的想法毫不相干。 – 2009-07-24 17:34:38

1

它看起來像是一個身份驗證存儲區,用於確定誰登錄到一系列系統。我的猜測是各種應用程序會查看此表以查看IP地址上的某人是否已通過身份驗證。如果這個人有,他們被允許進入應用程序,而無需輸入用戶名和密碼。

這是維基百科的鏈接上的主題:

http://en.wikipedia.org/wiki/Single_sign-on

由於角度的問題,Active directory通常用於本也。

2

「單點登錄」允許用戶進行一次認證,併爲多個應用程序使用相同的認證令牌。

例如,如果您登錄Gmail並轉到Google日曆,則無需再次登錄。

通常它依賴於某種形式的認證令牌由您登錄到(或者說,一些安全服務,是該系統在一般的一部分,由第一應用程序調用)的第一個應用程序中創建。該令牌可以呈現給其他應用程序。

確切地說它在您的特定系統中的工作方式取決於系統的各個方面,但這些信息應該足以幫助您瞭解表格的基本用途。

相關問題