Вход в Яндекс 360 только через Браузер для организаций

Поддерживается в:
Десктопная версия

Часто требуется исключить вход пользователей в сервисы Яндекс 360 через другие браузеры, т. к. это позволяет сотруднику обойти контур безопасности компании. Политики дают возможность ограничить скачивание или загрузку файлов, накладывать водяные знаки и многое другое. Также можно ограничить вход в сервисы Яндекс 360 только корпоративными аккаунтами и исключить личные учетные записи.

Варианты решения

Сейчас в Яндекс Браузере есть несколько вариантов ограничить вход на ресурсы только корпоративным Браузером. Они сводятся к тому, что Браузер может добавлять специальные заголовки (статические и динамические) в запросы.

При работе с Яндекс 360 можно проверять наличие заголовков при входе пользователей через SSO. В процессе аутентификации в сервисе Яндекс пользователь перенаправляется в IDP (например, Keycloak или ADFS). Перед тем, как пропустить пользователя, можно проверить наличие необходимых заголовков.

Пример реализации

Пример использования статического заголовка в Браузере и с использованием SSO + Keycloak:

  1. Пользователь авторизуется в сервисе Яндекс 360 со своей корпоративной почтой.
  2. Яндекс 360 перенаправляет пользователя на Nginx, работающий в режиме прокси, в соответствии с настройками SSO.
  3. Nginx проверяет наличие заголовка в HTTP-запросе. При соответствии его определенному значению, проксирует запрос в Keycloak.
  4. Если заголовка нет или его значение неверное, отображается страница с ошибкой.
  5. При успешной аутентификации в Keycloak пользователь перенаправляется обратно в Яндекс 360 и работает в сервисах.

Потребуются следующие настройки:

  1. Настроить Keycloak для аутентификации пользователей Яндекс 360.
  2. Настроить Nginx для проксирования запросов в Keycloak и проверки заголовков Браузера.
  3. Настроить Браузер в Консоли управления для добавления заголовка.
  4. Настроить параметры SSO в организации Яндекс 360 для аутентификации пользователей через Keycloak.

1. Настройка Keycloak для аутентификации пользователей

  1. Сделать базовые настройки по документации Keycloak.

  2. Настроить параметры Client в соответствии с рекомендациями.

  3. При настройке Realm в Keycloak в качестве Frontend URL указать имя Nginx proxy.

    Например, если Keycloak доступен по адресу https://kc.domain.ru, сервер с Nginx доступен по адресу https://proxy.domain.ru, то в качестве Frontend URL необходимо указать https://proxy.domain.ru.

2. Настройка Nginx для проверки Браузера

Файлы с параметрами, относящимися к настройкам проксирования в Keycloak:

nginx.conf
http {
    server {
        listen 443 ssl;
        server_name		proxy.domain.ru;
        ssl_certificate		path/certificate.pem;
        ssl_certificate_key	path/private.pem;

# Оставляем корневой location, чтобы можно было добраться до админки Keycloak
# из любого браузера (на усмотрение, удобно для тестирования)
        location / {
            proxy_pass https://kc.domain.ru:8443/;
        }

# Все SAML-запросы проверяем на наличие заголовка. Путь может отличаться, если
# используем не master realm, а какой-то другой

        location /realms/master/protocol/saml {

# Добавляем переменную, чтобы можно было производить дополнительные проверки,
# например, наличие сертификата
            set $allowlogin "0";

            if ($http_X_Yandex_CustomHeader = "SecretData") {
                set $allowlogin "1";
            }

# В случае верного заголовка проксируем запрос в Keycloak
            if ($allowlogin = "1") {
                proxy_pass https://kc.domain.ru:8443;
            }

# Если заголовок неправильный, то возвращаем ошибку. Тут можно использовать
# дополнительную логику, чтобы возвращать страницу с информацией для
# пользователя, а не ошибку
            if ($allowlogin = "0") {
                return 421;
            }
        }
# Добавляем берем параметры проксирования из другого файла
  include proxy.conf;
  }
}
proxy.conf
proxy_http_version                 1.1;
proxy_cache_bypass                 $http_upgrade;

# Proxy SSL
proxy_ssl_server_name              on;

# Proxy headers
proxy_set_header Upgrade           $http_upgrade;
proxy_set_header Connection        Upgrade;
proxy_set_header X-Real-IP         $remote_addr;
proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host  $host;
proxy_set_header X-Forwarded-Port  $server_port;

# Proxy timeouts
proxy_connect_timeout              60s;
proxy_send_timeout                 60s;
proxy_read_timeout                 60s;

3. Настройка заголовка в консоли Браузера

  1. В политике YandexCustomHeader задать заголовок, проверяемый в Nginx, например, SecretData.
  2. Можно настроить политику YandexCustomHeaderSettings, разрешающую отправку заголовка только на определенные URL'ы. В данном примере это https://proxy.domain.ru.

Добавляемый заголовок и его значение не отображаются ни в инструментах разработчика (и их тоже можно отключить), ни на странице browser://policy.

4. Настройка SSO в Яндекс 360

В Яндекс 360 необходимо настроить SSO по документации.

В настройках SSO параметры URL страницы входа и Издатель поставщика удостоверений должны указывать на Nginx. В данном примере это https://proxy.domain.ru.

Результат

Пользователи могут войти в сервисы Яндекс 360 только с использованием Яндекс Браузера для организаций. Можно принудительно применять политики безопасности для всех пользователей сервиса (ограничения действий, интеграции с SIEM и DLP и другое).

Требуется расширенная версия Яндекс Браузера и тариф Яндекс 360 с поддержкой SSO.


Написать в службу поддержки

Также вы можете перейти на сервис

favicon Яндекс Браузера для организаций



Полезные ссылки

Промостраница Яндекс Браузера для организаций