
面接官:OpenID Connectについて説明してください。
私:OpenID Connect(OIDC)は、OAuth 2.0を拡張した認証プロトコルです。ユーザー認証を行い、ユーザーに関する情報を安全にアプリケーションに提供します。
以前のプロジェクトで、複数のマイクロサービスで構成されたシステムの認証基盤を構築する際にOpenID Connectを導入しました。各サービスが個別に認証処理を行うのではなく、集中型の認証サーバー(Identity Provider: IdP)を立て、OpenID Connectで認証を委譲することで、シングルサインオン(SSO)を実現し、ユーザーエクスペリエンスを向上させ、セキュリティリスクを軽減しました。
また、OAuth 2.0の認可機能も利用し、各サービスがユーザーのどの情報にアクセスできるかを制御することで、よりきめ細やかなアクセス制御を実現しました。具体的には、ユーザーがマイクロサービスAにログインする際に、メールアドレスと名前のみをサービスAに提供し、マイクロサービスBには住所のみを提供する、といった制御が可能になりました。
現役エンジニアによる深掘り解説
メリット
シングルサインオン(SSO)の実現: ユーザーは一度ログインするだけで、複数のアプリケーションにアクセスできるようになります。これはユーザーエクスペリエンスを大幅に向上させます。
セキュリティの向上: 認証処理を一箇所に集中させることで、セキュリティポリシーの適用や監査が容易になります。また、パスワードの管理をIdPに委譲することで、各アプリケーションはパスワード漏洩のリスクを軽減できます。
標準化されたプロトコル: OpenID Connectは標準化されたプロトコルであるため、様々なIdPやクライアントライブラリが利用可能です。これにより、開発者は認証機能を容易に実装できます。
アクセス制御の柔軟性: OAuth 2.0の認可機能を利用することで、アプリケーションはユーザーのどの情報にアクセスできるかを制御できます。これにより、ユーザープライバシーを保護し、コンプライアンス要件を満たすことができます。
デメリット
複雑性の増加: OpenID Connectの導入には、IdPの設定やクライアントアプリケーションの実装など、一定の技術的な知識が必要です。特に、OAuth 2.0の概念を理解していないと、誤った設定をしてセキュリティホールを作ってしまう可能性があります。
IdPへの依存: OpenID ConnectはIdPに認証を委譲するため、IdPがダウンした場合、すべてのアプリケーションが利用できなくなる可能性があります。可用性を高めるためには、IdPの冗長化などの対策が必要です。
カスタマイズの制限: 標準化されたプロトコルであるため、独自の認証要件に対応するためにカスタマイズするのが難しい場合があります。
⚠️ 面接突破のワンポイント
- OpenID ConnectとOAuth 2.0の違いを明確に説明できるように準備しましょう。OpenID ConnectはOAuth 2.0を拡張した認証プロトコルであり、OAuth 2.0は認可プロトコルであることを理解しておくことが重要です。
- 過去のプロジェクトでOpenID Connectをどのように活用したかを具体的に説明できるように準備しましょう。導入の背景、解決した課題、得られた効果などを具体的に説明することで、あなたの技術力と問題解決能力をアピールできます。


