4

シングル サインオンが必要なサイト (Asp.Net) がいくつかあります...

ユーザーが Site1 にアクセスし、Site1 が中央のシングル サインオン サーバー (SSS) に接続するようにします。

次に、SSS は、ユーザーがログオンしていないと判断し (方法がわからない)、ユーザーをログオン画面にリダイレクトします (まだ SSS 上にあります)。

認証された場合、ユーザーは Site1 にリダイレクトされます。

Site1 はこの到着を新規として扱い、ユーザーがログオンしているかどうかを SSS に問い合わせる可能性があります。今回は、問題のユーザーが実際にログオンしていたことを SSS が示唆します。したがって、Site1 は、将来の参照のためにこの事実をセッションに保存できます (おそらく、適切なタイムアウトを使用して)。

Site1 には、ユーザーがたどることを選択できる Site2 へのリンクが含まれます。

Site2 に到着すると、Site2 によるユーザー認証の試行がトリガーされます。

サイト 2 に到着したユーザーを、サイト 1 に既にアクセスした同じユーザーとして識別し、再度ログインする必要がないように、ユーザーが既に認証されていることを確認するにはどうすればよいですか?

注: SSS は、私がアカウントの作成を制御するプライベート システムである必要があります。残念ながら、外部の OpenID サーバーに依存することはできません。

更新: 現時点では、Site1、Site2、および SSS が同じドメイン内にあることを保証できませ

4

4 に答える 4

2

OpenID をすぐに破棄しないでください。サポートする OpenID プロバイダーを選択するのは、サイトの所有者であるあなた次第です。独自の OpenID サーバーを実行し、それのみを信頼することを選択できます。

また、OpenID は認証のためのシステムであることも覚えておいてください。つまり、ユーザー X が自分が誰であるかを証明する方法です。

ここ StackOverflow では、誰かが OpenID を使用してログオンすると、自動的にアカウントが作成されますが、その必要はありません。各アカウントに関連付けられた OpenID を使用して、アカウントの作成を完全に制御できます。

また、(一般的に) 作成および保守する必要のないソフトウェアは良いことであることも忘れないでください。

于 2008-10-25T10:18:28.137 に答える
1

他のすべての人と同じように実行し、GETまたはPOSTを使用してサイト間でDB生成トークンを渡し、それらのトークンを検証して、DBと直接通信するWebサービスに戻します。

したがって、ユーザーはサイト1(www.domain1.com)にアクセスしたいと考えています。サイト1はローカルドメインのログインセッション/Cookieをチェックし、何も見つからず、ユーザーをhttp://logindomain.com/?return=www.domain1.comにリダイレクトします。以前のlogindomaincookieが存在する場合(サインインからアフィリエイトサイトまで)、サイト1に送り返します。存在しない場合は、必要なユーザー認証(KERBEROSチェック、Forms auth、openIDなど)を実行して、一意のトークンを生成します。それをlogindomainのCookieに保存し、トークンを添付して「return」が指す場所にリダイレクトします:http: //www.domain1.com/? token=123456 。domain1がトークンをWebサービス(またはトークンDBに直接)に対して検証すると、ユーザー資格情報を使用して独自のローカルログインセッション/Cookieを設定できます。

これで、サイト2(www.domain2.com)にアクセスして、ログインに移動します。?return var setを使用して再びlogindomainにリダイレクトされますが、今回はパスワードの入力を求められません。 SSOCookie内のトークン。すぐに次の場所にリダイレクトされます:http://www.domain2.com/? token = 123456(使用されているsite1と同じトークン)。Domain2はトークンを再度検証し、パスワードチェックなしで入力できるようにします。

ログインURLをその場で変更したり、私が作成するタスクのようにハイブリッドAD / Forms Authモンスターを作成しようとしたりすると、少し複雑になりますが、これは正常に機能し、(高レベルで)正確に一致します。 IBMとMSのドキュメントによると、独自のSSOシステムが行っていることです。

于 2009-05-05T17:45:36.617 に答える
0

共有セッション状態サーバーを使用してみることができます。

于 2008-10-24T15:23:40.190 に答える
0

Cookie を使用して、ユーザーの認証チケットを保存および作成できます。私たちはそれを数回行いましたが、うまくいきました。

于 2008-10-24T15:24:34.557 に答える