[Документация Yandex Cloud](../../index.md) > [Безопасность в Yandex Cloud](../index.md) > [Стандарт по защите и безопасному использованию Яндекс 360, версия 1.0.0](index.md) > Интеграции и сторонние сервисы

# Рекомендации для интеграций и сторонних сервисов

## Интеграции и сторонние сервисы

### В организации не используются портальные учетные записи {#Y360-7}

**Y360-7**

В организации исключено использование личных учетных записей с адресом `@yandex.ru`, так как для них невозможно централизованно управлять политиками безопасности. Владение организацией должно быть передано только доменным пользователям.

{% list tabs group=instructions %}

- Проверка через API {#API}

  Чтобы получить список сотрудников, воспользуйтесь методом REST API [UserService_List](https://yandex.ru/dev/api360/doc/ru/ref/UserService/UserService_List) для ресурса [UserService](https://yandex.ru/dev/api360/doc/ru/ref/UserService/UserService_List). Убедитесь, что в теле ответа параметр `email` не оканчивается на `@yandex.ru`. Личные учетные записи не соответствуют проверке **Y360-7**.

{% endlist %}

**Инструкции и решения по выполнению:**

Рекомендуется исключить использование личных портальных учетных записей с адресом `@yandex.ru` в корпоративной среде. Вместо этого следует передавать владение организацией доменным пользователям, чтобы обеспечить централизованное управление политиками безопасности и контроль доступа к корпоративным ресурсам.

### В организации используется SSO на базе SAML-совместимого IDP {#Y360-8}

**Y360-8**

Доступ к организации реализован через единый вход (SSO) с использованием внешнего SAML-совместимого поставщика удостоверений (IdP). Доменные пользователи не должны существовать параллельно с SSO-аккаунтами. Если у вас нет своего IdP, можно использовать Yandex Identity Hub. Для этого создайте SAML-приложение в Yandex Identity Hub и настройте его как на стороне Yandex Identity Hub, так и на стороне поставщика услуг.

Подробнее о создании SAML-приложения читайте в [инструкции](../../organization/operations/applications/saml-create.md).

**Инструкции по выполнению:**

Для обеспечения централизованного управления доступом и повышения уровня безопасности рекомендуется использовать единый вход (SSO) на базе SAML-совместимого IdP. Это позволит упростить процесс аутентификации для пользователей и обеспечит более эффективное управление доступом к ресурсам организации.

### Проверка выписанных OAuth-токенов и их разрешений на использование сервиса, которые доступны при настройке приложения {#Y360-10}

**Y360-10**

Этот контроль предполагает проверку всех выданных OAuth-токенов на соответствие принципу минимальных привилегий, отсутствие токенов с избыточными правами и принадлежность только доверенным приложениям и пользователям. Это необходимо для обеспечения безопасности и управления доступом к сервисам, а именно:
  * соответствия принципу минимальных привилегий;
  * отсутствия токенов с избыточными правами (например, `mail:full_access`, `cloud:admin`).

{% list tabs group=instructions %}

- Проверка в консоли Яндекс 360 {#yandex-360-console}

  Чтобы проверить список подключенных приложений:

    1. [Войдите](https://admin.yandex.ru/) в аккаунт администратора организации.
    1. Перейдите в **Безопасность** → **Сервисные приложения**.
    1. Просмотрите список всех зарегистрированных приложений.
    1. Сопоставьте каждое приложение с внутренним реестром доверенных интеграций, проверьте несоответствия и подозрительные интеграции.

  Чтобы проверить разрешения (scopes):

    1. Для каждого приложения скопируйте его Client ID.
    1. Перейдите по ссылке `https://oauth.yandex.com/client/<client_id>/info`, где `client_id` — идентификатор приложения.

    1. На странице проверьте:
        * разрешения (scopes), которые запрашивает приложение;
        * имеет ли приложение доступ к чувствительным данным (почта, календарь, контакты и т.д.).
        
    1. Сравните запрашиваемые права с реальными потребностями приложения, проверьте избыточные или подозрительные разрешения.

  Чтобы проверить аутентификацию:

    1. [Войдите](https://admin.yandex.ru/) в аккаунт администратора организации.
    1. Перейдите в **Безопасность** → **Устройства и активность**.
    1. Просмотрите список активных сессий пользователей и найдите:
        * сотрудников с подключенными сторонними приложениями;
        * неиспользуемые или подозрительные сеансы.

    1. (Опционально) При необходимости:
        * завершите лишние или устаревшие сессии;
        * уведомите пользователей о необходимости ревизии доступов.

  Чтобы отключить ненужные приложения:

    1. [Войдите](https://admin.yandex.ru/) в аккаунт администратора организации.
    1. Перейдите в **Безопасность** → **Сервисные приложения**.
    1. Деактивируйте или удалите каждое неподтвержденное, устаревшее или ненужное приложение.
    1. Убедитесь, что оставлены только те приложения, которые:
        * официально одобрены;
        * соответствуют политике минимальных привилегий;
        * не имеют избыточных разрешений.

- Проверка через API {#API}

  1. Чтобы получить список сервисных приложений и их права доступа (scope), воспользуйтесь методом REST API [ServiceApplicationsService_Get](https://yandex.ru/dev/api360/doc/ru/ref/ServiceApplicationsService/ServiceApplicationsService_Get) для ресурса [ServiceApplicationsService](https://yandex.ru/dev/api360/doc/ru/ref/ServiceApplicationsService/).

  1. Чтобы сократить список сервисных приложений, воспользуйтесь методом REST API [ServiceApplicationsService_Create](https://yandex.ru/dev/api360/doc/ru/ref/ServiceApplicationsService/ServiceApplicationsService_Create) для ресурса [ServiceApplicationsService](https://yandex.ru/dev/api360/doc/ru/ref/ServiceApplicationsService/).

  1. Чтобы проверить реальный доступ с помощью короткоживущего токена:

      Выпустите временный токен для конкретного пользователя и проверьте, что операции срабатывают только в рамках разрешенных прав:
      
      ```bash
      curl --location \
      --request POST 'https://oauth.yandex.ru/token' \
      --header 'Content-Type: application/x-www-form-urlencoded' \
      --data-urlencode 'grant_type=urn:ietf:params:oauth:grant-type:token-exchange' \
      --data-urlencode 'client_id=<OAuth_service_app_client_id>' \
      --data-urlencode 'client_secret=<OAuth_service_app_client_secret>' \
      --data-urlencode 'subject_token=<user_id>' \
      --data-urlencode 'subject_token_type=urn:yandex:params:oauth:token-type:uid'
      ```

      Где:
        * `OAuth_service_app_client_id` — client ID сервисного приложения;
        * `OAuth_service_app_client_secret` — client secret сервисного приложения;
        * `user_id` — идентификатор пользователя, для которого необходимо получить токен;
        * `user_email` — электронный адрес пользователя вида `username@domain.ru`, для которого необходимо получить токен.

      Ответ будет содержать токен, который надо использовать в запросах к API сервисов Яндекс 360.

{% endlist %}

**Инструкции по выполнению:**

Применяйте принцип минимальных привилегий к каждому сервисному приложению, ведите реестр (владелец, назначение, минимальный набор scopes), проводите ревизию не реже раза в квартал, используйте краткоживущие токены для разовых задач и оперативно отзывайте лишние токены. Для Диска по возможности используйте узкие права (`cloud_api:disk.app_folder`, `cloud_api:disk.read`).

### Установлен запрет на аутентификацию во внешних OAuth-сервисах {#Y360-12}

**Y360-12**

Для повышения уровня информационной безопасности рекомендуется установить запрет на аутентификацию сотрудников организации в сторонних OAuth-сервисах с использованием их корпоративных учетных записей. Это предотвращает передачу корпоративных OAuth-токенов сторонним приложениям, что минимизирует риск фишинга, компрометации доступа и утечки корпоративных данных через подключение внешних сервисов.

{% list tabs group=instructions %}

- Проверка через API {#API}

  Чтобы получить статус запрета, воспользуйтесь методом REST API [OauthAccessRestrictionsService_Get](https://yandex.ru/dev/api360/doc/ru/ref/OauthAccessRestrictionsService/OauthAccessRestrictionsService_Get) для ресурса [OauthAccessRestrictionsService](https://yandex.ru/dev/api360/doc/ru/ref/OauthAccessRestrictionsService/).
  
  Проанализируйте ответ:

    * `"restricted": true` — сотрудники не могут аутентифицироваться в сторонних сервисах через Яндекс 360;
    * `"restricted": false` — требуется установить запрет.

      Чтобы включить запрет на аутентификацию во внешних OAuth-сервисах, воспользуйтесь методом REST API [OauthAccessRestrictionsService_Enable](https://yandex.ru/dev/api360/doc/ru/ref/OauthAccessRestrictionsService/OauthAccessRestrictionsService_Enable) для ресурса [OauthAccessRestrictionsService](https://yandex.ru/dev/api360/doc/ru/ref/OauthAccessRestrictionsService/).

{% endlist %}

**Инструкции по выполнению:**

* [Установите](https://yandex.ru/dev/api360/doc/ru/ref/OauthAccessRestrictionsService/OauthAccessRestrictionsService_Get) запрет (`restricted = true`) для всех сотрудников, чьи аккаунты находятся на корпоративном домене.
* Регулярно перепроверяйте статус этой политики, особенно после изменений в структуре управления организацией или при массовых подключениях внешних приложений.

### Установлен запрет на подключение сервисных приложений, либо в списке сервисных приложений находятся только доверенные приложения {#Y360-13}

**Y360-13**

Для повышения защищенности организации подключение сервисных приложений должно быть максимально ограничено: 
  * либо полностью запрещено (по умолчанию);
  * либо из списка подключенных приложений должны быть исключены все неутвержденные/неизвестные/подозрительные приложения, а остаться только доверенные, одобренные службой безопасности или ИТ-отделом.

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

{% list tabs group=instructions %}

- Проверка через API {#API}

  Чтобы получить актуальный список сервисных приложений, воспользуйтесь методом REST API [ServiceApplicationsService_Get](https://yandex.ru/dev/api360/doc/ru/ref/ServiceApplicationsService/ServiceApplicationsService_Get) для ресурса [ServiceApplicationsService](https://yandex.ru/dev/api360/doc/ru/ref/ServiceApplicationsService/). В теле ответа найдите массив `applications` с объектами вида:

  ```json
  {
    "id": "some_id",
    "scopes": [
      "scope1",
      "scope2"
    ]
  }
  ```

  Проанализируйте ответ:
    * проверьте, соответствуют ли приложения внутреннему списку доверенных/разрешенных сервисных приложений вашей организации;
    * убедитесь, что среди сервисных приложений нет неизвестных, неиспользуемых или подозрительных приложений;
    * обратите внимание на выданные scopes (допуски) — минимизируйте избыточные права.

  Если не допускается никаких сервисных приложений — список должен быть пустым.

{% endlist %}

**Инструкции и решения по выполнению:**

* [Запрещайте](https://yandex.ru/dev/api360/doc/ru/ref/ServiceApplicationsService/ServiceApplicationsService_Deactivate) по умолчанию подключение любых сервисных приложений (поддержка только «белого списка») и регулярно проверяйте состав подключенных сервисных приложений и их права доступа.
* Согласовывайте новые подключения с ИБИТ-отделом и ужесточайте условия доступа.
* Немедленно удаляйте неизвестные или подозрительные приложения.