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"));

什么是“单点登录”,为什么该表的作者为此目的包括这些列?

4

4 回答 4

5

它是用户登录会话的持有者。我相信当用户登录时会使用该表来验证他们的会话是否仍然处于活动状态,并允许他们访问不同的服务器/站点而无需再次登录。

我假设在第一次登录时,用户的会话将被认为是新的,因此将向用户查询凭据。然后在该表中输入一行,其中包含用户 ID、IP 地址、创建日期和令牌。然后,此令牌将附加到用户的会话并在后续登录中使用。

然后其他进程将接收令牌作为通信的一部分并检查此表以确保会话仍然有效。每次检查会话时,都会更改更新字段,以便知道用户处于活动状态。

还有更多的逻辑会定期检查表,并使最近没有足够更新的任何会话行过期。对于这个系统来说,无论什么“足够”。然后带有令牌的后续访问请求将注册过期,查询凭据并使用新令牌建立新行。

于 2009-07-24T16:58:06.403 回答
2

单点登录是一种用于网站的身份验证技术。它允许您登录到一个位置,并通过让站点检查身份验证服务器以查看此人是否已经登录来进行自动身份验证。它使用令牌跟踪这一点。它的行为有点像 Kerberos 对本地登录所做的。

单点登录

澄清一下,它使您不必继续登录并跨多个服务维护单独的帐户。

于 2009-07-24T16:55:20.277 回答
2

“单点登录”允许用户进行一次身份验证,并为多个应用程序使用相同的身份验证令牌。

例如,如果您登录 Gmail,然后转到 Google 日历,则无需再次登录。

通常它依赖于由您登录的第一个应用程序创建的某种身份验证令牌(或者更确切地说,是通常属于系统一部分的某些安全服务,由第一个应用程序调用)。然后可以将令牌呈现给其他应用程序。

它在您的特定系统中的确切工作方式将取决于系统的其他各个方面,但这些信息应该足以帮助您了解该表的基本用途。

于 2009-07-24T16:56:06.407 回答
1

看起来它是一个身份验证存储,用于确定谁登录到一系列系统。我的猜测是各种应用程序会查看此表以查看某个 IP 地址的某人是否已通过身份验证。如果此人有,则允许他们进入应用程序,而无需输入用户名和密码。

这是关于该主题的维基百科的链接:

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

从角度来看,Active Directory也常用于此目的。

于 2009-07-24T16:55:35.473 回答