Loginapp#
Loginapp - веб приложение для конфигурации DropApp CLI с OIDIC.
Loginapp поддерживает три формата конфигурации:
файл конфигурации: флаг
--config;флаги: например, флаги
--oidc-xxx;переменные среды: каждый флаг предоставляет переменную среды с префиксом
LOGINAPP_.
Пример синтаксиса команды:
loginapp serve [flags]
Синтаксис флагов loginapp представлен в таблице.
Таблица. Синтаксис флагов loginapp
Синтаксис |
Описание |
|---|---|
|
Конфигурационный файл |
|
Помощь для обслуживания |
|
Интерфейс и порт прослушивания (по умолчанию |
|
Порт для экспорта метрик (по умолчанию |
|
Имя приложения. Используется для веб-заголовка (по умолчанию |
|
Идентификатор клиента (по умолчанию |
|
URL-адрес перенаправления для обратного вызова. Это должно быть то же самое, что и предоставленное IDP. Должен заканчиваться |
|
Секрет клиента |
|
Токен выпуска от имени этого списка идентификаторов клиентов |
|
Список дополнительных кодов авторизации для включения в запрос токена (по умолчанию []) |
|
Пропустить проверку сертификата эмитента (для тестирования) |
|
Центр сертификации эмитента |
|
Полный URL эмитента перед путем |
|
Выдача токен обновления для автономного доступа |
|
Список областей для запроса. Обновление этого параметра переопределит существующие области (по умолчанию [openid,профиль,электронная почта,группы]) |
|
Секрет приложения. Должен быть одинаковым во всех репликах сервера loginapp (это не секрет клиента OIDC) |
|
Путь к сертификату TLS 1.2 |
|
Включить TLS 1.2 |
|
Путь к закрытому ключу TLS 1.2 |
|
Каталог для поиска активов, которые переопределяют встроенные (по умолчанию |
|
Имя кластера по умолчанию, используемое для полного вывода kubeconfig |
|
Namespace по умолчанию, используемое для полного вывода kubeconfig |
|
Идентификатор клиента приложения |
|
Утверждение для использования в качестве имени пользователя (зависит от доступных утверждений IDP (по умолчанию |
|
Каталог для поиска шаблонов, которые переопределяют встроенные (по умолчанию |
Глобальные флаги: |
|
|
Подробный вывод |
Предварительные условия#
Предварительные условия развертывания:
конфигурация поставщика удостоверений (например, Dex или Keycloak);
config.clientID,config.clientSecretиconfig.clientRedirectURLсоответствуют учетным данным приложения, настроенным в поставщике удостоверений;введен полный URL-адрес перед путем
/.well-known/openid-configuration(например, дляhttps://dex.example.org/dex/.well-known/openid-configurationэтоhttps://dex.example.org/dex);создан файл
config.issuerRootCA.configMapперед развертыванием loginapp;ConfigMap содержит простой корневой ЦС (центр сертификации) эмитента в ключе
config.issuerRootCA.key;при настройках Ingress с разгрузкой SSL, отключен TLS 1.2 для loginapp с помощью команды
config.tls.enabled: false.
Примечание
Dex входит в состав компонента Utilites (K8SU). Описание Dex, инструкции по установке и настройке приведены в документации компонента K8SU «Руководство администратора» -> «Сценарии администрирования» -> «Dex».
Развертывание#
В таблице приведен список способов развертывания loginapp с различной конфигурацией:
Таблица. Список способов развертывания loginapp
№ |
Deployment |
Service |
Ingress |
Certificate(s) |
|---|---|---|---|---|
1 |
HTTP |
NodePort/LoadBalancer |
N/A |
N/A |
2 |
HTTPS |
NodePort/LoadBalancer |
N/A |
Self-signed |
3 |
HTTPS |
NodePort/LoadBalancer |
N/A |
Custom |
4 |
HTTP |
ClusterIP |
HTTP |
N/A |
5 |
HTTP |
ClusterIP |
HTTPS |
Custom |
6 |
HTTPS |
ClusterIP |
HTTPS |
Self-signed / Custom |
Внесите следующие конфигурации для настройки loginapp, соответствующих способам, представленным в таблице.
Внесите конфигурацию сервиса для настройки loginapp, соответствующей номеру 1 в списке способов развертывания:
service: type: NodePort # Альтернативно - LoadBalancer nodePort: 32001 # Если выбран тип NodePort ingress: enabled: false config: tls: enabled: false clientRedirectURL: http://loginapp.example.org:32001/callback # Сайт приведен в качестве примера.Внесите конфигурацию сервиса для настройки loginapp соответствующей номеру 2 в списке способов развертывания:
service: type: NodePort # Альтернативно - LoadBalancer nodePort: 32001 # Если выбран тип NodePort ingress: enabled: false config: tls: enabled: true altNames: - loginapp.example.org:32001 clientRedirectURL: https://loginapp.example.org:32001/callback # Сайт приведен в качестве примера.Внесите конфигурацию сервиса для настройки loginapp соответствующей номеру 3 в списке способов развертывания:
service: type: NodePort # Альтернативно - LoadBalancer nodePort: 32001 # Если выбран тип NodePort ingress: enabled: false config: tls: enabled: true secretName: loginapp-tls # Этот secret (kubernetes.io/tls) обязателен clientRedirectURL: https://loginapp.example.org:32001/callback # Сайт приведен в качестве примера.Внесите конфигурацию сервиса для настройки loginapp соответствующей номеру 4 в списке способов развертывания:
service: type: ClusterIP ingress: enabled: true hosts: - host: loginapp.example.org paths: - path: / pathType: ImplementationSpecific config: tls: enabled: false clientRedirectURL: http://loginapp.example.org/callback # Сайт приведен в качестве примера.Внесите конфигурацию сервиса для настройки loginapp соответствующей номеру 5 в списке способов развертывания:
service: type: ClusterIP ingress: enabled: true hosts: - host: loginapp.example.org paths: - path: / pathType: ImplementationSpecific tls: - secretName: loginapp-tls # This secret (kubernetes.io/tls) must exist (or use Letsencrypt) config: tls: enabled: false clientRedirectURL: https://loginapp.example.org/callback # Сайт приведен в качестве примера.Внесите конфигурацию сервиса для настройки loginapp соответствующей номеру 6 в списке способов развертывания:
service:
type: ClusterIP
ingress:
enabled: true
annotations:
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" # если используется nginx ingress
hosts:
- host: loginapp.example.org
paths:
- path: /
pathType: ImplementationSpecific
tls:
- secretName: loginapp-tls
config:
tls:
enabled: true
clientRedirectURL: https://loginapp.example.org/callback
# Сайт приведен в качестве примера.