djangoを使用して作っているアプリがあるのですが、それとDBを連携してbubbleで別アプリを作ることを想定しています。
【実現したいこと】
アプリA(djangoで作ったアプリ)で作成されたユーザーがそのアプリA上でログインをした状態で、アプリB(bubbleで作ったアプリ)に遷移した際にログインを要求しない方法(シングルサインオン)がわからない。
※SSO Loginなどのプラグインは使用しないで実現したい
【困っていること】
アプリ間でのアカウント連携がとれない。
どなたか既に実践済みの場合は、ご教示いただけますと幸いです
♂
回答者
Bubble で他のシステムと認証連携する場合には OAuth2 が必須になります。django の方で OAuth2 のプロバイダーが立っていれば SSO できる可能性はありますが、それが無いようであれば、SSO はできないと思います。
ただ、セキュリティに難ありですが、無理やりそれっぽいことをやることもできないこともないと思います。
例えば、次のような方法です。
(1) Bubble の DB の email と django の認証で使う DB の email を一致させておく。パスワードは一致できないと思うので放置。
(2) django で認証後、Bubble のページに遷移する際にパラメータで email と日時情報をくっつけたものを暗号化して渡す。
(3) Bubble でパラメータを復号化して email と日時情報を取り出す。
(4) 日時情報が例えば5分以内であれば正式なルートで送られてきた email だと判断する。referer を見れるようだったら、referer も正しい送り元かどうか確認しておく。
(5) 正しい情報だと判断された email とパスワード(こちらは Bubble 側で通常のパスワードとは別に管理する)で Bubble にログインする。
こんな仕組みが作れれば、セキュリティはかなり甘いですができないこともないかなと思います。
ただ、素直に Auth0 などの外部ソリューションを使った方が安心ですし早いと思います。
質問者
ものすごく丁寧にご回答をいただき、ありがとうございます:man-bowing:
やはりOAuth2は必須になってくるのですね。
それがわかっただけでもとてもありがたい上に、それ以外の実装方法をステップでわけてご教示いただき、ありがとうございます。
ただ、おっしゃっていただいている通り、セキュリティーについてはしっかり対策しておきたいため、大人しく外部ツールを使う方がよさそうですね。
本当にありがとうございます!
引き続きよろしくお願いします:man-bowing:
回答者
ごめんなさい、ちょっとだけ訂正させてください。Bubble は SAML も使えるらしいです。
となると、企業が使っている Active Directory や大学でよく使っている Shibboleth あたりと連携して SSO できそうですね。完全に余談ですが。。。
質問者
ほんとですか!!
それはかなりのヒントになりそうです!
調べて使ってみようと思います!
追加情報ありがとうございます