2017年11月12日日曜日

SSOのOSSである「Keycloak」を動かしてみる 

要件
・Java 8 JDK
・RAM: 512MB以上
・ディスク容量: 1GB以上
・データベース:Postgres, MySql, Oracle, etc
★クラスターで運用したい場合はRDBの冗長化が必須。
・Linux OSでインストールする場合、十分なエントロピーを確保するため、/dev/urandomを利用すること。

・Keycloackでは、standaloneモードとクラスターモードをサポートしている。今回はstandaloneモードで起動する。
・standaloneモードで起動すると、バンドルしているWildFlyが起動する。
・デフォルトのDBは、バンドルしているH2が利用される。

インストール手順
①以下のサイトからKeyclockの資材をダウンロードする。
  (3.4.0が最新版)

https://downloads.jboss.org/keycloak/3.4.0.Final/keycloak-3.4.0.Final.zip

②「keycloak-3.4.0.Final.zip 」を解凍する。

③keycloakを起動する。

> cd C:\Users\bushidoyasu\Downloads\keycloak-3.4.0.Final\keycloak-3.4.0.Final\bin
> standalone.bat

上記のバッチを実行すると、デフォルトではポート9990で起動する。

➃管理ユーザを作成する。

C:\Users\bushidoyasu\Downloads\keycloak-3.4.0.Final\keycloak-3.4.0.Final\bin>add-user.bat

What type of user do you wish to add?
 a) Management User (mgmt-users.properties)
 b) Application User (application-users.properties)
(a): a

Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : keycloakadmin
Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
 - The password should be different from the username
 - The password should not be one of the following restricted values {root, admin, administrator}
 - The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
Password :
Re-enter Password :
What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[  ]:
About to add user 'keycloakadmin' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'keycloakadmin' to file 'C:\Users\bushidoyasu\Downloads\keycloak-3.4.0.Final\keycloak-3.4.0.Final\standalone\configuration\mgmt-users.properties'
Added user 'keycloakadmin' to file 'C:\Users\bushidoyasu\Downloads\keycloak-3.4.0.Final\keycloak-3.4.0.Final\domain\configuration\mgmt-users.properties'
Added user 'keycloakadmin' with groups  to file 'C:\Users\bushidoyasu\Downloads\keycloak-3.4.0.Final\keycloak-3.4.0.Final\standalone\configuration\mgmt-groups.properties'
Added user 'keycloakadmin' with groups  to file 'C:\Users\bushidoyasu\Downloads\keycloak-3.4.0.Final\keycloak-3.4.0.Final\domain\configuration\mgmt-groups.properties'
Is this new user going to be used for one AS process to connect to another AS process?
e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.
yes/no? yes
To represent the user add the following to the server-identities definition <secret value="XXX" />
続行するには何かキーを押してください . . .

⑤以下のURLにアクセスすると、BASIC認証が求められる。

http://localhost:9990/console/App.html

BASIC認証に成功すると、以下の管理画面が表示される。



⑥Keycloak用の管理ユーザを作成する。

>add-user-keycloak.bat -u test -p password
Added 'test' to 'C:\Users\bushidoyasu\Downloads\keycloak-3.4.0.Final\keycloak-3.4.0.Final\standalone\configuration\keycloak-add-user.json', restart server to load user

⑦Keycloakを再起動する。

⑧以下のURLにアクセスし、ログインできることを確認する。




<補足>
H2コンソールを起動し、データベースの中身をみてみる。

> java -cp ..\modules\system\layers\base\com\h2database\h2\main\h2-1.4.193.jar org.h2.tools.Server -webAllowOthers

keycloakというデータベースをのぞいてみても、何もテーブルが作られていない。。。




0 件のコメント: