☸️ Управление пользователями OpenShift / OKD с индентити провайдером HTPasswd |

☸️ Управление пользователями OpenShift / OKD с индентити провайдером HTPasswd

Мануал

В этом руководстве объясняется, как можно настроить HTPasswd в качестве провайдера для кластера OCP / OKD.

Вы можете настроить сервер OpenShift OAuth на использование ряда провайдеров идентификации, а именно:

HTPasswd Проверяет имена пользователей и пароли по секрету, в котором хранятся учетные данные, созданные с помощью htpasswd.
LDAP Конфигурация провайдера идентификации LDAP для проверки имен пользователей и паролей на сервере LDAPv3, используя простую аутентификацию.
Keystone
Включает общую аутентификацию с сервером OpenStack Keystone v3.
OpenID Connect
Интегрируется с провайдером идентификации OpenID Connect, используя Code FLow.
GitHub
Конфигурация провайдера идентификации GitHub для проверки имен пользователей и паролей с помощью GitHub или сервера аутентификации OAuth GitHub Enterprises.

Провайдер HTPasswd OAuth

Этот вариант проверяет пользователей по секрету, который содержит имена пользователей и пароли, сгенерированные с помощью команды htpasswd из проекта Apache HTTP Server.

Как администратор кластера, вы можете изменить данные в секрете.

Что означает обновление имен пользователей и паролей, используемых для аутентификации.

Управление пользователями кластера с помощью HTPasswd Identity Provider подходит только для сред разработки с небольшим количеством пользователей.

В большинстве производственных сред с сотнями и тысячами пользователей необходим более мощный провайдер авторизации, который интегрируется с IDMорганизации.

Управление пользователями OpenShift / OKD с провайдером идентификации HTPasswd

Чтобы добавить другого  инденити провайдера в OpenShift / OKD, вам необходимо получить доступ к вашему кластеру OpenShift в качестве администратора кластера.

Если вы работаете с недавно установленным кластером OpenShift, доступны два способа аутентификации запросов API:

  • С виртуальным пользователем и паролем kubeadmin, который предоставляет токен доступа OAuth.
  • Использование файла kubeconfig, в который встроен сертификат клиента X.509, срок действия которого никогда не истекает.
В этом руководстве мы будем использовать метод аутентификации kubeconfig для добавления провайдера HTPasswd в OpenShift.
Клиент oc необходим для этой операции.
В зависимости от расположения файла kubeconfig может потребоваться его экспорт.
export KUBECONFIG=/root/auth/kubeconfig
Убедитесь, что все работает, проверив доступные узлы в кластере.
$ oc get nodes

В качестве альтернативы вы можете использовать параметр –config команды oc:

$ oc --config /path/to/kubeconfig get nodes

Для аутентификации с виртуальным пользователем kubeadm вы выполните команду, аналогичную приведенной ниже.

$ oc login -u kubeadmin -p KubeadmUserPassword

Настройка индентити провайдера  HTPasswd

Начнем с создания необходимого файла htpasswd, в котором будут храниться учетные данные пользователя.

Нужно установить один пакет, который предоставляет команду htpasswd.

--- CentOS / RHEL / Fedora ---
$ sudo yum -y install httpd-tools

--- Ubuntu / Debian ---
$ sudo apt install apache2-utils

--- Arch Linux / Manjaro
$  sudo pacman -S apache

Создание файла HTPasswd

Создайте новый или обновите существующий файл htpasswd.

$ htpasswd -c -B -b ocp_users.htpasswd user1 password1

Чтобы добавить или обновить учетные данные, используйте:

$ htpasswd -Bb ocp_users.htpasswd user2 password2
$ htpasswd -Bb ocp_users.htpasswd user3 password3

Убедитесь, что файл был создан.

$ cat ocp_users.htpasswd 
user1:$2y$05$VNgzIy33djzSlOLkHqiR6.CG9oQaPM4CZz4q86Z4s4m23gtllV7I.
user2:$2y$05$0grDO248lSANnOWOlqY2BO/B6/CWm6yJGSYBfZgDnJFBsVrBIIaTW
user3:$2y$05$pqp6mo9oGk7E2AIfawDKg.ntUIUjIMRidYvR017mRxdhs5.ctWED2

Чтобы удалить пользователя из htpasswd, выполните следующую команду:

$ htpasswd -D ocp_users.htpasswd user3
Deleting password for user user3

Создайте секрет HTPasswd

Нам нужно определить секрет, который содержит файл пользователя HTPasswd, прежде чем мы сможем использовать провайдер идентификации HTPasswd.

$ oc create secret generic htpass-secret \
  --from-file=htpasswd=./ocp_users.htpasswd \
  -n openshift-config

Настройка пользовательского ресурса OAuth

Чтобы использовать провайдер идентити HTPasswd, пользовательский ресурс OAuth должен быть отредактирован, чтобы добавить запись в массив провайдеров .spec.identity.

Давайте создадим новый файл.

$ vim htpasswd-oauth.yaml

Добавьте и отредактируйте содержание, показанное ниже.

apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
  name: cluster
spec:
  identityProviders:
  - name: Local Password
    mappingMethod: claim 
    type: HTPasswd
    htpasswd:
      fileData:
        name: htpass-secret 

Где:

  • ocp-htpasswd-provider – это имя пройвайдера. Это имя добавляется к имени пользователя провайдера для формирования имени.
  • htpass-secret – это имя существующего секретного файла, содержащего файл, созданный с использованием htpasswd.

Примените определенный CR:

oc apply -f htpasswd-oauth.yaml
Теперь вы можете выбрать «Local Password» на экране входа в систему OpenShift для аутентификации у провайдера HTPasswd с использованием добавленных учетных данных.
Вы также можете войти в кластер из CLI с помощью команды oc:
$ oc login -u <username>
Введите пароль при появлении запроса.

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий