2009-07-24 78 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日历,则无需再次登录。

通常它依赖于某种形式的认证令牌由您登录到(或者说,一些安全服务,是该系统在一般的一部分,由第一应用程序调用)的第一个应用程序中创建。该令牌可以呈现给其他应用程序。

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