2009-07-24 10 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アドレスがあるのですか? 1つのIPアドレスからログオンし、通りを渡ってコーヒーを飲み、セッションを再開することができます(コーヒーショップに異なるIPがあると仮定して)。しかし、おそらくそれは最初の場所でこの正確なシナリオを防ぐためにあります:) – NoChance

答えて

4

これは、ユーザーのサインオンセッションの所有者です。ユーザーがセッションがまだアクティブであることを確認するためにサインインしたときにテーブルが使用され、2回目にログインせずにさまざまなサーバー/サイトにアクセスできるようになると私は信じています。

最初のログイン時に、ユーザーのセッションが新しいものであることがわかっているので、ユーザーは資格情報を照会されます。次に、このテーブルにユーザのID、IPアドレス、作成日、トークンの行が入力されます。このトークンは、ユーザーのセッションに添付され、その後のログインで使用されます。

他のプロセスは、トークンを通信の一部として受信し、このテーブルをチェックしてセッションがまだ有効であることを確認します。セッションがチェックされるたびに、更新フィールドが変更され、ユーザーはアクティブであることがわかります。

さらにロジックが定期的にテーブルをチェックし、最近更新されていないセッション行を満了させます。このシステムには「十分な」ものは何でも。次に、トークンによるサブスクリプションアクセス要求は、期限切れを登録し、資格証明を照会し、新しいトークンで新しい行を確立します。

2

シングルサインオンは、Webサイトの認証テクノロジです。 1つの場所にログインし、サイトが認証サーバーをチェックして、そのユーザーが既にログインしているかどうかを確認することで、自動化された認証を得ることができます。 Kerberosがローカルログオンの場合と同様に動作します。明確にするために

Single Sign On

あなたは、複数のサービス間で別々のアカウントを維持するログを維持する必要はありませんので、それはそれを作ります。

+1

SSOは**ウェブサイトの**だけではありません。 Windows PCにログインすると、資格情報が保持され、ネットワークファイル共有やSQL Serverデータベースなどの他のリソースにアクセスできるようになります。私はそのSSOとも呼ぶだろう。 –

+0

あなたは正しいです。シングルサインオンは一般的な用語ですが、私はWeb環境でしか扱っていません。私がSQLサーバーにログオンする必要はないという事実は、私が忘れている「魔法」だけですが、自分のWeb AppにSSOを置くと、私は胸焼けをしてしまいます。 –

1

一連のシステムに誰がログオンしているかを判断するのは認証ストアのようです。私の推測では、さまざまなアプリケーションがこのテーブルを見て、IPアドレスの誰かが認証されているかどうかを調べることになります。その人が持っている場合、ユーザー名とパスワードを入力せずにアプリケーションに入ることができます。ここで

は、件名にウィキペディアへのリンクです:

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

視点の問題として、Active directoryは、一般的にも、このために使用されています。

+0

+1 WikipediaのリンクとADの言及。 –

2

"シングルサインオン"を使用すると、ユーザーは一度認証し、複数のアプリケーションで同じ認証トークンを使用できます。

たとえば、GmailにログインしてからGoogleカレンダーにアクセスすると、再度ログインする必要はありません。

通常、ログインする最初のアプリケーション(または、最初のアプリケーションによって呼び出された一般的なシステムの一部であるセキュリティサービス)によって作成された何らかの種類の認証トークンに依存します。トークンは、他のアプリケーションに提示することができます。

正確にあなたの特定のシステムではどのように動作するかは、システムのさまざまな側面によって異なりますが、その情報はテーブルの基本的な目的を理解するのに役立ちます。

関連する問題