今回は、PostgreSQLを利用するように環境設定を変更する。
前提
・「http://memoyasu.blogspot.jp/2017/11/ssoosskeycloak.html」の手順でKeycloakが動作していること。
・PostgreSQLが動作していること。
・PostgreSQLのログインユーザを作成済みであること。
postgres=# CREATE USER loginuser WITH PASSWORD 'password' CREATEDB;
CREATE ROLE
・「keycloak」というデータベースを作成済みであること。
postgres=# CREATE DATABASE keycloak OWNER loginuser;
CREATE DATABASE
postgres=#
手順
①PostgreSQL用のJDBCドライバをダウンロードする。
今回は「postgresql-9.4.1212.jar」を利用する。
https://jdbc.postgresql.org/download.html
②ドライバJARをモジュールにパッケージ化し、このモジュールをサーバーにインストールする。
「modules\system\layers\keycloak」ディレクトリ配下に「org\postgresql\main」ディレクトリを作成する。
> mkdir modules\system\layers\keycloak\org\postgresql\main
> copy postgresql-9.4.1212.jar modules\system\layers\keycloak\org\postgresql\main
③サーバの設定プロファイルでJDBCドライバを利用するようにする。
「modules\system\layers\keycloak\org\postgresql\main」ディレクトリ配下にmodule.xmlを作成する。
<?xml version="1.0" ?>
<module xmlns="urn:jboss:module:1.3" name="org.postgresql">
<resources>
<resource-root path="postgresql-9.4.1212.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
➃PostgreSQLのJDBCドライバを使用するようにデータソース設定を変更する。
standaloneモードで動作している場合は「standalone/configuration/standalone.xml」を修正する。
・・・
<datasources>
・・・
<drivers>
<driver name="postgresql" module="org.postgresql"> ★追加
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> ★追加
</driver> ★追加
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
・・・
⑤PostgreSQLへの接続パラメータを定義するようにデータソース設定を変更する。
<subsystem xmlns="urn:jboss:domain:datasources:5.0">
<datasources>
・・・
<!-- ★コメントアウト
<datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true">
<connection-url>jdbc:h2:${jboss.server.data.dir}/keycloak;AUTO_SERVER=TRUE</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
-->
<datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true">
<connection-url>jdbc:postgresql://localhost:5432/keycloak</connection-url>
<driver>postgresql</driver>
<pool>
<max-pool-size>20</max-pool-size>
</pool>
<security>
<user-name>loginuser</user-name>
<password>XXX</password>
</security>
</datasource>
<drivers>
<driver name="postgresql" module="org.postgresql">
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
</driver>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
</subsystem>
⑥Keycloakを再起動する。
⑦以下のURLにアクセスし、ユーザを作成した後、ログインできることを確認する。
http://localhost:8080/auth/
<補足>
・PostgreSQLのテーブルを参照し、作成したユーザが表示されることを確認してみる。
keycloak=>
keycloak=> select * from user_entity;
id | email | email_constraint | email_verified | enabled | federation_link | first_name | last_name | realm_id | username | created_timestamp | service_account_client_link | not_before --------------------------------------+-------+--------------------------------------+----------------+---------+-----------------+------------+-----------+----------+----------+-------------------+-----------------------------+------------ 721569fb-860e-4343-98a6-7da4e1810c5e | | 273582fe-df93-4c92-a80d-1dead0c0b192 | f | t | | | | master | test | 1510489536041 | | 0
(1 行)
0 件のコメント:
コメントを投稿