3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Keycloak 概要

Posted at

Keycloakの概要情報をまとめる。学習目的記事。

Keycloakとは?

  • オープンソースのアイデンティティ・アクセス管理用ソフト。

Keycloakの機能

※以下、公式サイトより抜粋。

  • SSO/SLO
  • 以下のプロトコルサポート
    • OpenID Connect
    • OAuth 2.0
    • SAML
  • 外部のOpenID Connect/SAMLに対応しIdPによる認証。
  • ソーシャル・ログイン
  • ユーザー・フェデレーション
  • ユーザー、ロール、ロール・マッピング、クライアント設定の管理コンソール。
  • ユーザーに自身のアカウントを一元管理することを許可するためのアカウント管理コンソール。
  • 二要素認証
  • ログイン・フロー
    など...

Keycloakの概念

keycloak_concept.png

  • ユーザー
    • システムにログイン可能なエンティティーを指す。Eメール、ユーザー名、住所、電話番号、生年月日など自分自身に関連する属性を保持する。また、"グループ"や"ロール"が割り当てられることもある。
  • クレデンシャル
    • Keycloakがユーザーの身元を確認するために使用するデータの一部を指す。例:パスワード、ワンタイムパスワード、デジタル証明書、指紋など。
  • ロール
    • ユーザーのタイプまたはグループの識別子を指す。 Adminusermanageremployee などが組織内に存在するロールとして定義されている。パーミッションを割り当てて、複数のユーザーに対する制御が可能。ユーザーには0以上のロールをマッピング可能。
  • グループ
    • ユーザーの管理単位を指す。属性を定義可能。ロールをマッピングできる。グループのメンバーになったユーザーは、そのグループが定義する属性とロールのマッピングを継承する。
  • レルム
    • ユーザー、クレデンシャル、ロール、および、グループのセットを管理する主体を指す。ユーザーは属しているレルムにログインする。レルムは互いに分離され、制御するユーザーのみを管理し、認証できる。
  • クライアント
    • Keycloakにユーザーの認証を要求できるエンティティーを指す。Keycloakを使用して自身を保護し、シングル・サインオン機能を提供するアプリケーションとサービスを指す。また、クライアントはKeycloakによって保護されるネットワーク上の他サービスをセキュアに呼び出すために、アイデンティティー情報やアクセストークンを要求する。

ローカルDocker環境構築

ローカルでのDocker環境構築例

  1. 以下のDockerコマンドを実行する。

    docker run -d -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=adminpass --name keycloak_test jboss/keycloak
    

    ※初期ユーザー情報やポート、コンテナ名は自環境に合わせて適宜設定する。

  2. ブラウザからhttp://localhost:8080/auth/admin/ (ログイン画面)にアクセスする。
    ※以下の画面が表示される。
    keycloak_login.png

  3. 初期ユーザ admin パスワード adminpass でログインする。
    ※以下の画面が表示される。
    keycloak_console.png

参考情報

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?