OIDC(オーアイディーシー)とは | 意味や読み方など丁寧でわかりやすい用語解説
OIDC(オーアイディーシー)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
オープンIDコネクト (オープンアイディーコネクト)
英語表記
OIDC (オーアイディーシー)
用語解説
OIDCはOpenID Connectの略で、OAuth 2.0の上に構築された認証レイヤーである。主にユーザーの身元を確認し、その認証情報をアプリケーションに安全に提供するための標準プロトコルとして機能する。Webアプリケーションやモバイルアプリケーションがユーザーの認証を、GoogleやFacebookなどの外部の認証プロバイダーに委ねる際に利用され、シングルサインオンの基盤を提供する。これにより、ユーザーは複数のサービスで同じIDとパスワードを使い回すことなく、安全かつ効率的にサービスを利用できる。OIDCは、単なる認可の仕組みであるOAuth 2.0に、誰が認証されたかという「身元確認」の機能を追加したもので、現代のインターネットサービスにおけるセキュアな認証基盤として広く採用されている。
OIDCの理解には、まずOAuth 2.0との関係性を明確にすることが重要だ。OAuth 2.0は、ユーザーがアプリケーションに自身の特定のリソースへのアクセス権を与えるための「認可」プロトコルであり、ユーザーの「認証」を行う機能は持っていない。例えば、ある写真編集アプリがユーザーのGoogleドライブの写真にアクセスする許可を求める際、OAuth 2.0はそのアクセスを認可する仕組みを提供するが、そのユーザーが本当に本人であるかをGoogleが確認するプロセスは、OAuth 2.0の範疇外だった。この認証部分を補完し、ユーザーの身元確認を可能にするのがOIDCである。
OIDCでは、認証のプロセスを標準化し、クライアントアプリケーションがユーザーの認証プロバイダー(Google、Microsoft Azure ADなど、OpenIDプロバイダーまたはOPと呼ばれる)に認証を依頼する。ユーザーは認証プロバイダーの画面で自身の資格情報(IDとパスワードなど)を入力し、認証プロバイダーがそのユーザーを認証する。認証が成功すると、認証プロバイダーはクライアントアプリケーションに対して、「IDトークン」という特別なトークンを発行する。
IDトークンはJSON Web Token(JWT)形式であり、デジタル署名が施されているため、改ざんされていないことや、どの認証プロバイダーから発行されたものかを確認できる。このトークンには、ユーザーを一意に識別するためのサブジェクト(sub)識別子、トークンの発行者(iss)、クライアントアプリケーション(aud)など、ユーザーの身元に関する基本的な情報が含まれる。クライアントアプリケーションはIDトークンを受け取ることで、ユーザーが確かに認証されたことを確認し、そのユーザーの識別情報に基づいた処理を進めることができる。
さらに、OIDCはIDトークンに含まれる情報だけでは不十分な場合のために、「UserInfo Endpoint」という仕組みも提供する。クライアントアプリケーションは、発行されたアクセストークン(OAuth 2.0由来のもの)を使ってUserInfo Endpointにリクエストを送信することで、ユーザーの名前、メールアドレス、プロフィール画像などの追加のユーザー情報を取得できる。これにより、アプリケーションはユーザーの許可を得た上で、よりパーソナライズされたサービスを提供することが可能になる。
OIDCの認証フローは、基本的に以下のステップで進行する。まず、クライアントアプリケーションがユーザーを認証プロバイダーへリダイレクトする。ユーザーは認証プロバイダーで認証を行い、アプリケーションへの情報提供に同意する。認証と同意が成功すると、認証プロバイダーはユーザーをクライアントアプリケーションへリダイレクトし、この際にIDトークンとアクセストークンが付与される。クライアントアプリケーションはIDトークンを検証し、ユーザーの認証状態を確認する。
OIDCの主なメリットは、標準化されたセキュアな認証プロトコルである点にある。開発者は異なる認証プロバイダーであっても、共通のプロトコルに則って認証機能を実装できるため、開発コストと時間を削減できる。また、シングルサインオン(SSO)を容易に実現できるため、ユーザーは一度認証すれば、複数の関連サービスをシームレスに利用できるようになり、利便性が向上する。さらに、IDトークンのデジタル署名やトークンの有効期限管理などにより、セキュリティが強化されている。
OIDCは、モバイルアプリケーション、シングルページアプリケーション(SPA)、バックエンドサービス間での認証など、多岐にわたるシナリオで利用されており、現代のクラウドネイティブなサービス開発において不可欠な技術となっている。その柔軟性と堅牢性により、多くの企業が自社の認証基盤として、あるいは外部サービス連携のための標準としてOIDCを採用している。