私は、単一のdjangoコードベースの下に3つのサイト(siteA、siteB、siteC)を使用して、すべてのサイトに独自のドメインと独自のデータベースがあるdjango開発に取り組んでいます。データベースが別々であるため、サイトごとに別々のユーザーがいます。
私の質問は、この3つのサイトにシングルサインオンを作成する可能性はありますか?また、ユーザーがsiteAとsiteBに登録されているが、 siteCには登録されていない場合、この場合、ユーザーがSiteAにログインすると、 (両方に登録されているため)自動的にsiteBにログインしますが、 siteCにはログインしません。(stackexchange.comのように)
どんな提案や助けも大歓迎です!
ありがとうございました!
質問する
1045 次
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 に答える