Статьи

Развертывание Identity Server через пользовательское хранилище на основе JDBC

В этом посте я продемонстрирую, как настроить WSO2 Identity Server с хранилищем пользователей JDBC. Для демонстрации я использую хранилище пользователей MySQL, но та же процедура применима и к любому другому хранилищу пользователей JDBC. Моя среда

  • ОС — Ubuntu 12.10
  • Java — 1.6
  • WSO2 IS 4.5.0
  1. Настройка базы данных MySQL
  2. Конфигурация хранилища пользователей в IS — первичная
  3. Конфигурация хранилища пользователя в IS — вторичный

(Я имею в виду извлеченную папку wso2is как CARBON_HOME в этом посте)

Настройка базы данных MySQL

Сначала нам нужно запустить MySQL. Этот пост будет полезен при настройке базы данных MySQL , если это еще не сделано. После запуска MySQL мы должны настроить базу данных в соответствии с требованиями Identity Server. Сервер упаковывает в себя необходимые сценарии sql, которые можно найти по адресу CARBON_HOME / dbscripts.

dbscrpts
Давайте войдем на сервер MySQL и выполним следующее:

Создать базу данных,

1
mysql> create datbase JDBC_demo_user_store;

Проверьте создание,

1
mysql> show databases;

showdbs

Затем используйте сценарий sql и настройте базу данных,

1
mysql> use JDBC_demo_user_store;
1
mysql> source <path_to>/wso2is-4.5.0/dbscripts/mysql.sql;

Это запустит запросы в сценариях SQL и настроит необходимые таблицы.

Теперь, если мы введем команды, будут показаны следующие результаты.

1
mysql> show tables;

showTables

Теперь мы закончили с настройкой базы данных. Мы можем пойти дальше и попросить Identiy Server использовать его.

Примечание. Прежде чем перейти к следующим шагам, нам также необходимо добавить соединитель mysql-jdbc на Identity Server. Вы можете скачать его отсюда и поместить в CARBON_HOME / repository / components / lib.

Конфигурация хранилища пользователей в IS — первичная

Identity Server использует встроенную базу данных H2 для хранения сведений о разрешениях и т. Д., А сведения об источниках данных находятся в CARBON_HOME / repository / conf / datasources / master-datasources.xml. Здесь мы также можем добавить информацию об источнике данных нашего нового пользовательского хранилища JDBC. Вот файл master-datasources.xml в соответствии с моей настройкой.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
<datasource>
            <name>JDBC_demo_user_store</name>
            <description>The datasource used for JDBC_demo_user_store</description>
            <jndiConfig>
                <name>jdbc/JDBC_demo_user_store</name>
            </jndiConfig>
            <definition type="RDBMS">
                <configuration>
                    <url>jdbc:mysql://localhost:3306/JDBC_demo_user_store</url>
                    <username>root</username>
                    <password>pushpalanka2</password>
                    <driverClassName>com.mysql.jdbc.Driver</driverClassName>
                    <maxActive>50</maxActive>
                    <maxWait>60000</maxWait>
                    <testOnBorrow>true</testOnBorrow>
                    <validationQuery>SELECT 1</validationQuery>
                    <validationInterval>30000</validationInterval>
                </configuration>
            </definition>
</datasource>

Основная конфигурация для хранилища пользователей находится в файле CARBON_HOME / repository / conf / user-mgt.xml. По умолчанию это указывает на встроенный ReadLDAPUserStoreManager. Теперь нам нужно изменить его на JDBCUserStoreManager. Итак, давайте закомментируем один по умолчанию и раскомментируем JDBCUserStoreManager. Теперь у нас будет файл user-mgt.xml, похожий на этот . Если мы хотим, мы можем изменить эти свойства, как мы хотим, в соответствии с контекстом.

Теперь настройки завершены. Давайте запустим сервер с bin / wso2server.sh. После начала, если мы пойдем дальше и добавим пользователя в «основной» домен.

Добавить пользователя

Теперь, если мы пойдем и проверим таблицу UM_USER, созданную в нашей базе данных, она также выведет список пользователей.

UM_USER

Конфигурация хранилища пользователя в IS — вторичный

Теперь давайте посмотрим, как мы можем использовать это же хранилище пользователей MySQL в качестве вторичного хранилища пользователей в IS. Это довольно легко, что мы можем сделать все это через пользовательский интерфейс, без каких-либо изменений в указанных выше конфигурациях по умолчанию в master-datasources.xml или user-mgt.xml. Здесь мы должны добавить имя драйвера, URL, имя пользователя и пароль в качестве обязательных свойств, которые мы ранее указали в master-datasources.xml.

щ

После добавления он будет показан в списке доступных пользовательских магазинов. Определение менеджера пользовательского магазина в пользовательском интерфейсе интуитивно понятно, но если вы хотите больше подробностей, вы можете обратиться к этому посту . Если мы хотим, мы также можем редактировать дополнительные свойства. В расширенном разделе содержатся операторы SQL, необходимые для менеджера хранилища пользователей JDBC.

Расширенный параметр: Если мы редактируем структуру базы данных (сценарий sql), нам нужно обновить эти SQL-запросы в соответствии с этой схемой, используя этот параметр Advanced.

Теперь, если мы пойдем и попробуем добавить нового пользователя, мы увидим и этот вторичный домен.

Скриншот 2013-09-05 17-01-50

Мы можем видеть, как пользователи добавляются в базу данных так же, как это было в основном хранилище пользователей, если мы выберем этот домен и добавим пользователей.