Рубрики
Uncategorized

ARGOCD: интеграция OKTA и группы пользователей

В предыдущем Post Argocd: пользователи, доступ и RBAC мы проверили, как управлять пользователями и их PE … Теги с безопасностью, Куберанетами, DEVOPS, Учебником.

В предыдущем посте ARGOCD: пользователи, доступ и RBAC Мы проверили, как управлять пользователями и их разрешениями в ARGOCD, теперь давайте добавим аутентификацию SSO.

Идея состоит в том, что мы не добавляем учетные записи пользователей локально в Configmap Argocd, но вместо этого будет использовать наши базы данных Okta Users, и Okta будет выполнять их аутентификацию. А на боковой стороне Argocd выполнит авторизацию пользователей, то есть проверит свои границы разрешений.

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

Мы будем использовать SAML (с DEX) см. также Что такое: SAML — обзор, его структура и просит отслеживать между женкинсом и Okta SSO Сообщение для более подробной информации о самле.

Конфигурация ОКТА

Перейдите на свою учетную запись Okta и создайте приложение SAML:

Для логотипа я использовал эту картинку:

На следующей странице установите следующие действия:

  • Один знак на URL а также
  • Аудитория URI (идентификатор SP ID) :
  • Ваш ARGOCD URL, как argourl.com/api/dex/callback
  • в Отчет о атрибутах : Имя — Email Формат базовый, значение — user.email.email.
  • в Атрибут группы : Имя — Группа , Формат Basic, в фильтре вы можете использовать Regeex, как показано в Документация — Тогда, Группы Окта будут отфильтрованы, прежде чем передавать их в Argocd во время Контекст аутентификации или ничего не фильтруйте, устанавливая Regeex как «*»:

Или вы можете отфильтровать список групп, используя |:

На следующей странице установите Я клиент Okta добавив внутреннее приложение и нажмите Готово:

Назначьте приложение пользователю или группе:

Переключитесь на вкладку «Войти» и нажмите на Просмотр инструкций по настройке кнопка:

Теперь пойдем в наш экземпляр ARGOCD.

Конфигурация ARGOCD

Редактировать Argocd-CM Configmap.:

$ kubectl -n dev-1–18-devops-argocd-ns edit configmap argocd-cm

Задавать:

  • URL : (Можно уже установить, просто проверять его значение) — экземпляр Argocd внешний URL-адрес
  • Ссурт : ЛИЦИРОВАНИЕ ЛИЦИРОВАНИЯ ОДИНГОВЫЙ УРЛ С страницы, которая была открыта после нажатия Просмотр инструкций по настройке кнопка
  • Кадата : Сертификат Окта с одной и той же страницы, закодированной с base64, например, на https://www.base64encode.org сайт

Теперь ваш конфиг будет выглядеть так:

apiVersion: v1
data:
  url: [https://dev-1-18.argocd.example.com](https://dev-1-18.argocd.example.com)
  dex.config: |
    logger:
      level: debug
      format: json
    connectors:
    - type: saml
      id: okta
      name: Okta
      config:
        ssoURL: [https://okta.example.com/app/appname/exk9f6o07dKjN0huC357/sso/saml](https://okta.example.com/app/appname/exk9f6o07dKjN0huC357/sso/saml)
        caData: |
          LS0tLS***FLS0tLS0=
        usernameAttr: email
        emailAttr: email
        groupsAttr: group
...

Роли и группы пользователей в Argocd

Редактировать Argocd-RBAC-CM Configmap, добавьте Дежол Группа (получит от окаировки) сопоставления к Роль: Админ :

g, DevOps, role:admin

Кроме того, здесь вы можете отключить Админ Пользователь и добавить привязки бэкэнд и веб-групп к приложениям на своих проектах:

...
data:
  admin.enabled: "false"
  policy.csv: |
    p, role:backend-app-admin, applications, *, Backend/*, allow
    p, role:web-app-admin, applications, *, Web/*, allow
    g, DevOps, role:admin
  policy.default: role:''
  scopes: '[email,groups]'
...

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

Сохранить и попробуйте войти в систему:

Argocd cli login.

Использовать CLI с SSO, просто добавьте --sso Вариант, а в --username — Укажите логин Okta:

$ argocd login dev-1–18.argocd.example.com --sso --username arseniy@example.com
Opening browser for authentication
…
Authentication successful
'arseniy@example.com' logged in successfully
Context 'dev-1–18.argocd.example.com' updated

Браузер по умолчанию будет открыт для аутентификации вас с Okta.

Ошибки и проблемы

Плохой запрос — Ошибка сеанса пользователя

При использовании Декс Имейте в виду, что он не позволяет инициировать провайдера входа в систему, I.S. Вы можете войти в экземпляр Argocd с вашей ОКТТа — вы получите ошибку 400:

Таким образом, Стоит скрыть приложение от пользователей:

Не удалось аутентифицировать: нет атрибута с именем «group»: [Email]

В случае ошибки вроде « не смогли аутентификацию: Нет атрибута с именем «Группа»: [Email] «:

Используйте Saml-Chrome-панель и проверьте атрибуты, которые отправляются в АТРАВЛЕНИЯ Из Окта:


    
        arseniy@example.com
    

В этом примере я сделал опечатки в конфигурации Okta, и она не отправляет атрибут.

Запись должна быть следующей:


    
        arseniy@example.com
    
    
        DevOps
    

Сделанный.

Первоначально опубликовано в RTFM: Linux, DevOps и системное управление Отказ

Оригинал: «https://dev.to/setevoy/argocd-okta-integration-and-user-groups-14ak»