1


私は、単一のdjangoコードベースの下に3つのサイトsiteA、siteB、siteC)を使用して、すべてのサイトに独自のドメインと独自のデータベースがあるdjango開発に取り組んでいます。データベースが別々であるため、サイトごとに別々のユーザーがいます。

私の質問は、この3つのサイトにシングルサインオンを作成する可能性はありますか?また、ユーザーがsiteAsiteBに登録されているが、 siteCには登録されていない場合、この場合、ユーザーがSiteAにログインすると、 (両方に登録されているため)自動的にsiteBにログインしますが、 siteCにはログインしませ。(stackexchange.comのように)

どんな提案や助けも大歓迎です!
ありがとうございました!

4

1 に答える 1

3

究極のソリューションは次のとおりです。OAuth

ただし、OAuthをこれらすべてのDjangoサイトに統合する際に、ショートカットが必要な場合は、次のことができます。

サイトA:ケン、ジョン

サイトB:ケン、ジョー

サイトC:ジョン

2つのサイトがあり、メインサイトはサイトBのリソースを使用していますが、サイトBのユーザーである必要があります。ただし、2つのWebサイトはユーザーを同期しません。OAuthは面倒な統合だったため、次のことを行っています。

1. Ken login through Site A.
2. As soon as he hits "login", he's redirected to login to Site B and C through iframe login (submit the auth login requests through HTTPS).

3. The iframe login will return cookies of the site trying to login
     - site B
     - site C
4. Since Ken is not a user of Site C, there is no cookies return from Site C.
5. After two iframe logins, you are back to Site A and at this moment, as authenticated user of Site A, ken has at most two cookies:
    - site A
    - site B

これは近道ですが、非常に安全ではありません。iframeログインと言っても、ログインフォームにiframeが表示されるとは言っていません。リクエストはリクエストを通じて送信されます。

ユーザーは同じ暗号化されたパスワードを使用する必要があるため、安全ではありません:/そしてCookieを渡すことは非常に攻撃しやすいです。

于 2012-08-17T21:27:24.303 に答える