DexProvider
Scope: Cluster
Описывает конфигурацию подключения стороннего провайдера.
С его помощью можно гибко настроить интеграцию каталога учетных записей с Kubernetes.
- spec
Обязательный параметр
- spec.bitbucketCloud
Параметры провайдера Bitbucket Cloud (можно указывать, только если
type: BitbucketCloud
).- spec.bitbucketCloud.clientID
Обязательный параметр
ID приложения, созданного в Bitbucket Cloud (Key).
- spec.bitbucketCloud.clientSecret
Обязательный параметр
Secret приложения, созданного в Bitbucket Cloud (Secret).
- spec.bitbucketCloud.includeTeamGroups
Включает в список команд все группы команды, в которых состоит пользователь.
Пример групп пользователя с включенной опцией:
groups=["my_team", "my_team/administrators", "my_team/members"]
По умолчанию:
false
- spec.bitbucketCloud.teams
Список-фильтр команд, допустимых для приема из Bitbucket Cloud.
Токен пользователя будет содержать пересечение множеств команд из Bitbucket Cloud и команд из этого списка. Если если множество окажется пустым, авторизация не будет считаться успешной.
Токен будет содержать команды пользователя в claim
groups
, как и у других провайдеров.
- spec.crowd
Параметры провайдера Crowd (можно указывать, только если
type: Crowd
).- spec.crowd.baseURL
Обязательный параметр
Адрес Crowd.
Пример:
baseURL: https://crowd.example.com/crowd
- spec.crowd.clientID
Обязательный параметр
ID приложения, созданного в Crowd (Application Name).
- spec.crowd.clientSecret
Обязательный параметр
Пароль приложения, созданного в Crowd (Password).
- spec.crowd.enableBasicAuth
Включает возможность basic-авторизации для Kubernetes API server.
В качестве credentials для basic-авторизации указываются логин и пароль пользователя из приложения, созданного в Crowd (возможно включить при указании только одного провайдера с типом OIDC/Crowd).
Работает только при включенном
publishAPI
.Полученные от IdP данные авторизации и групп сохраняются в кэш на 10 секунд.
- spec.crowd.groups
Список-фильтр групп, допустимых для приема из Crowd.
Токен пользователя будет содержать пересечение множеств групп из Crowd и групп из этого списка. Если множество окажется пустым, авторизация не будет считаться успешной.
Если параметр не указан, токен пользователя будет содержать все группы из Crowd.
- spec.crowd.usernamePrompt
Строка, которая будет отображаться возле поля для имени пользователя в форме ввода логина и пароля.
По умолчанию:
"Crowd username"
- spec.displayName
Обязательный параметр
Имя провайдера, которое будет отображено на странице выбора провайдера для аутентификации.
Если настроен всего один провайдер, страница выбора провайдера показываться не будет.
- spec.github
Параметры провайдера GitHub (можно указывать, только если
type: Github
).- spec.github.clientID
Обязательный параметр
ID организации на GitHub.
- spec.github.clientSecret
Обязательный параметр
Secret организации на GitHub.
- spec.github.orgs
Массив названий организаций в GitHub.
- spec.github.orgs.name
Обязательный параметр
Название организации.
- spec.github.orgs.teams
Список-фильтр команд, допустимых для приема из GitHub.
Токен пользователя будет содержать пересечение множеств команд из GitHub и команд из этого списка. Если множество окажется пустым, авторизация не будет считаться успешной.
Если параметр не указан, токен пользователя будет содержать все команды из GitHub.
- spec.github.teamNameField
Формат команд, которые будут получены из GitHub.
Если в организации
acme
есть группаSite Reliability Engineers
, в случае:Name
будет получена группа с именем['acme:Site Reliability Engineers']
;Slug
будет получена группа с именем['acme:site-reliability-engineers']
;Both
будут получены группы с именами['acme:Site Reliability Engineers', 'acme:site-reliability-engineers']
.
По умолчанию:
"Name"
Допустимые значения:
Name
,Slug
,Both
- spec.github.useLoginAsID
Позволяет вместо использования внутреннего GitHub ID использовать имя пользователя.
- spec.gitlab
Параметры провайдера GitLab (можно указывать, только если
type: Gitlab
).- spec.gitlab.baseURL
Адрес GitLab.
Пример:
baseURL: https://gitlab.example.com
- spec.gitlab.clientID
Обязательный параметр
ID приложения, созданного в GitLab (Application ID).
- spec.gitlab.clientSecret
Обязательный параметр
Secret приложения, созданного в GitLab (Secret).
- spec.gitlab.groups
Список-фильтр групп (пути групп — path, а не имена), допустимых для приема из GitLab.
Токен пользователя будет содержать пересечение множеств групп из GitLab и групп из этого списка. Если множество окажется пустым, авторизация не будет считаться успешной.
Если параметр не указан, токен пользователя будет содержать все группы из GitLab.
- spec.gitlab.useLoginAsID
Позволяет вместо использования внутреннего GitLab ID, использовать имя пользователя.
- spec.ldap
Параметры провайдера LDAP.
- spec.ldap.bindDN
Путь до сервис-аккаунта приложения в LDAP.
Пример:
bindDN: uid=serviceaccount,cn=users,dc=example,dc=com
- spec.ldap.bindPW
Пароль для сервис-аккаунта приложения в LDAP.
Пример:
bindPW: password
- spec.ldap.groupSearch
Настройки фильтра для поиска групп для указанного пользователя.
Подробнее о процессе фильтрации…
- spec.ldap.groupSearch.baseDN
Обязательный параметр
Откуда будет начат поиск групп
Пример:
baseDN: cn=users,dc=example,dc=com
- spec.ldap.groupSearch.filter
Фильтр для директории с группами.
Пример:
filter: "(objectClass=person)"
- spec.ldap.groupSearch.nameAttr
Обязательный параметр
Имя атрибута, в котором хранится уникальное имя группы.
Пример:
nameAttr: name
- spec.ldap.groupSearch.userMatchers
Обязательный параметр
Список сопоставлений атрибута имени юзера с именем группы.
- spec.ldap.groupSearch.userMatchers.groupAttr
Обязательный параметр
Имя атрибута, в котором хранятся имена пользователей, состоящих в группе.
Пример:
groupAttr: member
- spec.ldap.groupSearch.userMatchers.userAttr
Обязательный параметр
Имя атрибута, в котором хранится имя пользователя.
Пример:
userAttr: uid
- spec.ldap.host
Обязательный параметр
Адрес и порт (опционально) LDAP-сервера.
Пример:
host: ldap.example.com:636
- spec.ldap.insecureNoSSL
Подключаться к каталогу LDAP не по защищенному порту.
По умолчанию:
false
- spec.ldap.insecureSkipVerify
Не производить проверку подлинности провайдера с помощью TLS. Небезопасно, не рекомендуется использовать в production-окружениях.
По умолчанию:
false
- spec.ldap.rootCAData
Цепочка CA в формате PEM, используемая для валидации TLS.
Пример:
rootCAData: | -----BEGIN CERTIFICATE----- MIIFaDC... -----END CERTIFICATE-----
- spec.ldap.userSearch
Обязательный параметр
Настройки фильтров пользователей, которые помогают сначала отфильтровать директории, в которых будет производиться поиск пользователей, а затем найти пользователя по полям (его имени, адресу электронной почты или отображаемому имени).
Подробнее о процессе фильтрации…
- spec.ldap.userSearch.baseDN
Обязательный параметр
Откуда будет начат поиск пользователей.
Пример:
baseDN: cn=users,dc=example,dc=com
- spec.ldap.userSearch.emailAttr
Обязательный параметр
Имя атрибута, из которого будет получен email пользователя.
Пример:
emailAttr: mail
- spec.ldap.userSearch.filter
Позволяет добавить фильтр для директории с пользователями.
Пример:
filter: "(objectClass=person)"
- spec.ldap.userSearch.idAttr
Обязательный параметр
Имя атрибута, из которого будет получен ID пользователя.
Пример:
idAttr: uid
- spec.ldap.userSearch.nameAttr
Атрибут отображаемого имени пользователя.
Пример:
nameAttr: name
- spec.ldap.userSearch.username
Обязательный параметр
Имя атрибута, из которого будет получен username пользователя.
Пример:
username: uid
- spec.ldap.usernamePrompt
Строка, которая будет отображаться возле поля для имени пользователя в форме ввода логина и пароля.
По умолчанию:
"LDAP username"
Пример:
usernamePrompt: SSO Username
- spec.oidc
Параметры провайдера OIDC (можно указывать, только если
type: OIDC
).- spec.oidc.basicAuthUnsupported
Использовать POST-запросы для общения с провайдером вместо добавления токена в Basic Authorization header.
В большинстве случаев Dex сам определяет, какой запрос ему нужно сделать, но иногда включение этого параметра может помочь.
По умолчанию:
false
- spec.oidc.claimMapping
Некоторые провайдеры возвращают нестандартные claim’ы (например, mail). Claim mappings помогают Dex преобразовать их в стандартные claim’ы OIDC.
Dex может преобразовать нестандартный claim в стандартный, только если id_token, полученный от OIDC-провайдера, не содержит аналогичный стандартный claim.
- spec.oidc.claimMapping.email
Claim, который будет использован для получения email пользователя.
По умолчанию:
"email"
- spec.oidc.claimMapping.groups
Claim, который будет использован для получения групп пользователя.
По умолчанию:
"groups"
- spec.oidc.claimMapping.preferred_username
Claim, который будет использован для получения предпочтительного имени пользователя.
По умолчанию:
"preferred_username"
- spec.oidc.claimMappingOverride
Если включено, сопоставление claim’ов (
claimMapping
) будет переопределять стандартные claim’ы OIDC.По умолчанию сопоставление claim’ов будет использоваться только в том случае, если стандартные claim’ы OIDC отсутствуют, например, если в id_token нет claim’а
email
, будет использоватьсяclaimMapping.email
.По умолчанию:
false
- spec.oidc.clientID
Обязательный параметр
ID приложения, созданного в OIDC-провайдере.
- spec.oidc.clientSecret
Обязательный параметр
Пароль приложения, созданного в OIDC-провайдере.
- spec.oidc.enableBasicAuth
Включает возможность basic-авторизации для Kubernetes API server.
В качестве credentials для basic-авторизации указываются логин и пароль пользователя из приложения, созданного в OIDC (возможно включить при указании только одного провайдера с типом OIDC/Crowd).
Работает только при включенном параметре publishAPI.
Полученные от IdP данные авторизации и групп сохраняются в кэш на 10 секунд.
- spec.oidc.getUserInfo
Запрашивать дополнительные данные об успешно подключенном пользователе.
По умолчанию:
false
- spec.oidc.insecureSkipEmailVerified
Игнорировать информацию о статусе подтверждения email пользователя.
Как именно подтверждается email, решает сам провайдер. В ответе от провайдера приходит лишь информация — подтвержден email или нет.
По умолчанию:
false
- spec.oidc.insecureSkipVerify
Не производить проверку подлинности провайдера с помощью TLS. Небезопасно, не рекомендуется использовать в production-окружениях.
По умолчанию:
false
- spec.oidc.issuer
Обязательный параметр
Адрес OIDC-провайдера.
Пример:
issuer: https://accounts.google.com
- spec.oidc.promptType
Определяет — должен ли Issuer запрашивать подтверждение и давать подсказки при аутентификации.
По умолчанию будет запрошено подтверждение при первой аутентификации. Допустимые значения могут изменяться в зависимости от Issuer.
По умолчанию:
"consent"
- spec.oidc.rootCAData
Цепочка CA в формате PEM, используемая для валидации TLS.
Пример:
rootCAData: | -----BEGIN CERTIFICATE----- MIIFaDC... -----END CERTIFICATE-----
- spec.oidc.scopes
Список полей для включения в ответ при запросе токена.
По умолчанию:
["openid","profile","email","groups","offline_access"]
- spec.oidc.userIDKey
Claim, который будет использован для получения ID пользователя.
По умолчанию:
"sub"
- spec.oidc.userNameKey
Claim, который будет использован для получения имени пользователя.
По умолчанию:
"name"
- spec.type
Обязательный параметр
Тип внешнего провайдера.
Допустимые значения:
Github
,Gitlab
,BitbucketCloud
,Crowd
,OIDC
,LDAP
Устаревший ресурс. Поддержка ресурса может быть исключена в следующих версиях.
Описывает конфигурацию подключения стороннего провайдера.
С его помощью можно гибко настроить интеграцию каталога учетных записей с Kubernetes.
- spec
Обязательный параметр
- spec.bitbucketCloud
Параметры провайдера Bitbucket Cloud (можно указывать, только если
type: BitbucketCloud
).- spec.bitbucketCloud.clientID
Обязательный параметр
ID приложения, созданного в Bitbucket Cloud (Key).
- spec.bitbucketCloud.clientSecret
Обязательный параметр
Secret приложения, созданного в Bitbucket Cloud (Secret).
- spec.bitbucketCloud.includeTeamGroups
Включает в список команд все группы команды, в которых состоит пользователь.
Пример групп пользователя с включенной опцией:
groups=["my_team", "my_team/administrators", "my_team/members"]
По умолчанию:
false
- spec.bitbucketCloud.teams
Список-фильтр команд, допустимых для приема из Bitbucket Cloud.
Токен пользователя будет содержать пересечение множеств команд из Bitbucket Cloud и команд из этого списка. Если если множество окажется пустым, авторизация не будет считаться успешной.
Токен будет содержать команды пользователя в claim
groups
, как и у других провайдеров.
- spec.crowd
Параметры провайдера Crowd (можно указывать, только если
type: Crowd
).- spec.crowd.baseURL
Обязательный параметр
Адрес Crowd.
Пример:
baseURL: https://crowd.example.com/crowd
- spec.crowd.clientID
Обязательный параметр
ID приложения, созданного в Crowd (Application Name).
- spec.crowd.clientSecret
Обязательный параметр
Пароль приложения, созданного в Crowd (Password).
- spec.crowd.enableBasicAuth
Включает возможность basic-авторизации для Kubernetes API server.
В качестве credentials для basic-авторизации указываются логин и пароль пользователя из приложения, созданного в Crowd (возможно включить при указании только одного провайдера с типом OIDC/Crowd).
Работает только при включенном
publishAPI
.Полученные от IdP данные авторизации и групп сохраняются в кэш на 10 секунд.
- spec.crowd.groups
Список-фильтр групп, допустимых для приема из Crowd.
Токен пользователя будет содержать пересечение множеств групп из Crowd и групп из этого списка. Если множество окажется пустым, авторизация не будет считаться успешной.
Если параметр не указан, токен пользователя будет содержать все группы из Crowd.
- spec.crowd.usernamePrompt
Строка, которая будет отображаться возле поля для имени пользователя в форме ввода логина и пароля.
По умолчанию:
"Crowd username"
- spec.displayName
Обязательный параметр
Имя провайдера, которое будет отображено на странице выбора провайдера для аутентификации.
Если настроен всего один провайдер, страница выбора провайдера показываться не будет.
- spec.github
Параметры провайдера GitHub (можно указывать? только если
type: Github
).- spec.github.clientID
Обязательный параметр
ID организации на GitHub.
- spec.github.clientSecret
Обязательный параметр
Secret организации на GitHub.
- spec.github.orgs
Массив названий организаций в GitHub.
- spec.github.orgs.name
Обязательный параметр
Название организации.
- spec.github.orgs.teams
Список команд, допустимых для приема из GitHub.
Токен пользователя будет содержать объединенное множество команд из GitHub и команд из этого списка. Если множество окажется пустым, авторизация не будет считаться успешной.
Если параметр не указан, токен пользователя будет содержать все команды из GitHub.
- spec.github.teamNameField
Формат команд, которые будут получены из GitHub.
Если в организации
acme
есть группаSite Reliability Engineers
, в случае:name
будет получена группа с именем['acme:Site Reliability Engineers']
;slug
будет получена группа с именем['acme:site-reliability-engineers']
;both
будут получены группы с именами['acme:Site Reliability Engineers', 'acme:site-reliability-engineers']
.
По умолчанию:
"name"
Допустимые значения:
name
,slug
,both
- spec.github.useLoginAsID
Позволяет вместо использования внутреннего GitHub ID использовать имя пользователя.
- spec.gitlab
Параметры провайдера GitLab (можно указывать, только если
type: Gitlab
).- spec.gitlab.baseURL
Адрес GitLab.
Пример:
baseURL: https://gitlab.example.com
- spec.gitlab.clientID
Обязательный параметр
ID приложения, созданного в GitLab (Application ID).
- spec.gitlab.clientSecret
Обязательный параметр
Secret приложения, созданного в GitLab (Secret).
- spec.gitlab.groups
Список-фильтр групп (пути групп — path, а не имена), допустимых для приема из GitLab.
Токен пользователя будет содержать пересечение множеств групп из GitLab и групп из этого списка. Если множество окажется пустым, авторизация не будет считаться успешной.
Если параметр не указан, токен пользователя будет содержать все группы из GitLab.
- spec.gitlab.useLoginAsID
Позволяет вместо использования внутреннего GitLab ID, использовать имя пользователя.
- spec.ldap
Параметры провайдера LDAP.
- spec.ldap.bindDN
Путь до сервис-аккаунта приложения в LDAP.
Пример:
bindDN: uid=serviceaccount,cn=users,dc=example,dc=com
- spec.ldap.bindPW
Пароль для сервис-аккаунта приложения в LDAP.
Пример:
bindPW: password
- spec.ldap.groupSearch
Настройки фильтра для поиска групп для указанного пользователя.
Подробнее о процессе фильтрации…
- spec.ldap.groupSearch.baseDN
Обязательный параметр
Откуда будет начат поиск групп
Пример:
baseDN: cn=users,dc=example,dc=com
- spec.ldap.groupSearch.filter
Фильтр для директории с группами.
Пример:
filter: "(objectClass=person)"
- spec.ldap.groupSearch.nameAttr
Обязательный параметр
Имя атрибута, в котором хранится уникальное имя группы.
Пример:
nameAttr: name
- spec.ldap.groupSearch.userMatchers
Обязательный параметр
Список сопоставлений атрибута имени юзера с именем группы.
- spec.ldap.groupSearch.userMatchers.groupAttr
Обязательный параметр
Имя атрибута, в котором хранятся имена пользователей, состоящих в группе.
Пример:
groupAttr: member
- spec.ldap.groupSearch.userMatchers.userAttr
Обязательный параметр
Имя атрибута, в котором хранится имя пользователя.
Пример:
userAttr: uid
- spec.ldap.host
Обязательный параметр
Адрес и порт (опционально) LDAP-сервера.
Пример:
host: ldap.example.com:636
- spec.ldap.insecureNoSSL
Подключаться к каталогу LDAP не по защищенному порту.
По умолчанию:
false
- spec.ldap.insecureSkipVerify
Не производить проверку подлинности провайдера с помощью TLS. Небезопасно, не рекомендуется использовать в production-окружениях.
По умолчанию:
false
- spec.ldap.rootCAData
Цепочка CA в формате PEM, используемая для валидации TLS.
Пример:
rootCAData: | -----BEGIN CERTIFICATE----- MIIFaDC... -----END CERTIFICATE-----
- spec.ldap.userSearch
Обязательный параметр
Настройки фильтров пользователей, которые помогают сначала отфильтровать директории, в которых будет производиться поиск пользователей, а затем найти пользователя по полям (его имени, адресу электронной почты или отображаемому имени).
Подробнее о процессе фильтрации…
- spec.ldap.userSearch.baseDN
Обязательный параметр
Откуда будет начат поиск пользователей.
Пример:
baseDN: cn=users,dc=example,dc=com
- spec.ldap.userSearch.emailAttr
Обязательный параметр
Имя атрибута, из которого будет получен email пользователя.
Пример:
emailAttr: mail
- spec.ldap.userSearch.filter
Позволяет добавить фильтр для директории с пользователями.
Пример:
filter: "(objectClass=person)"
- spec.ldap.userSearch.idAttr
Обязательный параметр
Имя атрибута, из которого будет получен ID пользователя.
Пример:
idAttr: uid
- spec.ldap.userSearch.nameAttr
Атрибут отображаемого имени пользователя.
Пример:
nameAttr: name
- spec.ldap.userSearch.username
Обязательный параметр
Имя атрибута, из которого будет получен username пользователя.
Пример:
username: uid
- spec.ldap.usernamePrompt
Строка, которая будет отображаться возле поля для имени пользователя в форме ввода логина и пароля.
По умолчанию:
"LDAP username"
Пример:
usernamePrompt: SSO Username
- spec.oidc
Параметры провайдера OIDC (можно указывать, только если
type: OIDC
).- spec.oidc.basicAuthUnsupported
Использовать POST-запросы для общения с провайдером вместо добавления токена в Basic Authorization header.
В большинстве случаев Dex сам определяет, какой запрос ему нужно сделать, но иногда включение этого параметра может помочь.
По умолчанию:
false
- spec.oidc.claimMapping
Некоторые провайдеры возвращают нестандартные claim’ы (например, mail). Claim mappings помогают Dex преобразовать их в стандартные claim’ы OIDC.
Dex может преобразовать нестандартный claim в стандартный, только если id_token, полученный от OIDC-провайдера, не содержит аналогичный стандартный claim.
- spec.oidc.claimMapping.email
Claim, который будет использован для получения email пользователя.
По умолчанию:
"email"
- spec.oidc.claimMapping.groups
Claim, который будет использован для получения групп пользователя.
По умолчанию:
"groups"
- spec.oidc.claimMapping.preferred_username
Claim, который будет использован для получения предпочтительного имени пользователя.
По умолчанию:
"preferred_username"
- spec.oidc.claimMappingOverride
Если включено, сопоставление claim’ов (
claimMapping
) будет переопределять стандартные claim’ы OIDC.По умолчанию сопоставление claim’ов будет использоваться только в том случае, если стандартные claim’ы OIDC отсутствуют, например, если в id_token нет claim’а
email
, будет использоватьсяclaimMapping.email
.По умолчанию:
false
- spec.oidc.clientID
Обязательный параметр
ID приложения, созданного в OIDC-провайдере.
- spec.oidc.clientSecret
Обязательный параметр
Пароль приложения, созданного в OIDC-провайдере.
- spec.oidc.enableBasicAuth
Включает возможность basic-авторизации для Kubernetes API server.
В качестве credentials для basic-авторизации указываются логин и пароль пользователя из приложения, созданного в OIDC (возможно включить при указании только одного провайдера с типом OIDC/Crowd).
Работает только при включенном параметре publishAPI.
Полученные от IdP данные авторизации и групп сохраняются в кэш на 10 секунд.
- spec.oidc.getUserInfo
Запрашивать дополнительные данные об успешно подключенном пользователе.
По умолчанию:
false
- spec.oidc.insecureSkipEmailVerified
Игнорировать информацию о статусе подтверждения email пользователя.
Как именно подтверждается email, решает сам провайдер. В ответе от провайдера приходит лишь информация — подтвержден email или нет.
По умолчанию:
false
- spec.oidc.insecureSkipVerify
Не производить проверку подлинности провайдера с помощью TLS. Небезопасно, не рекомендуется использовать в production-окружениях.
По умолчанию:
false
- spec.oidc.issuer
Обязательный параметр
Адрес OIDC-провайдера.
Пример:
issuer: https://accounts.google.com
- spec.oidc.promptType
Определяет — должен ли Issuer запрашивать подтверждение и давать подсказки при аутентификации.
По умолчанию будет запрошено подтверждение при первой аутентификации. Допустимые значения могут изменяться в зависимости от Issuer.
По умолчанию:
"consent"
- spec.oidc.rootCAData
Цепочка CA в формате PEM, используемая для валидации TLS.
Пример:
rootCAData: | -----BEGIN CERTIFICATE----- MIIFaDC... -----END CERTIFICATE-----
- spec.oidc.scopes
Список полей для включения в ответ при запросе токена.
По умолчанию:
["openid","profile","email","groups","offline_access"]
- spec.oidc.userIDKey
Claim, который будет использован для получения ID пользователя.
По умолчанию:
"sub"
- spec.oidc.userNameKey
Claim, который будет использован для получения имени пользователя.
По умолчанию:
"name"
- spec.type
Обязательный параметр
Тип внешнего провайдера.
Допустимые значения:
Github
,Gitlab
,BitbucketCloud
,Crowd
,OIDC
,LDAP