Update README.md

This commit is contained in:
Руслан 2023-08-03 17:39:36 +06:00 committed by GitHub
parent e5ace0ddb8
commit dc7f56c858
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

104
README.md
View File

@ -1,95 +1,93 @@
[![Build Status](https://app.travis-ci.com/larskanis/pg-ldap-sync.svg?branch=master)](https://app.travis-ci.com/larskanis/pg-ldap-sync) [![Build status](https://ci.appveyor.com/api/projects/status/09xn9q5p64jbxtka/branch/master?svg=true)](https://ci.appveyor.com/project/larskanis/pg-ldap-sync/branch/master) # Использование разрешений LDAP в PostgreSQL
# Use LDAP permissions in PostgreSQL
* http://github.com/larskanis/pg-ldap-sync * http://github.com/larskanis/pg-ldap-sync
## DESCRIPTION: ## ОПИСАНИЕ:
LDAP is often used for a centralized user and role management in an enterprise environment. LDAP часто используется для централизованного управления пользователями и ролями в корпоративной среде.
PostgreSQL offers different authentication methods, like LDAP, SSPI, GSSAPI or SSL. PostgreSQL предлагает различные методы аутентификации, такие как LDAP, SSPI, GSSAPI или SSL.
However, for any method the user must already exist in the database, before the authentication can be used. Однако при любом методе пользователь должен уже существовать в базе данных, прежде чем аутентификация может быть использована.
There is currently no direct authorization of database users on LDAP. В настоящее время не существует прямой авторизации пользователей базы данных по LDAP.
So roles and memberships has to be administered twice. Поэтому роли и членство приходится администрировать дважды.
This program helps to solve the issue by synchronizing users, groups and their memberships from LDAP to PostgreSQL. Данная программа позволяет решить эту проблему путем синхронизации пользователей, групп и их членства из LDAP в PostgreSQL.
Access to LDAP is used read-only. Доступ к LDAP используется только для чтения.
`pg_ldap_sync` issues proper CREATE ROLE, DROP ROLE, GRANT and REVOKE commands to synchronize users and groups. Для синхронизации пользователей и групп `pg_ldap_sync` выдает соответствующие команды CREATE ROLE, DROP ROLE, GRANT и REVOKE.
It is meant to be started as a cron job. Она предназначена для запуска в качестве cron-задания.
## FEATURES: ## FEATURES:
* User+group creation, deletion and changes in memberships are synchronized from LDAP to PostgreSQL * Создание, удаление пользователей и групп, а также изменения в членстве синхронизируются из LDAP в PostgreSQL.
* Nested groups/roles supported * Поддерживаются вложенные группы/роли
* Configurable per YAML config file * Настраивается в конфигурационном файле YAML
* Can use Active Directory as LDAP-Server * Возможность использования Active Directory в качестве LDAP-сервера
* Set scope of considered users/groups on LDAP and PG side * Установка области видимости рассматриваемых пользователей/групп на стороне LDAP и PG
* Test mode which doesn't do any changes to the DBMS * Тестовый режим, не вносящий никаких изменений в СУБД
* Both LDAP and PG connections can be secured by SSL/TLS * Соединения между LDAP и PG могут быть защищены с помощью SSL/TLS
* NTLM and Kerberos authentication to LDAP server * NTLM и Kerberos аутентификация на LDAP-сервере
## REQUIREMENTS: ## ТРЕБОВАНИЯ:
* Ruby-2.0+ * Ruby-2.0+
* LDAP-v3 server * LDAP-v3-сервер
* PostgreSQL-server v9.0+ * PostgreSQL-сервер v9.0+
## INSTALL: ## УСТАНОВКА:
Install Ruby: Установить Ruby:
* on Windows: http://rubyinstaller.org * под Windows: http://rubyinstaller.org
* on Debian/Ubuntu: `apt-get install ruby libpq-dev` * на Debian/Ubuntu: `apt-get install ruby libpq-dev`.
Install pg-ldap-sync and required dependencies: Установите pg-ldap-sync и необходимые зависимости:
```sh ``sh
gem install pg-ldap-sync gem install pg-ldap-sync
``` ```
### Install from Git: ### Установка из Git:
```sh ``sh
git clone https://github.com/fruworg/pg-ldap-sync.git git clone https://github.com/fruworg/pg-ldap-sync.git
cd pg-ldap-sync cd pg-ldap-sync
gem install bundler:1.15.3 gem install bundler
bundle _1.15.3_ install bundle install
bundle exec rake install bundle exec rake install
``` ```
## USAGE: ## ИСПОЛЬЗОВАНИЕ:
Create a config file based on Создать файл конфигурации на основе
[config/sample-config.yaml](https://github.com/larskanis/pg-ldap-sync/blob/master/config/sample-config.yaml) [config/sample-config.yaml](https://github.com/fruworg/pg-ldap-sync/blob/master/config/sample-config.yaml)
or even better или еще лучше
[config/sample-config2.yaml](https://github.com/larskanis/pg-ldap-sync/blob/master/config/sample-config2.yaml) [config/sample-config2.yaml](https://github.com/fruworg/pg-ldap-sync/blob/master/config/sample-config2.yaml).
Run in test-mode: Запустить в тестовом режиме:
```sh ``sh
pg_ldap_sync -c my_config.yaml -vv -t pg_ldap_sync -c my_config.yaml -vv -t
``` ```
Run in modify-mode: Запуск в режиме модификации:
```sh ``sh
pg_ldap_sync -c my_config.yaml -vv pg_ldap_sync -c my_config.yaml -vv
``` ```
It is recommended to avoid granting permissions to synchronized users on the PostgreSQL server, but to grant permissions to groups instead. Рекомендуется не предоставлять права синхронизируемым пользователям на сервере PostgreSQL, а предоставлять права группам.
This is because `DROP USER` statements invoked when a user leaves otherwise fail due to depending objects. Это связано с тем, что операторы `DROP USER`, вызываемые при уходе пользователя, в противном случае терпят неудачу из-за наличия зависимых объектов.
`DROP GROUP` equally fails if there are depending objects, but groups are typically more stable and removed rarely. Оператор `DROP GROUP` также не работает при наличии зависимых объектов, но группы, как правило, более стабильны и удаляются редко.
## TEST: ## ТЕСТ:
There is a small test suite in the `test` directory that runs against an internal LDAP server and a PostgreSQL server. Ensure `pg_ctl`, `initdb` and `psql` commands are in the `PATH` like so: В каталоге `test` находится небольшой тестовый набор, который работает с внутренним LDAP-сервером и сервером PostgreSQL. Убедитесь, что команды `pg_ctl`, `initdb` и `psql` находятся в `PATH` следующим образом:
```sh ``sh
cd pg-ldap-sync cd pg-ldap-sync
bundle install установить пакет
PATH=$PATH:/usr/lib/postgresql/10/bin/ bundle exec rake test PATH=$PATH:/usr/lib/postgresql/10/bin/ bundle exec rake test
``` ```
## ISSUES: ## ISSUES:
* There is currently no way to set certain user attributes in PG based on individual attributes in LDAP (expiration date etc.) * В настоящее время нет возможности установить определенные атрибуты пользователя в PG на основе индивидуальных атрибутов в LDAP (срок действия и т.д.).
## License ## Лицензия
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT). Гем доступен с открытым исходным кодом на условиях [MIT License](https://opensource.org/licenses/MIT).