Актуальную версию документа см. на сайте Министерства цифрового развития, связи и массовых коммуникаций Российской Федерации по адресу https://digital.gov.ru/ru/documents/6186/.

В.2.1 Общие принципы

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

В общем виде схема взаимодействия выглядит следующим образом:

- система-клиент запрашивает у владельца ресурса разрешение на доступ к соответствующим ресурсам. Обычно этот запрос осуществляется не напрямую к владельцу ресурса, а опосредованно через сервис авторизации (который, в свою очередь, запрашивает разрешение у владельца ресурса), поскольку сам владелец ресурса не может выдать ни маркер доступа, ни авторизационный код;

- система-клиент получает разрешение на доступ (authorization grant) в виде авторизационного кода;

- система-клиент запрашивает маркер доступа, предъявив авторизационный код сервису авторизации;

- сервис авторизации аутентифицирует систему-клиента, проверяет авторизационный код и выдает маркер доступа и маркер обновления;

- система-клиент запрашивает у поставщика защищенный ресурс, предъявляя маркер доступа;

- поставщик ресурса проверяет маркер доступа, если он валиден, то разрешает доступ к защищенному ресурсу;

- система-клиент вновь запрашивает с помощью выданного ранее маркера доступ к защищенному ресурсу;

- поставщик ресурса проверяет маркер, обнаруживает, что срок его действия истек, возвращает сообщение об ошибке;

- система-клиент обращается к сервису авторизации за получением нового маркера доступа, предъявляя маркер обновления;

- сервис авторизации проверяет валидность маркера обновления и возвращает два новых маркера: доступа и обновления.

Схема взаимодействия представлена на рисунке 15.

После того, как система-клиент получила маркер доступа, она может неоднократно обращаться за получением соответствующего защищенного ресурса, пока не истечет срок действия этого маркера. Когда это произойдет, системе-клиенту потребуется получить новый маркер доступа.

Ключевая особенность этой модели в том, что сам владелец ресурса никогда не получает маркер доступа, его получает сама система-клиент в результате прямой связи с сервисом авторизации (server-side flow).

00000017.jpg

Рисунок 15 - Общая схема взаимодействия при получении

маркера доступа с помощью авторизационного кода

Для оптимизации повторного получения маркера доступа используется механизм маркера обновления (refresh token): в этом случае первоначально в обмен на авторизационный код системе-клиенту выдается не только маркер доступа, но и маркер обновления. Когда маркер доступа перестает действовать, система-клиент обращается к сервису авторизации за получением нового маркера доступа, предъявляя последний полученный ранее маркер обновления. Сервис авторизации проверяет валидность маркера обновления (что он является актуальным, не был отозван и что срок его действия не истек) и выдает новый маркер доступа и маркер обновления.

Особенности маркера обновления:

- имеет более длительный срок действия, чем у маркера доступа. Срок действия маркера обновления различен для каждой информационной системы и настраивается Администратором ИС в Технологическом портале ЕСИА;

- предъявляется исключительно при необходимости получить новый маркер доступа (таким образом, минимизируется риск перехвата);

- выдается сервисом авторизации одновременно с маркером доступа;

- может быть отозван владельцем ресурса.

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