Интеграция Single Sign-On (SSO)
Настройка единого входа через корпоративные провайдеры идентификации: Microsoft Entra (Azure AD), Google Workspace, Okta, OneLogin и другие.
Что такое SSO
Single Sign-On (SSO) — технология единого входа, позволяющая пользователям авторизоваться один раз в корпоративном провайдере идентификации и получить доступ ко всем подключённым приложениям без повторного ввода пароля.
┌─────────────────────────────────────────────────────────────────────────┐ │ СХЕМА РАБОТЫ SSO │ ├─────────────────────────────────────────────────────────────────────────┤ │ │ │ ┌──────────────┐ 1. Вход ┌───────────────────────┐ │ │ │ │ ─────────────────► │ │ │ │ │ Сотрудник │ │ Identity Provider │ │ │ │ │ ◄───────────────── │ (Microsoft Entra, │ │ │ └──────────────┘ 2. SAML Token │ Google, Okta) │ │ │ │ └───────────────────────┘ │ │ │ │ │ │ │ 3. Доступ с токеном │ SCIM Sync │ │ ▼ ▼ │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ UniFi Identity Hub │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ ▼ ▼ ▼ │ │ ┌────────────┐ ┌─────────────────┐ ┌─────────────┐ │ │ │ WiFi │ │ VPN Access │ │ SSO Apps │ │ │ │ 802.1X │ │ WireGuard │ │ SaaS │ │ │ └────────────┘ └─────────────────┘ └─────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────┘
Преимущества SSO
Безопасность
Единая точка аутентификации с MFA, политиками паролей и мониторингом в IdP.
Удобство
Один пароль для всех систем. Нет необходимости запоминать множество учётных данных.
Централизация
Управление доступом в одном месте. Увольнение сотрудника блокирует все системы.
Аудит
Все входы логируются в IdP. Полная видимость кто, когда и откуда заходил.
Протоколы SSO
| Протокол | Описание | Использование в Identity |
|---|---|---|
| SAML 2.0 | Security Assertion Markup Language — XML-based стандарт для обмена аутентификационными данными | Вход пользователей, интеграция с IdP |
| OAuth 2.0 | Протокол авторизации для делегирования доступа | SSO Apps, доступ к SaaS |
| OpenID Connect | Слой идентификации поверх OAuth 2.0 | Аутентификация в приложениях |
| SCIM 2.0 | System for Cross-domain Identity Management — стандарт provisioning | Синхронизация пользователей и групп |
Поддерживаемые провайдеры
UniFi Identity интегрируется с ведущими Identity Provider через стандартные протоколы SAML и SCIM.
| Провайдер | SSO (SAML) | Provisioning (SCIM) | Требуемая редакция |
|---|---|---|---|
| Microsoft Entra ID (Azure AD) | ✓ Полная поддержка | ✓ Полная поддержка | Standard |
| Google Workspace | ✓ Полная поддержка | ✓ Полная поддержка | Standard |
| Okta | ✓ Полная поддержка | ✓ Полная поддержка | Enterprise |
| OneLogin | ✓ Полная поддержка | ✓ Полная поддержка | Enterprise |
| PingFederate | ✓ Полная поддержка | ✓ Полная поддержка | Enterprise |
| Другие SAML IdP | ✓ Generic SAML | — Вручную | Standard |
Интеграция с Microsoft Entra ID (Azure AD)
Microsoft Entra ID — наиболее популярный корпоративный IdP. Интеграция включает SSO через SAML и автоматический provisioning через SCIM.
Требования
- Microsoft Entra ID (любой план, включая Free)
- Права Global Administrator или Application Administrator
- UniFi Identity Standard или Enterprise
Часть 1: Настройка SSO (SAML)
Создайте Enterprise Application
- Войдите в Azure Portal
- Перейдите в Microsoft Entra ID → Enterprise applications
- Нажмите New application → Create your own application
- Введите имя:
UniFi Identity - Выберите Integrate any other application you don't find in the gallery (Non-gallery)
- Нажмите Create
Настройте Single sign-on
- В созданном приложении выберите Single sign-on → SAML
- В разделе Basic SAML Configuration нажмите Edit
- Заполните поля (значения из Identity Hub → Settings → Identity Providers):
- Identifier (Entity ID):
https://identity.ui.com/saml/<your-org-id> - Reply URL (ACS URL):
https://identity.ui.com/saml/<your-org-id>/acs
- Identifier (Entity ID):
- Сохраните изменения
Настройте Attributes & Claims
Убедитесь, что следующие атрибуты передаются:
| Claim name | Source attribute |
|---|---|
emailaddress | user.mail |
givenname | user.givenname |
surname | user.surname |
name | user.displayname |
Скачайте метаданные
В разделе SAML Certificates скачайте Federation Metadata XML — он понадобится для настройки Identity.
Настройте Identity Hub
- Откройте Identity Hub → Settings → Identity Providers
- Нажмите Add Provider → Microsoft Entra ID
- Загрузите скачанный Federation Metadata XML
- Или введите вручную:
- Login URL: из Azure (SAML-P Sign-on endpoint)
- Identifier: из Azure (Entity ID)
- Certificate: из Azure (скачайте Certificate Base64)
- Сохраните конфигурацию
Назначьте пользователей
В Azure в разделе Users and groups добавьте пользователей или группы, которые должны иметь доступ к UniFi Identity.
Часть 2: Настройка SCIM Provisioning
Включите provisioning в Azure
- В Enterprise Application перейдите в Provisioning
- Нажмите Get started
- Выберите Provisioning Mode: Automatic
Получите SCIM credentials из Identity
- В Identity Hub → Settings → Identity Providers
- Выберите Microsoft Entra ID
- Скопируйте:
- SCIM Endpoint URL
- SCIM Bearer Token
Введите credentials в Azure
В разделе Admin Credentials:
- Tenant URL: вставьте SCIM Endpoint URL
- Secret Token: вставьте SCIM Bearer Token
Нажмите Test Connection для проверки.
Настройте маппинг атрибутов
В разделе Mappings проверьте маппинг пользователей:
| Azure AD Attribute | Target Attribute |
|---|---|
| userPrincipalName | userName |
| emails[type eq "work"].value | |
| givenName | name.givenName |
| surname | name.familyName |
| department | urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department |
| jobTitle | title |
Запустите синхронизацию
Включите Provisioning Status: On и нажмите Save. Начальная синхронизация запустится автоматически.
Интеграция с Google Workspace
Google Workspace (ранее G Suite) интегрируется с UniFi Identity через SAML SSO и автоматический provisioning.
Требования
- Google Workspace Business Starter или выше
- Права Super Admin в Google Admin Console
- UniFi Identity Standard или Enterprise
Настройка SSO
Откройте Google Admin Console
Войдите в admin.google.com с учётной записью Super Admin.
Добавьте SAML-приложение
- Перейдите в Apps → Web and mobile apps
- Нажмите Add app → Add custom SAML app
- Введите имя:
UniFi Identity
Скачайте метаданные Google
На шаге Google Identity Provider details скачайте IDP metadata или скопируйте SSO URL, Entity ID и Certificate.
Настройте Service Provider details
Введите данные из Identity Hub:
- ACS URL:
https://identity.ui.com/saml/<org-id>/acs - Entity ID:
https://identity.ui.com/saml/<org-id> - Name ID format: EMAIL
- Name ID: Basic Information > Primary email
Настройте атрибуты
Добавьте маппинг атрибутов:
| Google Directory attribute | App attribute |
|---|---|
| Primary email | |
| First name | firstName |
| Last name | lastName |
| Department | department |
Включите приложение
Откройте созданное приложение и в разделе User access включите его для нужных организационных единиц или для всех.
Настройте Identity Hub
В Identity Hub → Settings → Identity Providers добавьте Google Workspace и загрузите метаданные или введите данные вручную.
Настройка Auto-provisioning
- В Google Admin Console откройте ваше SAML-приложение
- Перейдите в Auto-provisioning
- Нажмите Configure auto-provisioning
- Введите SCIM URL и Token из Identity Hub
- Выберите атрибуты для синхронизации
- Включите provisioning
Интеграция с Okta
Okta — enterprise-grade IdP с расширенными возможностями интеграции. Требует UniFi Identity Enterprise.
Настройка SSO
Создайте приложение в Okta
- Войдите в Okta Admin Console
- Перейдите в Applications → Applications
- Нажмите Create App Integration
- Выберите SAML 2.0
Настройте SAML Settings
- Single sign-on URL: ACS URL из Identity
- Audience URI (SP Entity ID): Entity ID из Identity
- Name ID format: EmailAddress
- Application username: Email
Добавьте Attribute Statements
| Name | Value |
|---|---|
| user.email | |
| firstName | user.firstName |
| lastName | user.lastName |
| department | user.department |
Получите IdP Metadata
На вкладке Sign On найдите ссылку Identity Provider metadata и скачайте файл.
Завершите настройку в Identity
В Identity Hub добавьте Okta как IdP и загрузите полученный metadata файл.
SCIM Provisioning для Okta
- В приложении Okta перейдите на вкладку Provisioning
- Нажмите Configure API Integration
- Включите Enable API integration
- Введите:
- SCIM connector base URL: из Identity Hub
- API Token: Bearer token из Identity Hub
- Нажмите Test API Credentials
- Сохраните и настройте маппинг атрибутов
- Включите нужные действия (Create Users, Update User Attributes, Deactivate Users)
Настройка Generic SAML
Для IdP, не имеющих встроенной интеграции, используйте Generic SAML. Это работает с любым SAML 2.0 совместимым провайдером.
Данные для конфигурации Service Provider
Entity ID: https://identity.ui.com/saml/<your-org-id> ACS URL: https://identity.ui.com/saml/<your-org-id>/acs SLO URL: https://identity.ui.com/saml/<your-org-id>/slo Name ID Format: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress Binding: HTTP-POST
Требуемые атрибуты SAML Response
| Атрибут | Обязательность | Описание |
|---|---|---|
NameID | Обязательно | Email пользователя (формат emailAddress) |
email или http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress | Обязательно | Email для идентификации |
firstName или givenname | Рекомендуется | Имя пользователя |
lastName или surname | Рекомендуется | Фамилия пользователя |
department | Опционально | Отдел |
groups | Опционально | Список групп (для group mapping) |
Настройка в Identity Hub
- Перейдите в Settings → Identity Providers
- Нажмите Add Provider → Custom SAML
- Введите данные вашего IdP:
- Name: название провайдера
- SSO URL: URL для SAML-запросов
- Entity ID: идентификатор IdP
- Certificate: публичный сертификат для верификации подписи
- Настройте маппинг атрибутов если необходимо
- Сохраните и протестируйте подключение
SCIM Provisioning
SCIM (System for Cross-domain Identity Management) — стандартный протокол для автоматической синхронизации пользователей между системами.
Возможности SCIM
Provisioning
- Автосоздание пользователей
- Синхронизация групп
- Обновление атрибутов
Deprovisioning
- Деактивация уволенных
- Удаление из групп
- Отзыв доступов
SCIM Endpoints
Base URL: https://identity.ui.com/scim/v2/<org-id>
Users:
GET /Users # Список пользователей
GET /Users/{id} # Получить пользователя
POST /Users # Создать пользователя
PUT /Users/{id} # Обновить пользователя
PATCH /Users/{id} # Частичное обновление
DELETE /Users/{id} # Удалить пользователя
Groups:
GET /Groups # Список групп
GET /Groups/{id} # Получить группу
POST /Groups # Создать группу
PUT /Groups/{id} # Обновить группу
PATCH /Groups/{id} # Частичное обновление
DELETE /Groups/{id} # Удалить группу
Service Provider:
GET /ServiceProviderConfig # Конфигурация
GET /Schemas # Схемы
GET /ResourceTypes # Типы ресурсовАутентификация
SCIM API использует Bearer Token аутентификацию:
Authorization: Bearer <your-scim-token>
SSO для приложений
UniFi Identity может выступать Identity Provider для внешних SaaS-приложений, обеспечивая единый вход для сотрудников.
Поддерживаемые приложения
Identity включает готовые интеграции для популярных SaaS:
- Slack
- Zoom
- Salesforce
- Dropbox
- Box
- Atlassian (Jira, Confluence)
- GitHub Enterprise
- AWS Console
- И другие SAML/OIDC приложения
Добавление приложения
- В Identity Hub перейдите в Applications
- Нажмите Add Application
- Выберите приложение из каталога или создайте Custom SAML/OIDC
- Следуйте инструкциям по настройке
- Назначьте приложение группам пользователей
Доступ пользователей
После настройки пользователи увидят назначенные приложения в:
- Identity Endpoint App — раздел Applications
- Браузерный портал — identity.ui.com/apps
Клик по приложению выполнит SSO-вход без ввода дополнительных паролей.
Устранение неполадок
Распространённые проблемы SSO
SAML Response Invalid
Симптом: Ошибка "Invalid SAML Response" при входе.
Решение:
- Проверьте, что ACS URL точно совпадает (включая https и слеш в конце)
- Убедитесь, что Entity ID идентичен в IdP и Identity
- Проверьте срок действия сертификата IdP
- Синхронизируйте время на серверах (разница не более 5 минут)
User Not Found
Симптом: SSO работает, но пользователь не находится.
Решение:
- Убедитесь, что email в SAML Response совпадает с email в Identity
- Проверьте маппинг атрибута email (NameID или claim)
- Если используется SCIM — дождитесь синхронизации
- Включите JIT (Just-In-Time) provisioning если нужно автосоздание
SCIM Sync Failed
Симптом: Пользователи не синхронизируются из IdP.
Решение:
- Проверьте SCIM endpoint URL (без лишних слешей)
- Убедитесь, что Bearer token действителен и не истёк
- Проверьте логи provisioning в IdP на предмет ошибок
- Убедитесь, что пользователи назначены на приложение в IdP
Certificate Error
Симптом: Ошибка "Certificate validation failed".
Решение:
- Загрузите актуальный сертификат из IdP
- Используйте формат Base64 (PEM)
- Убедитесь, что сертификат не истёк
- Проверьте, что вся цепочка сертификатов включена
Диагностика
Для отладки SSO-проблем используйте:
- SAML-tracer (расширение браузера) — для просмотра SAML-запросов
- IdP Audit Logs — логи в Azure/Google/Okta
- Identity Hub Logs — Settings → Logs
<saml:Assertion>
<saml:Subject>
<saml:NameID Format="emailAddress">
user@company.com <!-- Должен совпадать с email в Identity -->
</saml:NameID>
</saml:Subject>
<saml:AttributeStatement>
<saml:Attribute Name="email">
<saml:AttributeValue>user@company.com</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="firstName">
<saml:AttributeValue>John</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>