亀のコツコツクラウドインフラ

2025年1月8日 (最終更新日:2025年1月10日)

OIDCとは?AWSやクラウド環境で活用される認証プロトコルの基礎知識

はじめに

OIDC(OpenID Connect)は、現代のクラウド環境やモバイルアプリで広く使われている軽量な認証プロトコルです。

以下のような方におすすめの内容になっています。

  • モバイルアプリやクラウドネイティブ環境での認証に興味がある
  • SAMLとの違いや、OIDCを採用する場合を知りたい

この記事では、OIDCの基本的な仕組みからAWSや他のクラウドサービスでの実践例を解説します。

OIDCとは?

OIDC(OpenID Connect)はOAuth2.0を拡張した認証プロトコルです。主にモバイルアプリケーションやクラウドネイティブのシステムで使用されて、シンプルで柔軟な認証フローは提供します。

例えば、ユーザーがGoogleアカウントでログインして複数のアプリケーションにアクセスできるようにする場合にOIDCが使用されています。
OIDCはJSONベースのトークンを用いるため、軽量でAPIやモバイルアプリに最適です。

仕組み

OIDCはOAuth 2.0をベースに、IDトークンを利用して認証を行います。以下が基本的なフローです。

  1. ユーザーがクライアントアプリケーションにアクセス
  2. OIDCプロバイダーがユーザーを認証
  3. IDトークンを発行
  4. クライアントがIDトークンを利用してユーザー情報を取得

OIDCが重要な理由

JSONベースのトークンを用いることで、モバイルやAPI認証が軽量かつ効率的に行えます。

複数の認証フロー(例: Authorization Code Flow、Implicit Flow)を提供し、システム要件に応じた選択が可能です。

AWS Cognito、Google、GitHub Actionsなど、主要なクラウドサービスで幅広く利用されています。

メリットとデメリット

今までの内容からメリットをまとめました。

  • 軽量で効率的な認証
  • モバイルやAPI認証に適している
  • 標準化されており、幅広い採用例がある

OIDCの最大のメリットは、軽量性と柔軟性の両立です。これにより、モバイルやAPI主導のシステムで非常に効果を発揮します。

逆にデメリットも存在します。

  • セキュリティの実装次第では脆弱性が生じる
  • SAMLほどの高度なエンタープライズ機能はない

OIDCは柔軟性と軽量性を持つ一方で、エンタープライズ向けの高度な統合やSSOには向かない場合もあります。

OIDCのユースケース

一部のユースケースをご紹介します。

モバイルアプリでの認証

モバイルアプリケーションでは、GoogleやFacebookなどのアカウントを使ったログインが一般的です。

AWS Cognitoを利用すれば、モバイルアプリに簡単かつ安全な認証機能を統合でき、ユーザーの利便性を向上させることが可能です。

クラウドネイティブ環境での認証

クラウドネイティブアプリケーションやサーバーレス環境で、使用されます。たとえば、AWSでのIAMロールをOIDCプロバイダーと連携させることで、Kubernetes(Amazon EKSなど)での認証管理を効率化できます。

また、GitHub ActionsとAWSの連携にもOIDCが利用されており、シークレットの管理を不要にしてセキュリティーを向上させます。

APIアクセスの認証

バックエンドAPIへの安全なアクセスを保証するために、OIDCが使用されています。

クライアントアプリケーションがバックエンドAPIにリクエストを送る際、OIDCを使ってトークンを検証することで、認証済みユーザーのみがアクセスできる環境を構築できます。

SAMLとOIDCの比較

SAMLとOIDCを比較して、場合によって使い分けましょう。

 SAML (Security Assertion Markup Language)OIDC (OpenID Connect)
用途エンタープライス環境やSSOモバイルやクラウドネイティブ環境
認証プロトコルXMLベースの認証プロトコルOAuth2.0を拡張したJSONベースの認証プロトコル
対応システムActive Directory、Okta、AWS IAM、Google Workspace等AWSCognito、Google、Facebook、GitHubActions
軽量さ重い(XMLを利用)軽量(JSONを利用)
セキュリティ高度なセキュリティ(証明書や署名による検証)セキュリティは十分だが、SAMLに比べてシンプル
設定難易度エンタープライズ環境、複数クラウドサービスの一括管理クラウドネイティブアプリ、サーバーレス環境
推奨環境AWS IAMのSAML IDプロバイダー、Azure ADのSSOGitHub ActionsとAWSのOIDC連携、AWS Cognitoでの認証管理

まとめ

OIDCは、モバイルアプリやクラウドネイティブ環境で広く利用される軽量で柔軟な認証プロトコルです。

モバイルやAPI認証に適しており、AWS CognitoやGitHub Actionsとの連携を通じて、セキュアで便利な認証フローを構築できます。

この記事を参考に、OIDCの基本を理解し、実際の環境での使用の参考にして構築してください。

この記事を書いた人

コツコツ亀

コツコツ亀

Webエンジニアとして活動中
AWSを使用してWebアプリケーションを作ったり、サーバーを構築したりしています。

関連記事

新着記事