【要約】Cognitoを使って既存システムにSSOログイン機能を追加したお話 [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
パナソニック コネクトの開発チームは、既存のWebシステムにSSOを導入する際、以下の技術的課題に直面した。
- ・既存認証との整合性:Auroraで管理する既存のID/パスワード情報と、Cognitoが発行するIDトークンをどのように紐付けるかが課題であった。
- ・UI/UXの制約:Cognito標準のManaged Loginではデザインのカスタマイズ性が低く、顧客テナントのIdPへ直接遷移させる要件を満たせなかった。
// Approach
開発チームは、既存のUI/UXを損なわずにCognitoの機能を活用するため、ハイブリッドな認証アプローチを採用した。
- ・UIパターンの選定:Managed Login、Custom UI、Hybridの3案を比較検討し、Managed LoginのUI部分のみを自前UIに置き換える方式を選択した。
- ・IdPへの直接遷移:認可エンドポイントのパラメータに
identity_provider=<IdP名>を付与し、特定のIdPへ直接リダイレクトする仕組みを構築した。 - ・環境分離の実施:DevからPrdまで各環境に個別のCognitoユーザープールとクライアントを設定し、検証を行った。
// Result
開発チームは、約3ヶ月の開発期間を経て、既存システムへのSSO機能の実装を完了した。
- ・実装規模:総計842ステップのコード変更(React/TSX, TS, PHP, CDK)で実現した。
- ・運用の教訓:本番環境でのACS URL設定ミス(ユーザープールIDの誤記)を経験し、カスタムドメインの利用による設定ミス防止の重要性を得た。
Senior Engineer Insight
> 既存システムへのSSO導入において、UIの整合性を保つための「ハイブリッド方式」の選択は極めて現実的な判断だ。ただし、Cognitoのドメイン設定やACS URLの管理は、設定ミスが致命的な動作不良を招く。大規模運用を見据えるなら、記事にある通りカスタムドメインの採用は必須と言える。また、850ステップ程度の変更量は認証基盤の刷新としては比較的軽量だが、既存DBとの紐付けロジックの堅牢性がシステムの信頼性を左右する。