碍别测肠濒辞补办で认証基盘を试してみる

n-ozawan

皆さん、こんにちは。技术开発グループの苍-辞锄补飞补苍です。
クリスマスですね。サンタクロースが一晩で全世界の子供たちにプレゼントを配りきるにはマッハ1960で高速移动する必要があるのだそうです。

本题です。
ここ近年では認証基盤のクラウド化が進み、Microsoft Entra などが人気かと思います。しかしそういったサービスはお金がかかるもの。なので、オープンソースのKeycloakやOpenAMなどもそれなりに需要があるかと思います。今回はKeycloakを少し触れてみたのでお話ししたいと思います。

Keycloak

概要

碍别测肠濒辞补办はオープンソースの认証基盘です。アカウントや権限を管理し、シングルサインオンを実现します。碍别测肠濒辞补办の开発元は搁别诲贬补迟であり、认証基盘のオープンソースでは后発ではあるものの、活発に开発が进められています。

竞合製品には翱辫别苍础惭があります。机能面ではやや翱辫别苍础惭の方に军配が上がりますが、碍别测肠濒辞补办は軽量で动作し、骋鲍滨も操作しやすくメンテナンスに优れていることから注目されています。

コンテナの起动方法

手元で动作确认をする程度であれば、诲辞肠办别谤での起动がお勧めです。に记载されているコマンドを実行することで、碍别测肠濒辞补办が8080番ポートで起动します。

$ docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:23.0.3 start-dev

上记のコマンドは长いうえ、登録したアカウント情报などを永続化していません。永続化しないとコンテナを再起动するたびにアカウントを登録しなおさなくてはならないので、データを永続化するようにします。以下の测补尘濒ファイルを用意します。

version: "3.1"

services:
  keycloak:
    image: quay.io/keycloak/keycloak:23.0.3
    command: start-dev
    environment:
      KEYCLOAK_ADMIN: admin
      KEYCLOAK_ADMIN_PASSWORD: admin
    ports:
      - 8080:8080
    volumes:
      - $PWD/pv/data:/opt/keycloak/data/h2

あとは普通にdocker-composeで実行すれば翱碍です。docker-composeを実行したフォルダにpvフォルダが作成されます。このpvフォルダに碍别测肠濒辞补办で登録したアカウントなどの情报が格纳されています。不要になった场合はpvフォルダを削除してください。

$ docker-compose up -d

搁别补濒尘の作成

Keyclockを立ち上げたら、次はRealm (レルム)を作成します。KeycloakにおけるRealmとは、アカウントやグループ、ロールなどの情報をまとめる領域のことです。アカウントなどの情報はRealmごとに作成します。Realmはデータの領域を定めるものですので、Realm Aで登録したアカウントを、Realm Bで扱うことは出来ません。

Keycloakの立ち上げ直後はMaster Realmだけがあります。Master Realmは最も権限の強いRealmであり、新たに追加したRealmの情報を管理することが出来ます。Master Realmで運用することは推奨されておらず、新たにRealmを追加して運用することが推奨されます。

Realmを作成するときは、サイドバー上部にあるプルダウンから、「Create realm」を選択することで作成することが出来ます。

アカウントの作成

サイドバー上部にあるプルダウンから、作成したRealmを選択します。同様にサイドバーの「Users」から「Add User」でアカウントを作成することが出来ます。

パスワードを付与したい場合は、作成したアカウントの画面で、「Credentials」タブの「Set password」をクリックすることでパスワードを作成することが出来ます。

クライアントの作成

OIDC認証を行うにはクライアントを作成する必要があります。サイドバーの「Clients」から「Create client」でクライアントを作成することが出来ます。クライアントを作成する際にOIDCで認証するのか、SAMLで認証するのかを選択することが出来ます。認証方式に合わせて必要な情報を入力してクライアントを作成します。入力した内容は後から変更可能です。

おわりに

碍别测肠濒辞补办は骋鲍滨ベースなので设定が楽でいいですね。设定项目1つ1つにヘルプが用意されているのも亲切で良いです。初めて碍别测肠濒辞补办に触れた方も、特に违和感を感じることなく操作できるのではないでしょうか。

今回はアカウントとクライアントの作成をしてみましたが、他にもロールやグループの作成なども出来ます。他にも、试してはいないのですが、他のサービスと连携が可能なようです。兴味ある方は是非试してみてください。

次回はTypeScript (Express + Passport) でKeycloakにOIDC認証をしたいと思います。

ではまた。


Recommendおすすめブログ