ymmt (@ymmt2005) です。 昨年までは Neco プロジェクトとして自社データセンターを Kubernetes を中心としたシステムに刷新していました。
次の活動として、今度は Identity and Access Management (IAM) 分野に取り組むことにしました。 IAM というのは、複数のサービスを跨いでサインインするシングルサインオン(SSO)や自動的にユーザーを作成・削除するプロビジョニングなどを実現するものです。 代表的な製品としては Okta や Azure Active Directory があります。
今回はなぜ IAM 分野に取り組むことにしたのかの背景と、今後の取り組みについてご紹介します。
サイボウズ製品の構成と課題
サイボウズでは約 20 年前の創業時から Web グループウェアを開発し販売しています。 サイボウズ Office および Garoon は元々お客様のサーバーにインストールするタイプの製品として開発されました。 そのため基本的に他のサービスと組み合わせるのではなく、これひとつでチームの情報共有は何でもできる製品として設計されています。
時代は流れて今は各種のクラウドサービスを活用することが一般的になりました。 サイボウズでも cybozu.com として前述の Office, Garoon に加えて Kintone とメールワイズをクラウドで提供しています。
現在のサイボウズ社内では、cybozu.com はもちろん、その他用途に合わせて数百にも及ぶクラウドサービスを使い分けています。 GitHub, Slack, Miro, Zoom などなど。
情報システム管理の点からすると、どの社員にどのサービスを使うように設定するべきかや、入退社の処理が非常に煩雑になっています。 それ以上に問題なのが、当社の製品が他社サービスと組み合わせて使う前提で設計されていない点です。 もちろん連携開発に必要な API は備えていますが、いわゆる OAuth 2.0 をはじめとする標準的な認証認可の仕組みを備えていません。
用途に合わせて様々なクラウドサービスを使い分けること、およびそうした時に発生する問題は当社に限らず昨今多くの企業で課題になっていると思います。
グループウェアを再定義する
好き勝手に様々なクラウドサービスを使うだけでは管理コストが高いですしチームの設定などが共通になりません。 また、情報共有を阻害する結果にもしばしばなります。
このような背景を元に、改めて現代のグループウェアが備えているべき特性を考えてみました。
- 業務に応じて各種クラウドサービスを自由に使い分けられる
- ユーザーやチームが可視化され、コミュニケーションが容易に行える
- 使うツールが違っても情報の共有ができる
具体的には、以下のような機能を中心に据えて、グループウェアの諸機能を再実装していくのが良いと考えます。
- ユーザー/グループの情報を管理して提供(ディレクトリサービス)
- OAuth 2.0 の認可サーバーとして各種クラウドサービスとの情報連携をサポート
- SAML 2.0 や OIDC によるシングルサインオンを提供
冒頭で紹介した「IAM 分野への取り組み」というのは、この機能面を指してのものです。 クラウド時代に合わせたグループウェアコンセプトの刷新が本当にやりたいことなのですが、ちょっと抽象的なので。
一緒にやりませんか
そういうわけで、IAM プロダクトを研究開発するプロジェクトを開始しました。
IAM プロダクトは障害で使えないと大変影響が大きいため、非常に高い稼働率が必要になります。 そのため、今回は技術構成も従来のものに拘らず大胆に見直していきます。
文脈が少し違うのですが、今後のエンジニア採用強化に向けて英語人材によりチームの構成にも取り組みます。
- 完全に新規の IAM プロダクト開発
- 英語でのチーム開発
- グループウェアの再定義
現在、以下のポジションで一緒に働いてくれる仲間を募集しています。たくさんの方のご応募お待ちしております。