OpenID Connect(OIDC)は、現代のセキュリティアーキテクチャにおいて不可欠な技術であり、Keycloakはその実裝と拡張を擔う重要なフレームワークです。本記事では、Keycloakが提供する最新のセキュリティ機能と、システムの可観測性を向上させるための技術革新について詳しく解説します。特に、RFC 9449(O2)やOID4 VCI規範、O6コミュニティ活動を通じた安全基準の強化、およびSLO(Service Level Objective)に基づく可観測性ツールの導入について掘り下げます。
OpenID ConnectはOAuth 2.0の上に構築された認証プロトコルであり、ユーザーの認証情報を安全に共有するための標準です。Keycloakは、このプロトコルを実裝し、IDプロバイダー(IDP)として機能するため、企業のセキュリティアーキテクチャにおいて中心的な役割を果たします。Keycloakは、OAuth 2.0とOIDCの実裝に加え、クラウドネイティブ環境での運用をサポートするため、CNCF(Cloud Native Computing Foundation)の技術スタックと連攜可能です。
従來のOIDCでは、アクセストークンがベアラートークンとして扱われ、持っている誰でも使用可能でした。これにより、トークンの盜難が発生した場合、不正利用のリスクが高まりました。RFC 9449(O2)では、DOP(Dynamic Proof of Possession)メカニズムが導入され、アクセストークンの使用を制限する仕組みが実裝されました。DOPは、トークン発行者と受信者の関係を動的に検証し、不正な利用を防ぐことで、セキュリティを強化します。
OID4 VCI(OpenID for Verifiable Credentials Infrastructure)は、EUのEUDI(European Digital Identity)プロジェクトにおける身分証明書(Verifiable Credentials)のやり取りをサポートする規範です。Keycloakは、OID4 VCIの一部を実裝し、トークン発行者(Token Issuer)および資産サーバー(Credential Issuer)として機能します。ユーザークライアント(Wallet)は、アクセストークンを取得した後、VCをリクエストする仕組みが導入されています。
O6コミュニティは、新たなセキュリティ基準の導入を推進しており、ワークロードアイデンティティ、トランザクショントークン、Spiffyなどの技術が導入されています。また、FEA(First-Party Applications)とSSF(Signal Framework)の統合により、アプリケーションのセキュリティが強化されています。FIPA(First-Party Identity Protocol)は、ブラウザを介さずにユーザーの資格情報を直接入力できる仕組みを提供し、第一方アプリケーションのセキュリティを向上させます。
Keycloakでは、サービスの信頼性を測定するためのSLOが導入され、95%の認証リクエストが250ミリ秒以內に完了するなどの指標が設定されています。この指標は、HTTP応答時間、データベース接続プールの使用率など、サービスのパフォーマンスを測定するための指標として利用されます。
Keycloak 26.2では、Grafanaダッシュボードが內蔵され、クラスタの可用性、JVMの使用率、データベース接続プールの狀態、HTTPリクエストの分佈を可視化する機能が提供されています。また、Prometheus、Jaeger、Lokiなどのツールとの統合が可能で、クラウドネイティブ環境での運用をサポートします。
Keycloak 26.0からTracing機能が導入され、26.1では完全にサポートされています。すべてのHTTPリクエスト(IDプロバイダーの委任を含む)、データベースやLDAPの呼び出しのスパン(span)を追跡可能です。Tracing Provider SPI(Service Provider Interface)を拡張することで、カスタムスパンの追加が可能となり、柔軟な監視が実現されます。
Keycloakは、Elastic Common Schema(ECS)フォーマットをサポートし、すべてのログハンドラがこのフォーマットに互換性を持ちます。これにより、ログの統合と分析が容易になります。
Gatlingを用いて、1秒あたり100ユーザーのログインをシミュレーションし、95%のリクエストが250ミリ秒以內に完了するSLOを確認しました。熱図分析では、リクエストの遅延分佈を可視化し、高遅延のエンドポイント(例:/auth
、/realms
)を特定しました。
Exemplarを用いて、リクエストスパンとログを関連付けることで、データベースクエリの遅延(例:PostgreSQLの接続問題)を分析しました。これにより、システムのパフォーマンスを迅速に改善することができました。
Chaos Meshを用いて、PostgreSQLサービスに100ミリ秒のランダムな遅延を注入し、SLOの降格(例:56%のリクエストが250ミリ秒以內に完了)を検証しました。これにより、システムの信頼性を向上させるためのテストが可能となりました。
Keycloakは、OpenID Connectと可観測性の分野において、継続的な進化を遂げています。DOPやOID4 VCIの導入により、セキュリティが強化され、GrafanaダッシュボードやTracing機能により、システムの信頼性が向上しています。これらの技術は、クラウドネイティブ環境での運用において不可欠であり、今後の技術革新に期待が寄せられます。