アイデンティティプロバイダー (IdP) とは?
アイデンティティとアクセス管理 (Identity and access management, IAM) の領域では、アイデンティティプロバイダー (IdP) は、アイデンティティを管理するための中心的なサービスです。ユーザーの認証、アイデンティティトークンの発行、および サービスプロバイダー (例:アプリケーション、サービス、API)にユーザー情報を提供する責任を持っています。
現代のアイデンティティプロバイダーは、 認証 (Authentication) に加えて、 認可 (Authorization) ( アクセス制御 (Access control) ポリシーの強制)を担い、 シングルサインオン (Single sign-on, SSO) や マルチテナンシー などの高度な機能をサポートします。
アイデンティティプロバイダーの標準
アイデンティティ管理の性質と相互運用性の必要性から、標準なしでアイデンティティプロバイダーを構築することは非現実的で非効率です。典型的なシナリオは以下のとおりです:
- 2 つのアイデンティティプロバイダーがユーザー情報を交換するために通信する必要がある(例:ソーシャルログイン)。
- アプリケーションが複数のアイデンティティプロバイダーを使用してユーザーを認証する必要がある(例:フェデレーションアイデンティティ)。
- アイデンティティプロバイダーが複数のタイプのクライアントをサポートする必要がある(例:Web、モバイル、IoT)。
これらのシナリオに対処するために、業界ではアイデンティティプロバイダー向けにいくつかの人気のある標準が開発されました:
- OAuth 2.0 : ユーザーやサービスに代わってアプリケーションがアクセスを取得できるようにする、広く使用されている認可フレームワーク。
- OpenID Connect (OIDC) : 認証やユーザー情報を提供する OAuth 2.0 上に構築されたアイデンティティレイヤー。
- セキュリティアサーションマークアップ言語 (Security Assertion Markup Language, SAML) : セキュリティドメイン間で認証および認可データを交換するための標準。
新しいアプリケーションには、アイデンティティプロバイダーの構築または既存のアイデンティティプロバイダーとの統合に OpenID Connect (OIDC) を使用することが推奨される標準です。
アイデンティティプロバイダーのアーキテクチャ
「アイデンティティプロバイダー」という用語は、特定のアーキテクチャや実装を指しません。それはすなわち、アイデンティティプロバイダーはモノリシックアプリケーション、マイクロサービス、クラウドサービスにもなり得るということです。
アイデンティティ管理の複雑さと重要性により、現代のアプリケーションは、独立したサービスやベンダーソリューションとしての特化したアイデンティティプロバイダーを利用する傾向があります。
アイデンティティプロバイダーの機能
現代のアイデンティティプロバイダーは、さまざまなユースケースや要件をサポートするために幅広い機能を提供しています。以下は一般的な機能です:
- 認証 (Authentication) : 様々な方法(例:ユーザー名/パスワード、ソーシャルログイン、 マルチファクター認証 (Multi-factor authentication, MFA) )を使用してユーザーのアイデンティティを確認。
- 認可 (Authorization) : アクセスコントロールポリシーを強制し、ユーザーの権限を管理(例: ロールベースのアクセス制御 (RBAC) 、 属性ベースのアクセス制御 (Attribute-based access control, ABAC) )。
- ユーザー管理: ユーザーアカウントおよびプロファイルの作成、更新、削除。ユーザーデータを サービスプロバイダー に提供。
- トークン管理: アイデンティティトークン(例:IDトークン、アクセストークン、リフレッシュトークン)の発行および管理。
- シングルサインオン (Single sign-on, SSO) : ユーザーが一度認証し、複数のアプリケーションにアクセスできるようにする。
- マルチテナンシー : 隔離されたユーザーデータや設定を持つ複数の組織やテナントをサポート。