An example of the module configuration | Пример конфигурации модуля |
The example shows the configuration of the ‘user-authn` module in the Deckhouse Kubernetes Platform. | В примере представлена конфигурация модуля |
yaml apiVersion: deckhouse.io/v1alpha1 kind: ModuleConfig metadata: name: user-authn spec: version: 1 enabled: true settings: kubeconfigGenerator:
| yaml apiVersion: deckhouse.io/v1alpha1 kind: ModuleConfig metadata: name: user-authn spec: version: 1 enabled: true settings: kubeconfigGenerator:
|
Configuring a provider | Примеры настройки провайдера |
GitHub | GitHub |
The example shows the provider’s settings for integration with GitHub. | В примере представлены настройки провайдера для интеграции с GitHub. |
yaml apiVersion: deckhouse.io/v1 kind: DexProvider metadata: name: github spec: type: Github displayName: My Company Github github: clientID: plainstring clientSecret: plainstring | yaml apiVersion: deckhouse.io/v1 kind: DexProvider metadata: name: github spec: type: Github displayName: My Company GitHub github: clientID: plainstring clientSecret: plainstring |
In your GitHub organization, create a new application: | В организации GitHub необходимо создать новое приложение. |
To do this, go to | Для этого выполните следующие шаги:
Перейдите в |
Paste the generated | Полученные |
If the GitHub organization is managed by the client, go to | Если организация GitHub находится под управлением клиента, перейдите в |
GitLab | GitLab |
The example shows the provider’s settings for integration with GitLab. | В примере представлены настройки провайдера для интеграции с GitLab. |
yaml apiVersion: deckhouse.io/v1 kind: DexProvider metadata: name: gitlab spec: type: Gitlab displayName: Dedicated Gitlab gitlab: baseURL: https://gitlab.example.com clientID: plainstring clientSecret: plainstring groups:
| yaml apiVersion: deckhouse.io/v1 kind: DexProvider metadata: name: gitlab spec: type: Gitlab displayName: Dedicated Gitlab gitlab: baseURL: https://gitlab.example.com clientID: plainstring clientSecret: plainstring groups:
|
Create a new application in the GitLab project. | В GitLab проекта необходимо создать новое приложение. |
To do this, you need to:
| Для этого выполните следующие шаги:
|
Paste the generated | Полученные |
Atlassian Crowd | Atlassian Crowd |
The example shows the provider’s settings for integration with Atlassian Crowd. | В примере представлены настройки провайдера для интеграции с Atlassian Crowd. |
yaml apiVersion: deckhouse.io/v1 kind: DexProvider metadata: name: crowd spec: type: Crowd displayName: Crowd crowd: baseURL: https://crowd.example.com/crowd clientID: plainstring clientSecret: plainstring enableBasicAuth: true groups:
| yaml apiVersion: deckhouse.io/v1 kind: DexProvider metadata: name: crowd spec: type: Crowd displayName: Crowd crowd: baseURL: https://crowd.example.com/crowd clientID: plainstring clientSecret: plainstring enableBasicAuth: true groups:
|
Create a new | В соответствующем проекте Atlassian Crowd необходимо создать новое |
To do this, go to | Для этого выполните следующие шаги:
Перейдите в |
Paste the generated | Полученные |
CROWD groups are specified in the lowercase format for the custom resource | Группы CROWD укажите в lowercase-формате для кастомного ресурса |
Bitbucket Cloud | Bitbucket Cloud |
The example shows the provider’s settings for integration with Bitbucket Cloud. | В примере представлены настройки провайдера для интеграции с Bitbucket. |
yaml apiVersion: deckhouse.io/v1 kind: DexProvider metadata: name: bitbucket spec: type: BitbucketCloud displayName: Bitbucket bitbucketCloud: clientID: plainstring clientSecret: plainstring includeTeamGroups: true teams:
| yaml apiVersion: deckhouse.io/v1 kind: DexProvider metadata: name: gitlab spec: type: BitbucketCloud displayName: Bitbucket bitbucketCloud: clientID: plainstring clientSecret: plainstring includeTeamGroups: true teams:
|
Create a new OAuth consumer in the Bitbucket’s team menu. | Для настройки аутентификации необходимо в Bitbucket в меню команды создать нового OAuth consumer. |
To do this, go to | Для этого выполните следующие шаги:
Перейдите в |
Paste the generated | Полученные |
OIDC (OpenID Connect) | OIDC (OpenID Connect) |
The example shows the provider’s settings for integration with Okta. | В примере представлены настройки провайдера для интеграции с Okta. |
yaml apiVersion: deckhouse.io/v1 kind: DexProvider metadata: name: okta spec: type: OIDC displayName: My Company Okta oidc: issuer: https://my-company.okta.com clientID: plainstring clientSecret: plainstring insecureSkipEmailVerified: true getUserInfo: true | yaml apiVersion: deckhouse.io/v1 kind: DexProvider metadata: name: okta spec: type: OIDC displayName: My Company Okta oidc: issuer: https://my-company.okta.com clientID: plainstring clientSecret: plainstring insecureSkipEmailVerified: true getUserInfo: true |
Authentication through the OIDC provider requires registering a client (or “creating an application”). Please refer to the provider’s documentation on how to do it (e.g., Okta, Keycloak, Gluu). | Аутентификация через OIDC-провайдера требует регистрации клиента (или создания приложения). Сделайте это по документации вашего провайдера (например, Okta, Keycloak, Gluu). |
Paste the generated | Полученные в ходе выполнения инструкции |
LDAP | LDAP |
The example shows the provider’s settings for integration with Active Directory. | В примере представлены настройки провайдера для интеграции с Active Directory. |
yaml apiVersion: deckhouse.io/v1 kind: DexProvider metadata: name: active-directory spec: type: LDAP displayName: Active Directory ldap: host: ad.example.com:636 insecureSkipVerify: true | yaml apiVersion: deckhouse.io/v1 kind: DexProvider metadata: name: active-directory spec: type: LDAP displayName: Active Directory ldap: host: ad.example.com:636 insecureSkipVerify: true |
bindDN: cn=Administrator,cn=users,dc=example,dc=com bindPW: admin0! | bindDN: cn=Administrator,cn=users,dc=example,dc=com bindPW: admin0! |
usernamePrompt: Email Address | usernamePrompt: Email Address |
userSearch: baseDN: cn=Users,dc=example,dc=com filter: “(objectClass=person)” username: userPrincipalName idAttr: DN emailAttr: userPrincipalName nameAttr: cn | userSearch: baseDN: cn=Users,dc=example,dc=com filter: “(objectClass=person)” username: userPrincipalName idAttr: DN emailAttr: userPrincipalName nameAttr: cn |
groupSearch: baseDN: cn=Users,dc=example,dc=com filter: “(objectClass=group)” userMatchers:
| groupSearch: baseDN: cn=Users,dc=example,dc=com filter: “(objectClass=group)” userMatchers:
|
To configure authentication, create a read-only user (service account) in LDAP. | Для настройки аутентификации заведите в LDAP read-only-пользователя (service account). |
Specify the generated user path and password in the
| Полученные путь до пользователя и пароль укажите в параметрах
|
Configuring the OAuth2 client in Dex for connecting an application | Настройка OAuth2-клиента в Dex для подключения приложения |
This configuration is suitable for applications that can independently perform oauth2 authentication without using an oauth2 proxy.
The | Этот вариант настройки подходит приложениям, которые имеют возможность использовать oauth2-аутентификацию самостоятельно, без помощи |
yaml apiVersion: deckhouse.io/v1 kind: DexClient metadata: name: myname namespace: mynamespace spec: redirectURIs:
| yaml apiVersion: deckhouse.io/v1 kind: DexClient metadata: name: myname namespace: mynamespace spec: redirectURIs:
|
After the | После создания такого ресурса в Dex будет зарегистрирован клиент с идентификатором (clientID) |
The client access password (clientSecret) will be stored in the secret object: | Пароль доступа к клиенту (clientSecret) сохранится в секрете: |
yaml apiVersion: v1 kind: Secret metadata: name: dex-client-myname namespace: mynamespace type: Opaque data: clientSecret: c2VjcmV0 | yaml apiVersion: v1 kind: Secret metadata: name: dex-client-myname namespace: mynamespace type: Opaque data: clientSecret: c2VjcmV0 |
An example of creating a static user | Пример создания статического пользователя |
Create a password and enter its hash in the | Придумайте пароль и укажите его хэш-сумму в поле |
Use the command below to calculate the password hash: | Для вычисления хэш-суммы пароля воспользуйтесь командой: |
shell echo “$password” | htpasswd -inBC 10 “” | tr -d ‘:\n’ | sed ‘s/$2y/$2a/’ | shell echo “$password” | htpasswd -inBC 10 “” | tr -d ‘:\n’ | sed ‘s/$2y/$2a/’ |
Alternatively, you can use the online service to calculate the password hash. | Также можно воспользоваться онлайн-сервисом. |
yaml apiVersion: deckhouse.io/v1 kind: User metadata: name: admin spec: email: admin@yourcompany.com password: $2a$10$etblbZ9yfZaKgbvysf1qguW3WULdMnxwWFrkoKpRH1yeWa5etjjAa groups:
| yaml apiVersion: deckhouse.io/v1 kind: User metadata: name: admin spec: email: admin@yourcompany.com password: $2a$10$etblbZ9yfZaKgbvysf1qguW3WULdMnxwWFrkoKpRH1yeWa5etjjAa ttl: 24h |
By default, the user is assigned the role User. | По умолчанию пользователь получит роль |
Example of adding a static user to a group | Пример добавления статического пользователя в группу |
yaml apiVersion: deckhouse.io/v1alpha1 kind: Group metadata: name: admins spec: name: admins members:
| yaml apiVersion: deckhouse.io/v1alpha1 kind: Group metadata: name: admins spec: name: admins members:
|
How to set permissions for a user or group | Выдача прав пользователю или группе |
Parameters in the custom resource | Для настройки используются параметры в кастомном ресурсе |