Ответ
SSO (Single Sign-On) — это механизм аутентификации, позволяющий пользователю один раз войти в систему и получить доступ к нескольким приложениям без повторного ввода учетных данных. В DevOps-практике я занимаюсь интеграцией внутренних инструментов (Jenkins, Grafana, GitLab, Wiki) и бизнес-приложений с единой системой аутентификации.
Основные протоколы и технологии, с которыми я работаю:
- SAML 2.0: Стандарт для корпоративных интеграций. Приложение (Service Provider, SP) перенаправляет пользователя в Identity Provider (IdP), например, Okta или Azure AD, который возвращает зашифрованное утверждение (assertion).
- OAuth 2.0 / OpenID Connect (OIDC): Современный стандарт для веб- и мобильных приложений. OAuth отвечает за авторизацию (делегирование доступа), а OIDC поверх него — за аутентификацию. Мы используем его для интеграции с Google Workspace, Auth0 или Keycloak.
Пример настройки OIDC-провайдера для внутреннего инструмента мониторинга (Grafana):
# Конфигурация Grafana (grafana.ini)
[auth.generic_oauth]
name = "Company SSO"
enabled = true
client_id = YOUR_CLIENT_ID
client_secret = YOUR_CLIENT_SECRET
scopes = openid email profile
auth_url = https://sso.company.com/oauth2/authorize
token_url = https://sso.company.com/oauth2/token
api_url = https://sso.company.com/oauth2/userinfo
role_attribute_path = "contains(groups[*], 'admins') && 'Admin' || 'Viewer'"
Задачи DevOps-инженера в контексте SSO:
- Интеграция: Настройка приложений для работы с выбранным IdP, управление конфигурацией как код (IaC).
- Безопасность: Управление секретами (client_secret) через Vault или секреты Kubernetes, настройка корректных redirect URI.
- Аудит и мониторинг: Настройка логгирования событий аутентификации в центральную систему (ELK Stack) для расследования инцидентов.
- Самообслуживание: Иногда развертывание и поддержка собственного IdP (например, Keycloak) для внутренних нужд.