GROWI SSO ミーティング議事録

日時: 2020/3/3(火)

アジェンダ by Sayaka

SSO

  • 一つの認証メソッドを選択していた時に、オートリダイレクトを実装したい。または実装してほしいと考えている。

    • GROWIにログインするときに Keycloak のログイン画面なくログインしたい
    • Primary な認証に飛ぶのが良い
  • 設計思想としての疑問

    • どのように実装がすることがよいか。1つの認証につき選択肢を設けるべきか、またはセキュリティ設定として、リダイレクト有効化ボタンと、プルダウンとして選択するようにするべきなのか。
      • 管理画面のUIは拘らない、primaryに関する議論が先(yuki)
      • 前提としてオートリダイレクト機能はオプションとして有効・無効を選べるようにしたい
      • Primary 認証を設定できるようにした上で、それを優先して何か問題があるか? → ひとまずなさそう
      • Primary 認証以外を選べるようにした方が良いか? → どういうケースだとそんな認証をしたくなるのだろう?(管理者が特殊なログイン方法を知っている場合)
  • 現状把握

    • SAMLやOIDC認証は現状、一つ選択してもボタンがある状態で、オートリダイレクトはない。
    • growiとしてはSAML以外に複数外部ログイン対応しているので、どう設定や設計するとよいか悩ましい
  • 発展的実装について

    • もしオートリダイレクトを実装する場合、特殊なhttpヘッダーを用いてGrowi側単体でBasic認証ができるようにしたほうが良いとwadahiroさんからアドバイスをもらった
    • 例; keycloakのIdentity Brokeringだと、確かデフォルトのIdPを設定しつつ、idp_hintみたいなクエリパラメータ付きでGETアクセス飛んできたらそっち優先して切り替える、みたいな実装がされてたかと。同じような感じがいいかもです。
      • 同じという意味合いというのは、デフォルトIDPはあるけどGrowi側でidp_hintみたいなのをつける形。
      • 理由:管理者などが直接メンテするため。

問題提起っぽいこと

  • 現状把握
    • 現在ID/Pass認証、LDAP認証、SAML認証、OIDC認証、Basic認証、Google認証、GitHub認証、Twitter認証、Facebook認証(TBD) があり、将来的に認証の管理をしていくことになると、コードの管理も難しくなるかもしれない
      • keycloak など内部の開発者も大変
  • 今後の方針として提案
    • 認証プロバイダー(IDP)に任せられるものは任せたほうがいいのかもしれないという点がある。理由はkeycloakなどの認証2ファクター認証の実装が容易であり、SAML認証、OIDC認証, Google認証、GitHub認証、Twitter認証、Facebook認証(TBD) あたりはIDPに任せたほうがコード的にシンプルになりうるのではないかと考えています。豊富な機能があるのはとても良いことなのですが、もしかすると、集中と選択をしてIDPに任せたほうがいいかもしれないと思いました。
    • いま、それをいって何をという部分もあると思いますがあくまで問題提起として聞いてみたいことです。
    • GROWI開発者内部から問題提起が上がることもなかったので、ご意見いただけてうれしいです!
  • サービス提供におけるセキュリティについて
    • サービスとして提供している部分について、これは将来像の案ですが、オプショナルとして、もちろん、Googleアカウントであればもう既に多要素認証は可能なので、不要なのかもしれませんが、もしなければつけてもいいかなと思ったりしました。

ユーザーの皆さんに質問

  • 皆さんがどういう風に認証の種類使われているかも伺いたい。
    • .cloud でどの認証機構がどの割合で使われているか追ってない → 見てみよう(規約にも反しないだろう)
    • WESEEK内部ではもともと用途(利用者毎に)個別にGROWIを立ててLDAP認証していたが、最近 GROWI.cloud へ移行を進めて keycloak を挟むようにしている

認証周り以外で痒いところに手が届かないことは?...

  • 担当に分かれていて、sayaka さんはセキュリティ担当(SSO移行担当)なのでわかるのはそのあたり
  • 強いて挙げるならセキュリティ設定画面で、更新されているかどうか分かりづらい点くらい
    • GROWI開発状況としては、設定画面の React 化をまず進めているところです
  • issue に挙げている SAML の SHA が弱い?(よく聞こえなかった) 件
  • external アカウントと GROWI アカウントの紐付けが LDAP しかできない
    • 現状: LDAP アカウントでログイン → GROWI アカウント紐付け