MENU

Keycloakとは何かを学ぶOSS認証基盤入門

Keycloak アイキャッチ
Keycloak

Keycloakは、Red Hatが中心となって2014年に開発を始めたオープンソースの認証認可基盤です。シングルサインオン、ソーシャルログイン、ユーザー連合、認可ポリシーといった機能を備え、自社のサーバーやクラウド上に自由にインストールして利用できます。商用のIDaaSと同等の機能を備えながら、利用料金がかからず内部のソースコードまで確認できるため、コスト最適化や情報主権を重視する企業、自治体、教育機関などで広く採用されています。OpenID ConnectとSAML 2.0の両方に対応しているのも大きな特徴です。

目次

この記事の目次

  1. Keycloakが提供する基本機能
  2. Keycloakを使ったSSOの仕組み
  3. KeycloakとSaaS型IDaaSの違い
  4. Keycloakを運用するときの注意点
  5. まとめ

Keycloakが提供する基本機能

Keycloakが提供する基本機能

Keycloakは認証認可に必要な要素をひと通り備えています。中心となるのはレルムと呼ばれる単位で、その中にユーザー、グループ、クライアント、ロールを定義します。クライアントは保護したいアプリケーションを表し、設定によりOpenID ConnectまたはSAMLで連携できます。これにより、社内システム、SaaS、モバイルアプリなど多様な構成のアプリを一つの認証基盤で束ねられるようになります。

ID連合機能では、Active DirectoryやLDAPサーバーをKeycloakの背後にぶら下げて、既存のIDをそのまま利用できます。さらに、GoogleやMicrosoft、GitHubなどのソーシャルログインを設定すれば、外部IDによるサインインも可能です。認可ポリシーはロールベースだけでなく、属性ベースのきめ細かいルールも書けるため、業務要件に合わせた厳密なアクセス制御を実装できます。

Keycloakを使ったSSOの仕組み

Keycloakを使ったSSOの仕組み

KeycloakでシングルサインオンがどのようにユーザーとアプリをつなぐかをOpenID Connectの流れで見ていきます。まずユーザーが社内ポータルなどのアプリにアクセスすると、アプリは未ログイン状態を検知し、Keycloakのログイン画面へリダイレクトします。ユーザーがIDとパスワードを入力して認証に成功すると、Keycloakは認可コードと呼ばれる短命のチケットをアプリに返します。

アプリはそのコードをサーバー間通信でKeycloakに送り直し、引き換えにIDトークンとアクセストークンを取得します。これらのトークンには、ユーザー名、メール、ロール、所属グループなどの情報が署名付きで含まれており、アプリ側はトークンを検証することでログイン状態を確立します。次に別のアプリへアクセスしたときには、Keycloakのセッションが残っているため、再度パスワードを入力することなく自動的にトークンを受け取り、シームレスに利用を続けられます。

KeycloakとSaaS型IDaaSの違い

KeycloakとSaaS型IDaaSの違い

Keycloakを選ぶか、SaaS型のIDaaSを選ぶかは、コストと自由度のバランスで決まります。Keycloakはオープンソースであり、ソフトウェアそのものの利用料はかかりません。データを自社環境に置けるため、個人情報を国外に出せない業務や、内部の認証ログを完全に自分たちで握りたいケースに適しています。一方で、サーバーの構築、バージョンアップ、可用性確保、セキュリティ更新は自社で行う必要があり、これらの運用負荷を見込んでおく必要があります。

対してSaaS型のIDaaSは、月額または年額の利用料は発生するものの、サーバーの面倒を見る必要がなく、SLAやセキュリティ認証もベンダーが担保してくれます。アップデートも自動で適用されるため、社内に大規模なインフラチームを持たない組織にとっては魅力的です。両者は対立する概念ではなく、用途や規模に応じて使い分けたり、組み合わせて使ったりすることで、最適な認証基盤を構築できます。

Keycloakを運用するときの注意点

Keycloakを運用するときの注意点

Keycloakは自由度が高い一方で、運用面の責任もすべて自社が負うことになります。まず、Keycloak本体はリリースが活発で、機能追加だけでなくセキュリティ修正も頻繁に行われます。長く同じバージョンを使い続けると、既知の脆弱性に晒され続けることになるため、年に一回程度はバージョンアップを行う計画を最初から立てておくのが現実的です。アップグレード時にはレルム設定のエクスポートやインポート手順を確認しておきます。

また、バックエンドのデータベースには全ユーザー情報が入るため、冗長化と暗号化、定期バックアップが欠かせません。管理者アカウントには強力な権限が集中しているので、多要素認証を必須化し、利用範囲を最小限に保ちます。カスタムテーマやSPIプラグインを使う場合は、それぞれの依存関係をGitで管理し、本番投入前にステージング環境で十分なテストを行うことで、安定した運用が可能になります。

まとめ

Keycloakは、無料で導入でき、自社のポリシーに合わせて細かく調整できる強力なオープンソース認証基盤です。SaaS型IDaaSにはない柔軟さがある一方で、運用は自分たちで担う必要があるため、規模と運用体制を踏まえて選ぶことが、長く安心して使い続けるための鍵となります。

※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次