アプリ・サービス開発で認証認可/ID管理の重要性が非常に大きい訳とは
Oktaは2009年に米国で創業したIDの専業メーカーである。いち早くIDaaS領域に取り組み始め、今では「2022年Gartnerアクセス管理のマジック・クアドラント」において、6年連続でリーダーポジションに位置するまでになっている。2020年9月には日本法人も創業し、セールス部門のみならずサポートやカスタマーサクセスにも力を入れながら、積極的に拡充を図っている企業だ。
世界では1万8400社以上の導入実績があり、マクニカ調べによると日本国内でも数百社の導入実績を誇ると言う。導入企業の業種は問わず、製造業、金融業、小売業、インフラ、情報通信業、公共・団体など、幅広く採用されている。
今回紹介されたOkta CICはエンドユーザー向けのプラットフォームだが、この他にも「Okta Workforce Identity Cloud(WIC)」という従業員や契約社員、取引先社員向けのID管理ソリューションもある。
アプリやサービス開発における認証認可/ID管理は、サービス企画・UIデザイン・インフラ設計構築・セキュリティ対策など、あまたあるタスクの1つに過ぎない。だが、「その重要性は非常に大きい」と語る田所氏は、理由を次の3つにまとめた。
- 顧客獲得/維持:ID/認証はサービスを利用するとき、最初にユーザが触れる部分であり、使いやすさが顧客獲得率に直結する。
- 企業の信頼性:IDとして顧客の個人情報を取り扱うため、万一セキュリティインシデントが起これば、企業の信頼性の損失に直結する。
- ビジネスの拡大:IDの動向を把握・分析することで、顧客の特性や興味に対する理解を深めることができ、次のビジネスへの拡大に直結する。
ChatGPTの認証基盤としても採用されているOkta CICの9つの機能
このような特性を持つ認証認可/ID管理のために必要な検討事項としては、具体的にどのようなものが挙げられるだろうか。「ID/認証情報の保管」や「入力フォームの設計・開発」はすぐに思い浮かぶが、「これらは氷山の一角に過ぎず、蓋を開けるとまだまだ多くの実施項目があることに気づくはずだ」と指摘する田所氏。他の検討事項として、以下を挙げた。
- 会員登録設計(ユーザ離脱防止)
- 多要素認証の実装
- ソーシャルログイン実装
- インフラ設計/構築
- 高可用性の実現
- 各種メンテナンス
- OpenID Connect/SAML準拠
- 外部IdP連携
- PC/モバイル両対応
サービス提供者側としては、アプリやサービスが増えるたびに、再びこれらを検討して開発する手間がかかるし、ユーザ側としても、複数のID/パスワードを管理して、都度、ログインしなおす手間を強いられることになる。IDが統合管理されていないことは、両者に不幸をもたらすのだ。
「認証認可/ID管理をOkta CICに任せることで、開発リソースやスキルをメインの機能開発に集中させることができるだけでなく、開発スピードの向上・セキュリティ強化・ユーザ行動の可視化や利便性向上・コスト削減など、数えきれないほどのメリットがもたらされる」(田所氏)
身近なところでは、ChatGPTの認証基盤としても採用されているというOkta CIC。主な機能としては以下の9つが挙げられる。
- 認証画面機能/SSOの実現:一度の認証により、さまざまなアプリへのシームレスなアクセス体験を実現。
- 不正ログイン対策機能:ボットからのアクセスや漏洩パスワードの利用など、不正なログイン試行を検出。
- SDK/API/サンプルアプリ提供:各種プラットフォームおよびフレームワークに対応したSDK、外部連携を可能とするAPI、容易に動作確認可能なサンプルアプリ提供。
- 各種IdP連携:LINEやFacebookなどのソーシャルログインや外部IdPを用いたログインを実現し、ID情報登録の手間を簡略化。
- 各種カスタマイズ機能:JavaScript記述によるサーバレスな処理実行により、任意のカスタムロジックを実現(例:Actions機能)。
- ユーザ移行:既存のユーザデータベースからシームレスな認証情報移行を実現。
- MFA/パスワードレス認証:多要素認証(さまざまな認証要素への対応、認証要求条件に応じた動的なMFA適用)、パスワードレス認証(SMS/Email/生体認証)。
- ユーザロール管理:ロールベースアクセス制御(RBAC)を実現。
- APIアクセス制御:アプリケーションを構成するBackend APIのアクセス制御を実現。
このように、Okta CICは開発者フレンドリーな機能を多数兼ね備えている。次からは実際にOkta CICを用いた実例を見ていこう。
クライアント目線と開発者目線の両方からOkta CICのメリットを解説
丸山氏が携わったのは、従業員規模約6000名の国内製造業企業で、新しく提供するサービス群にOkta CICを導入して「アカウントの一元管理」と「シングルサインオン」を実現するプロジェクトだった。モバイルアプリケーションとWebアプリケーションでOkta CICを導入するためにOAuth2.0ベースのOpenID Connectと各種Authorization Code Flowを使い、APIにはクライアントクレデンシャルフローを用いたという。
このプロジェクトにおいて、課題は大きく3つあった。1つ目は「サインアップフロー中にさまざまな処理を入れたい」というもの。国外からのアクセス拒否・利用規約への同意・ユーザ情報の追加入力・メールの確認が済んでいないユーザのアクセス拒否・仮パスワードが設定されているユーザのパスワードリセット・使用権限がないアプリケーションへのアクセス拒否・使用したアプリケーションの記録。「これだけのアクションをサインアップ中に実施するには、Okta CICなしでは難しかっただろう」と丸山氏は振り返る。
2つ目の課題は、「後からソーシャルログインを追加し、サインアップフローを変える」ことだ。通常、フローを途中から変えてしまうとユーザデータの形が変わってしまうが、要件定義の段階で想定しておくことはなかなか難しい。しかし、これもOkta CICでどこから来てもユーザデータの形が同じになるよう処理を完結させることで、他のアプリケーションにはまったく影響が出ないように変更することができたという。
3つ目の課題は、クライアントに向けて「認証認可の構成やその目的・意図を説明すること」だ。丸山氏が所属するラックのようなSI企業に共通する課題として、OpenID Connectの構成や導入メリットをクライアントに説明するのが難しいという課題がある。Backlogなどを使って何度もやり取りをしながら説明を重ねたそうだ。
こうした課題に挑みながらもOkta CICを導入してよかった点について、丸山氏はクライアント目線と開発者目線の両方から、次のように語った。
クライアント目線で見たOkta CICの導入メリット
- 変化への対応力の高さ…途中でフローを変更したり、ログイン中の処理を増やしたりしたくなったときに、比較的すぐに対応できる。
- シングルサインオンと顧客アカウントの一元管理ができる…新しいサービスが増えたときでも、ユーザビリティを損なうことがない。
- 要件定義の積み残しや要望の変化に柔軟に対応できる…Okta CICは自分たちでコーディングできるので、導入後のミスマッチが起きにくい。
- ドキュメントがきれいにまとまっているので、クライアント自身で一次情報を確認しやすい。
- Okta CIC Actions機能により、要件変更に素早く対応できる。
開発者目線で見たOkta CICの導入メリット
- ドキュメントやコミュニティが充実しており、構築作業や不具合の解消がとても早くてうれしい。
- Okta CIC Actions機能でコーディングできるため、直感的に機能を実装できる。
- ログイン機能を自分で実装しなくて良いため、リソースを本来の機能開発に投入できる。
「Next.jsやRustなど、エンジニアとして新しい言語やフレームワークの勉強が必要ななか、認証認可/ID管理まで追い続けるのは難しいと感じる。Okta CICのようなIDaaS製品を導入してから、お手本にして学んでから自分でつくるのは、良い選択肢ではないか」と語り、丸山氏はセッションを締め括った。
認証やID管理は「Okta CIC」に任せてみては?
開発者が主要機能開発にフォーカスできる CIAM の魅力に迫る!
- しっかりとした認証機能を実装したいが メイン機能以外にリソースを割けない
- 認証まわりはOkta CICにまるっと任せて開発をスピーディーに
- 必要な機能がオールインワン 継続的なアップデートで最新機能をいち早く入手
本記事で興味を持たれた方は、資料請求フォームからお問い合わせください。