# Налаштування протоколу OIDC (OpenID Connect)

**OpenID** заснований на специфікаціях OAuth 2.0 (IETF RFC 6749 і 6750). Він спрощує спосіб перевірки особи користувачів на основі автентифікації, виконаної сервером авторизації, та отримання інформації про профіль користувача в інтероперабельний і REST-подібний спосіб.

OpenID Connect дає змогу користувачам перевіряти автентичність і отримувати  доступ до вебдодатків за допомогою стороннього постачальника (**IdP**), якому довіряють як користувач, так і вебсайт або застосунок.

В ролі такого **IdP** виступає **Hideez Enterprise Server**, що дозволяє запобігати втраті облікових даних, їх витоку при зберіганні або встановленні, а також допомагає при керуванні паролями.&#x20;

Протокол **OpenID Connect для HIdeez Enterprise Server** в загальних рисах працює наступним Користувач ініціює запит на аутентифікацію:&#x20;

* **Користувач HES** ініціює запит на автентифікацію для доступу до захищеного ресурсу у вебсайті. Запит надсилається **клієнту OIDC**, який є застосунком, що вимагає автентифікації користувача.
* **Клієнт OIDC** відправляє запит на авторизацію до **IdP (HES)**: цей запит містить ідентифікаційні дані клієнта, сферу доступу та URL-адресу перенаправлення, куди користувач буде відправлений після завершення процесу аутентифікації.
* **IdP (HES)** аутентифікує користувача: це включає в себе [Безпарольну автентифікацію](https://enterprise-ua.hideez.com/nalashtuvannya-single-sign-on#1.-vikoristovuvati-bezparolnu-avtentifikaciyu) або [Двофакторну аутентифікацію (MFA)](https://enterprise-ua.hideez.com/nalashtuvannya-single-sign-on#2.-vikoristovuvati-dvofaktornu-autentifikaciyu). Щойно користувач аутентифікується, IdP генерує токен доступу і відправляє його назад клієнту OIDC.
* **Клієнт OIDC** перевіряє токен доступу, отриманий від IdP. Це включає в себе перевірку підпису токена, дати закінчення, терміну дії та ін. Це потрібно для того, щоб переконатися, що токен дійсний і не був підроблений.
* **Клієнт OIDC** запитує інформацію про користувача в **IdP (HES)**: Якщо токен доступу дійсний, клієнт OIDC відправляє IdP запит на отримання інформації про користувача. Цей запит включає маркер доступу, а також запит на конкретну інформацію про користувача, таку як його ім'я, адреса електронної пошти та інші атрибути.
* **IdP (HES)** відправляє інформацію про користувача клієнту OIDC. Ця інформація зазвичай представлена у формі вебтокена JSON (JWT), який містить ідентифікаційну інформацію користувача, а також будь-які додаткові твердження, запитані клієнтом OIDC.
* Нарешті, **клієнт OIDC** може аутентифікувати користувача на основі інформації, отриманої від IdP. Якщо користувач успішно пройшов аутентифікацію, йому надається доступ до захищеного ресурсу вебдодатка.

#### Налаштування OIDC на Hideez Enterprise Server&#x20;

1. Відкрийте **Налаштування → Параметри →** розділ **OIDC**

<figure><img src="https://content.gitbook.com/content/pKRXTYXEkPs85kZZW5MX/blobs/84IIK9DfcVlMiEUJewBx/Screenshot_18.jpg" alt=""><figcaption></figcaption></figure>

2. Натисніть **Увімкнути** OIDC

Для захисту токенів OIDC використовує 2 типи облікових даних:

* Облікові дані для підпису використовуються для захисту від несанкціонованого доступу.
* Облікові дані шифрування використовуються для того, щоб зловмисники не могли прочитати вміст маркерів.

<figure><img src="https://content.gitbook.com/content/pKRXTYXEkPs85kZZW5MX/blobs/9perUkY02iQe85sqeiZ8/Screenshot_19.jpg" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Якщо у вас немає сертифікатів ви можете згенерувати самопідписаний сертифікат шифрування та підпису:

<img src="https://content.gitbook.com/content/pKRXTYXEkPs85kZZW5MX/blobs/ubNPzrQlIbTZJ7Dj0dU6/Screenshot_20.jpg" alt="" data-size="original">
{% endhint %}

3. Завантажте два типи сертифікатів, введіть паролі та натисніть **Далі**

<figure><img src="https://content.gitbook.com/content/pKRXTYXEkPs85kZZW5MX/blobs/hZu0oDacxNdjAAWtOnVi/Screenshot_21.jpg" alt=""><figcaption></figcaption></figure>

4. Перезавантажте сервер

<figure><img src="https://content.gitbook.com/content/pKRXTYXEkPs85kZZW5MX/blobs/ESaJkiBJUPJDBxHLCYLx/Screenshot_22.jpg" alt=""><figcaption></figcaption></figure>

Після перезапуску сервера HES, **OpenID Connect** буде увімкнено

Також ви можете змінити сертифікати для **OpenID Connect**

<figure><img src="https://content.gitbook.com/content/pKRXTYXEkPs85kZZW5MX/blobs/Za07fn41RwgIbcSDecxn/Screenshot_23.jpg" alt=""><figcaption></figcaption></figure>

5. Додати клієнт **OIDC**

<figure><img src="https://content.gitbook.com/content/pKRXTYXEkPs85kZZW5MX/blobs/gjsWqUpuHR1hQoe3mbif/Screenshot_24.jpg" alt=""><figcaption></figcaption></figure>

6. Адміністратор HES повинен налаштувати клієнт **OIDC:**

<figure><img src="https://content.gitbook.com/content/pKRXTYXEkPs85kZZW5MX/blobs/IkVSA5ybDGkoFqEzooBJ/Screenshot_26.jpg" alt=""><figcaption></figcaption></figure>

Будь ласка, подивіться, як приклад, конфігурацію нашого клієнта **OpenID connect:**

<figure><img src="https://content.gitbook.com/content/pKRXTYXEkPs85kZZW5MX/blobs/RWJRptwZFSQYZIHNdfSm/Screenshot_27.jpg" alt=""><figcaption></figcaption></figure>
