> ## Documentation Index
> Fetch the complete documentation index at: https://docs.livingsecurity.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Налаштування інтеграції з Microsoft Entra ID

> Підключіть Microsoft Entra ID до Living Security для отримання даних про ідентифікацію, входи, ризики, пристрої та активність симуляцій атак.

export const EgressIpAllowlistBothSets = ({system}) => <Warning>
    <strong>{system} потребує двох наборів адрес, а не одного.</strong> Living Security створює маркер доступу цієї інтеграції у власній інфраструктурі та постійно його оновлює, тому трафік налаштування і трафік синхронізації надходять з різних мереж. Додайте обидва набори до списку дозволених у {system} і залишайте їх там постійно — це вимога не лише на етапі налаштування.
    <br />
    <br />
    <strong>Трафік синхронізації інтеграції</strong> — однаковий в усіх регіонах:
    <br />
    <code>52.34.139.153/32</code>, <code>54.69.127.183/32</code>, <code>44.247.133.183/32</code>,{' '}
    <code>52.26.211.56/32</code>
    <br />
    <br />
    <strong>Трафік платформи</strong> — використовуйте лише рядок для регіону, у якому розміщено вашу організацію:
    <br />
    США: <code>98.91.60.249/32</code>, <code>13.216.91.102/32</code>
    <br />
    Європейський Союз: <code>34.246.236.210/32</code>, <code>52.31.102.238/32</code>
    <br />
    <br />
    Якщо дозволити лише набір для синхронізації, налаштування ніколи не завершиться. Якщо дозволити лише набір платформи, налаштування завершиться успішно, але всі синхронізації завершуватимуться помилкою. Опис обох ознак збоїв і політику змін див. у статті{' '}
    <a href="/uk/integrations/managing/egress-ip-addresses">
      Configuring Integration Egress IP Addresses
    </a>.
  </Warning>;

export const PublicIntegrationNextSteps = () => <>
    <hr />
    <h2>Пов’язані ресурси</h2>
    <ul>
      <li>
        <a href="/uk/signals/data-sources">Дізнайтеся, як дані інтеграцій перетворюються на сигнали Human Risk Management</a>
      </li>
      <li>
        <a href="https://www.livingsecurity.com/integrations">Ознайомтеся з інтеграціями Living Security</a>
      </li>
      <li>
        <a href="https://app.livingsecurity.ai/">Відкрийте Living Security Platform</a>
      </li>
      <li>
        <a href="https://www.livingsecurity.com/request-demo/">Замовте демонстрацію Living Security</a>
      </li>
    </ul>
  </>;

export const HandoffPaths = () => <Tabs>
    <Tab title="Делеговане налаштування (рекомендовано для секретів)">
      Запросіть системного адміністратора до платформи з обмеженими дозволами. Він вводить
      облікові дані самостійно, тож ви ніколи не маєте справи із секретом.
    </Tab>
    <Tab title="Передавання облікових даних">
      Надішліть адміністратору сторінку постачальника. Він створює облікові дані та повертає їх
      вам, після чого ви вводите їх у діалоговому вікні Connect.
    </Tab>
  </Tabs>;

export const ConnectInPlatform = ({tile, children}) => <Step title="Введіть облікові дані в Living Security Platform">
    <p>
      Виконується особою, яка має доступ до Living Security, — власником програми або
      системним адміністратором, якщо його було запрошено (делеговане налаштування).
    </p>
    <ol>
      <li>
        Перейдіть до <strong>Settings → Integrations → Catalog</strong>, знайдіть плитку{' '}
        <strong>{tile}</strong> і натисніть <strong>Connect</strong>.
      </li>
      <li>
        Заповніть наведені нижче поля, а потім натисніть <strong>Connect</strong>.
      </li>
    </ol>
    {children}
  </Step>;

export const SystemAdminBanner = ({system, recommendDelegated}) => <Note>
    <p>
      <strong>Цей посібник призначений для вашого адміністратора {system}.</strong> Він описує створення облікових даних API
      в {system}, для чого потрібен адміністративний доступ до {system}, а не до
      Living Security Platform.
    </p>
    <p>
      Якщо ви є <strong>власником програми</strong> Living Security і не адмініструєте {system},
      надішліть цю сторінку тому, хто це робить. Він виконає частину A і передасть вам облікові дані
      (або введе їх безпосередньо, якщо ви запросили його до платформи).
      {recommendDelegated && <>
          {' '}Оскільки під час налаштування створюється конфіденційний ключовий матеріал, ми рекомендуємо скористатися{' '}
          <strong>делегованим налаштуванням</strong>, щоб секрет ніколи не надсилався вам.
        </>}
    </p>
  </Note>;

<SystemAdminBanner system="Microsoft Entra ID" />

<HandoffPaths />

## Що надає ця інтеграція

Microsoft Entra ID може надавати нормалізовані дані про ідентифікацію, входи, ризики, пристрої та активність симуляцій атак. Серед перевірених прикладів:

* `account.compromised` — обліковий запис позначено як скомпрометований
* `auth.login.unusual` — входи з нетипових контекстів
* `phishing.simulation.clicked` — перехід за посиланням у симуляції без повідомлення про неї

Це репрезентативні приклади, а не гарантія того, що кожна подія доступна в кожному тенанті. Див. [як дані інтеграцій перетворюються на Signals](/uk/signals/data-sources).

## Що потрібно для Living Security

| Облікові дані | Опис |
| - | - |
| **Tenant ID** | UUID каталогу (тенанта) з центру адміністрування Microsoft Entra |
| **Client ID** | UUID застосунку (клієнта), який призначається під час реєстрації застосунку |
| **Client Secret** | Секретні облікові дані, згенеровані в реєстрації вашого застосунку — у діалоговому вікні підключення це поле має назву **API Key** |
| **Graph API host** | Ім’я хоста Microsoft Graph (комерційна хмара: `graph.microsoft.com`) |
| **Authority host** | Ім’я хоста центру автентифікації Microsoft Entra (комерційна хмара: `login.microsoftonline.com`) |

**Області доступу (дозволи застосунку, Application permissions):**

| Дозвіл | Призначення |
| - | - |
| `User.Read.All` | Каталог користувачів |
| `SecurityAlert.Read.All` | Сповіщення безпеки |
| `AuditLog.Read.All` | Журнали входів і відомості про реєстрацію MFA |
| `Policy.Read.ConditionalAccess` | Відомості про умовний доступ для кожного входу — які політики застосовувалися і які елементи керування доступом вони вимагали. Виявлення MFA залежить від цього дозволу |
| `AttackSimulation.Read.All` | Результати Attack Simulation Training |
| `Device.Read.All` | Об’єкти пристроїв Entra ID, зокрема пристрої, якими не керує Intune |
| `DeviceManagementManagedDevices.Read.All` | Керовані пристрої Intune |
| `IdentityRiskEvent.Read.All` | Виявлення ризиків Identity Protection, зокрема викрадених облікових даних |
| `GroupMember.ReadWrite.All` | **Необов’язково.** Дії із членством у групах — дозволяють Playbook додавати користувача до групи Microsoft Entra ID або видаляти його з неї |

### Ви самі визначаєте, що може робити це підключення

Це підключення зчитує дані. Воно також може *виконувати дії* у вашому каталозі, але лише
якщо ви це дозволите.

Усі наведені вище дозволи, крім останнього, є дозволами лише для читання. Якщо надати лише їх,
підключення ніколи не зможе нічого змінювати у вашому тенанті — платформа виявляє це і
взагалі не пропонує дій із групами.

Додайте `GroupMember.ReadWrite.All`, і дії із членством у групах стануть доступними для використання в
Playbooks. Нічого не відбувається саме по собі: вам усе одно потрібно вибрати, до яких груп
платформа може вносити зміни (див. нижче), і створити Playbook, що їх використовує.

Ви можете змінити рішення в будь-який момент. Достатньо додати або видалити дозвіл у Microsoft Entra ID
і повторно надати згоду адміністратора — повторно вводити облікові дані на платформі не потрібно,
а синхронізація даних триває без перерв. Зміна набуває чинності приблизно протягом години.

<Note>
  **Дії із членством у групах додатково обмежені групами, які ви визначите.** Після
  підключення адміністратор вибирає для підключення явний список дозволених груп.
  Доки такого списку немає, дії з групами недоступні, навіть якщо дозвіл надано, —
  тому `GroupMember.ReadWrite.All` ніколи не означає «будь-яку групу в тенанті».

  Ретельно добирайте ці групи: уникайте будь-яких груп, що надають адміністративні ролі,
  привілейований доступ або права на ліцензії.
</Note>

**Необхідна роль:** **Application Administrator** або **Global Administrator** у Microsoft Entra ID

<Note>
  **Два з цих дозволів додано нещодавно.** Якщо ви підключили Microsoft Entra ID до того, як вони
  з’явилися в цьому списку, додайте їх до наявної реєстрації застосунку та **повторно надайте згоду адміністратора** —
  Microsoft вимагає повторно надавати згоду щоразу, коли змінюються дозволи. Усі інші потоки даних
  тим часом працюють у звичайному режимі.

  `Policy.Read.ConditionalAccess` — без цього дозволу Microsoft вилучає відомості про умовний доступ
  з кожного запису про вхід. Запис і далі повідомляє, що політику умовного доступу було виконано,
  але список політик повертається порожнім. Жодної помилки чи попередження не виникає: дані про входи
  продовжують надходити, а підключення залишається справним. Платформа просто не може визначити, які входи
  були підтверджені багатофакторною автентифікацією, тому активність MFA з цього підключення залишається порожньою.

  `IdentityRiskEvent.Read.All` — для зчитування виявлених ризиків також потрібна ліцензія **Microsoft Entra ID P1 або
  P2**. Саме виявлення викрадених облікових даних доступне на всіх рівнях, зокрема P1;
  преміальні виявлення на рівнях нижче P2 повідомляються як `generic`.
</Note>

### Передумови

* Для реєстрації застосунків і надання згоди адміністратора вам потрібен доступ **Application Administrator** або **Global Administrator** у Microsoft Entra ID.

***

## Частина A — у Microsoft Entra ID

*Ці кроки виконує адміністратор Microsoft Entra ID.*

<Steps>
  <Step title="Зареєструйте новий застосунок">
    1. Увійдіть до [центру адміністрування Microsoft Entra](https://entra.microsoft.com).
    2. У лівій навігаційній панелі перейдіть до **Entra ID** → **App registrations**.
    3. Натисніть **New registration**.
    4. Введіть зрозумілу назву застосунку, наприклад `Living Security Platform`.
    5. У розділі **Supported account types** виберіть **Accounts in this organizational directory only**.
    6. Залиште поле **Redirect URI** порожнім — ця інтеграція використовує потік облікових даних клієнта (client credentials flow).
    7. Натисніть **Register**.

    Після реєстрації запишіть такі значення зі сторінки **Overview**:

    * **Application (client) ID**
    * **Directory (tenant) ID**
  </Step>

  <Step title="Додайте дозволи застосунку Microsoft Graph">
    1. На сторінці **Overview** вашого застосунку натисніть **API permissions** у лівому меню.
    2. Натисніть **Add a permission**.
    3. Виберіть **Microsoft Graph**.
    4. Виберіть **Application permissions**.
    5. Знайдіть і виберіть кожен із наведених нижче дозволів, після чого натисніть **Add permissions**:
       * `User.Read.All`
       * `SecurityAlert.Read.All`
       * `AuditLog.Read.All`
       * `Policy.Read.ConditionalAccess`
       * `AttackSimulation.Read.All`
       * `Device.Read.All`
       * `DeviceManagementManagedDevices.Read.All`
       * `IdentityRiskEvent.Read.All`
    6. Додавайте `GroupMember.ReadWrite.All` **лише якщо** хочете, щоб Playbooks могли змінювати членство в групах. Пропустіть цей дозвіл, щоб підключення залишалося лише для читання.

    <Note>
      Це мінімальні дозволи для всіх потоків даних. Якщо ви плануєте ввімкнути лише частину потоків, можна не додавати дозволи для потоків, які ви не використовуватимете.
    </Note>
  </Step>

  <Step title="Надайте згоду адміністратора">
    Дозволи застосунку вимагають явної згоди адміністратора.

    1. На сторінці **API permissions** натисніть **Grant admin consent for \<your tenant name>**.
    2. У діалоговому вікні підтвердження натисніть **Yes**.
    3. Переконайтеся, що для кожного дозволу в стовпці **Status** указано **Granted**.

    <Note>
      Якщо кнопка **Grant admin consent** неактивна, вам потрібні права **Privileged Role Administrator** або **Global Administrator**. Згоду адміністратора потрібно надавати повторно щоразу, коли ви додаєте нові дозволи.
    </Note>
  </Step>

  <Step title="Створіть секрет клієнта">
    1. На сторінці **Overview** вашого застосунку натисніть **Certificates & secrets** у лівому меню.
    2. Перейдіть на вкладку **Client secrets** і натисніть **New client secret**.
    3. Введіть опис (наприклад, `Living Security Platform`).
    4. Виберіть термін дії, що відповідає вашій політиці ротації.
    5. Натисніть **Add**.

    <Warning>
      **Негайно скопіюйте значення секрету.** Microsoft Entra ID показує повне значення секрету клієнта лише один раз. Якщо ви залишите сторінку, не скопіювавши його, доведеться видалити секрет і створити новий.
    </Warning>

    Зберігайте секрет у безпечному місці. Налаштуйте нагадування в календарі, щоб виконати ротацію до завершення терміну дії, — секрет із простроченим терміном дії спричиняє збої синхронізації з помилкою `401 Unauthorized`.
  </Step>

  <Step title="Визначте хости Graph API і Authority">
    Для більшості організацій у комерційній хмарі використовуйте значення за замовчуванням:

    | Поле | Значення для комерційної хмари |
    | - | - |
    | **Graph API host** | `graph.microsoft.com` |
    | **Authority host** | `login.microsoftonline.com` |

    Для урядових або суверенних хмар використовуйте відповідні кінцеві точки вашого середовища.

    <Note>
      Graph API host і Authority host мають збігатися — токени від центру автентифікації однієї хмари недійсні для кінцевої точки Graph іншої хмари.
    </Note>
  </Step>
</Steps>

***

## Частина B — у Living Security Platform

*Цей крок виконує власник програми або системний адміністратор, якщо його запросили до платформи.*

<Steps>
  <ConnectInPlatform tile="Microsoft Entra ID (Client Credentials)">
    | Поле | Значення |
    | - | - |
    | **API Key** | Client Secret з Частини A, крок 4 |
    | **Azure tenant ID** | Directory (tenant) ID з Частини A, крок 1 |
    | **Client ID** | Application (client) ID з Частини A, крок 1 |
    | **Graph API host** | `graph.microsoft.com` (або кінцева точка вашої хмари) |
    | **Authority host** | `login.microsoftonline.com` (або кінцева точка вашої хмари) |

    <img src="https://mintcdn.com/livingsecurity/oVkrOMkYmNevekTI/integrations/images/microsoft-entra-id-cc/connect-dialog.png?fit=max&auto=format&n=oVkrOMkYmNevekTI&q=85&s=2a192b0a28e753ad0e0bc0b640508136" alt="Діалогове вікно підключення Living Security для Microsoft Entra ID" style={{maxWidth: "450px"}} width="576" height="692" data-path="integrations/images/microsoft-entra-id-cc/connect-dialog.png" />
  </ConnectInPlatform>
</Steps>

Тепер підключення до Microsoft Entra ID (Client Credentials) виконано.

***

## Усунення несправностей

<AccordionGroup>
  <Accordion title="401 Unauthorized">
    Облікові дані недійсні або прострочені. Перевірте:

    1. Client Secret не прострочений і не був замінений під час ротації
    2. Tenant ID і Client ID вказано правильно
    3. Authority host відповідає вашому хмарному середовищу
  </Accordion>

  <Accordion title="403 Forbidden">
    У реєстрації застосунку бракує дозволів або не надано згоду адміністратора. Перевірте:

    1. Усі необхідні дозволи наведено в розділі **API permissions**
    2. Для кожного дозволу відображається статус **Granted** (зелена позначка)
    3. Згоду адміністратора надано після додавання дозволів

    <Note>
      Якщо ви додали нові дозволи після початкового надання згоди, потрібно повторно надати згоду адміністратора.
    </Note>
  </Accordion>

  <Accordion title="Порожні результати для окремих потоків даних">
    Можливо, застосунку бракує дозволу саме для цього потоку:

    * Немає користувачів → бракує `User.Read.All`
    * Немає сповіщень безпеки → бракує `SecurityAlert.Read.All`
    * Немає журналів входів → бракує `AuditLog.Read.All`
    * Немає результатів симуляцій атак → бракує `AttackSimulation.Read.All`
    * Немає пристроїв Entra ID → бракує `Device.Read.All`
    * Немає керованих пристроїв Intune → бракує `DeviceManagementManagedDevices.Read.All`
    * Немає виявлених ризиків → бракує `IdentityRiskEvent.Read.All`, згоду адміністратора не надано повторно
      після його додавання, або тенант має ліцензію нижчу за мінімальний рівень Microsoft Entra ID P1
  </Accordion>

  <Accordion title="Запит токена завершується помилкою invalid_client">
    Можливо, Graph API host і Authority host не збігаються. Обидва мають належати до одного хмарного середовища (комерційного, урядового тощо).
  </Accordion>

  <Accordion title="Дії з групами не відображаються в Playbook">
    Дії із членством у групах пропонуються, лише коли виконано всі три умови:

    1. `GroupMember.ReadWrite.All` додано до реєстрації застосунку, і згоду адміністратора надано. Якщо ви додали його нещодавно, зачекайте до години.
    2. Адміністратор визначив для підключення список дозволених груп.
    3. Підключення активне та справне.

    Якщо ви надали дозвіл, а дії все одно недоступні, повторно надайте згоду адміністратора — Microsoft вимагає цього щоразу, коли змінюються дозволи.
  </Accordion>

  <Accordion title="Умовний доступ блокує підключення або його дії">
    Якщо у вашому тенанті є політика Conditional Access, обмежена за IP-адресою, вона може блокувати запити,
    що містять облікові дані цього підключення. Більшості тенантів це не стосується — Microsoft Graph
    за замовчуванням не обмежує доступ за IP-адресою. Якщо ви застосовуєте політику з обмеженням за IP
    для сервісних принципалів, для цієї інтеграції потрібно додати до списку дозволених **два** набори адрес,
    оскільки налаштування та синхронізація даних виконуються з різних мереж.

    Living Security самостійно створює токен доступу для цього підключення та постійно його оновлює, тому
    запити токена надходять із власних адрес платформи, а не з адрес, які використовує синхронізація даних.

    Дії з групами виконуються окремо. За замовчуванням вони маршрутизуються так само, як і синхронізація даних,
    і надходять з адрес синхронізації. На адреси платформи вони переходять, лише якщо адміністратор
    перемикає підключення на прямий вихідний трафік (direct egress).

    <EgressIpAllowlistBothSets system="Microsoft Entra ID" />

    Додайте обидва набори до **named location**, якій довіряє або яку виключає ваша політика Conditional Access.
    Запити токена надходять до `login.microsoftonline.com`, а запити даних — до
    `graph.microsoft.com`; обидва мають проходити.

    Якщо до списку дозволених додано лише адреси синхронізації, налаштування завершується помилкою під час отримання токена,
    і підключення не створюється. Якщо до списку дозволених додано лише адреси платформи, налаштування завершується успішно,
    але кожна синхронізація повертає порожній результат.
  </Accordion>
</AccordionGroup>

<PublicIntegrationNextSteps />


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.