oist / optinist

calcium imaging pipeline tool
GNU General Public License v3.0
36 stars 13 forks source link

認証サービス(IDaaS)利用検討 #389

Closed itutu-tienday closed 1 year ago

itutu-tienday commented 1 year ago

追加機能についての概要 認証機能の導入に際して、外部認証サービス(IDaaS)の利用可否を検討する。

重要度

ブランチ名 ※調査タスクのため、対象外

期限 2023/1 中

その他 調査情報を、当issueのコメントに追記する

itutu-tienday commented 1 year ago

以下、調査情報を記載。

■IDaaSについて概要 ・メリット … 高セキュリティ、開発工数削減 ・デメリット … 各サービス依存、利用料の発生、クラウド利用前提 ・コスト面では、Firebase Authentication が有利(基本無料)

■参考情報 (参考情報) https://future-architect.github.io/articles/20200122/ https://tech.smartcamp.co.jp/entry/auth0-jwt https://ritou.hatenablog.com/entry/2022/12/13/000000 https://fwywd.com/tech/why-adopt-idaas (製品比較情報) https://qiita.com/yutaro50/items/55455fe34385852d5ac0 https://s-takayanagi.booth.pm/items/1837928

itutu-tienday commented 1 year ago

(調査情報 追記) IdP(Identify Provider、IDaaSの構成ソフトウェア)には、OSS製品もある。

▽Keycloak https://www.keycloak.org/ https://www.designet.co.jp/ossinfo/keycloak/ https://tech.uzabase.com/entry/2022/12/17/070000 ※詳細仕様は確認前

■OSS IdP利用の想定メリット/デメリット ・メリット … クラウド系IdPサービスへの非依存、製品利用料無料 ・デメリット … IdPサービスの稼働の保守(ランニングコスト)が発生する

emuemuJP commented 1 year ago

情報ありがとうございます。 auth0は非常に良い選択肢に思えます。 3点質問があります。

  1. 費用に関して、今回の用途だと少なくとも初期はB2C Essentialは必要かと思いますが、マルチテナンシーへの対応を考えると将来的にB2B Essentialになりそうでしょうか?
  2. Firebaseですとコスト面で魅力的ですが、こちらはマルチテナンシーへの対応が出来ないという認識であっていますか?
  3. Firebaseでスタートして必要に応じてauth0に切り替える、ということは容易そうでしょうか? よろしくお願いします。
itutu-tienday commented 1 year ago

ご確認ありがとうございます。 以下、返答記載いたします。

  1. 費用に関して、今回の用途だと少なくとも初期はB2C Essentialは必要かと思いますが、マルチテナンシーへの対応を考えると将来的にB2B Essentialになりそうでしょうか?

詳細確認前ですが、Auth0 では マルチテナンシーには Organization 機能を利用する形が有用であるようですが、 Organization 機能の利用には、ご記載の様に B2B Essential プランが必要であるようです。

(参考情報) https://speakerdeck.com/hiroga/multitenant-saas-with-auth0?slide=21 https://buildersbox.corp-sansan.com/entry/2020/04/22/110000

  1. Firebaseですとコスト面で魅力的ですが、こちらはマルチテナンシーへの対応が出来ないという認識であっていますか?

Firebase では、「プロジェクト単位」でのデータ管理となるはずであるため、プロジェクトを横断したデータアクセスを行う場合には、環境構成や実装に一定の工夫が必要となると想定されます。 (参考情報) https://zenn.dev/nerikosans/articles/35cfe884af36b2

※またマルチテナンシーの要件(テナント間でのデータ横断アクセスの要否、etc)は、 確認事項を別途リストアップできればと考えます。

  1. Firebaseでスタートして必要に応じてauth0に切り替える、ということは容易そうでしょうか?

各IDaaSの仕様は、基本的なところは類似していることから、 (認証後は認証トークン(JWT)をFrontEndで取り回す、アカウントのCRUDはAPIで操作、等) 製品切り替えのインパクトは、比較的 抑えられるのではないか、と推定いたします。

※事前に具体的な変更発生個所を 調査やテスト実装しておけると、改修時の影響は事前にある程度抑えられるだろう、と考えます。