6.4. Положения об обеспечении безопасности доступа к защищенным ресурсам

6.4.1. Конечные точки ресурсов возвращают клиенту защищенную информацию владельца ресурса, связанного с предъявленным токеном доступа.

6.4.2. Сервер ресурсов, предоставляющий доступ к данным в соответствии с настоящим стандартом:

1. Должен принимать токены доступа в HTTP-заголовке в соответствии с подразделом 2.1 RFC6750 [19].

2. Не должен принимать токены доступа в параметрах запроса, указанных в подразделе 2.3 RFC6750 [19].

3. Должен проверять, что срок действия токена доступа не истек и токен доступа не отозван.

4. Должен проверять, что область действия (параметр <scope>), связанная с предъявленным токеном доступа, разрешает доступ к ресурсу, который он представляет.

5. Должен идентифицировать объект, связанный с токеном доступа.

6. Должен возвращать только ресурс, идентифицированный комбинацией объекта, подразумеваемого в доступе, и разрешенной области действия, соответствующей объекту, иначе возвращать ошибку в соответствии с разделом 3.1 RFC6750 [19].

7. Должен кодировать ответ в UTF-8.

8. Должен отправлять параметр <Content-Type> HTTP-заголовка в виде "Content-Type: application/JSON".

9. Должен отправлять дату сервера в заголовке HTTP <Date> в соответствии с подпунктом 7.1.1.2 RFC7231 [50].

10. Должен устанавливать в качестве значения заголовка ответа <x-FAPI-interaction-id> значение, полученное из соответствующего заголовка запроса клиента, либо значение UUID, если заголовок запроса не предоставлялся для отслеживания взаимодействия, например, "x-FAPI-interaction-id: c770aef3-6784-41f7-8e0e-ff5f97bddb3a".

11. Должен регистрировать значение <x-FAPI-interaction-id> в записи журнала регистрации событий.

12. Не должен отклонять запросы с заголовком <x-fapi-customer-ip-address>, содержащим действительный IPv4- или IPv6-адрес.

Примечания:

1. Форматы и алгоритмы формирования UUID определены в RFC 4122 [51].

2. Для получения информации об объекте, связанном с токеном доступа и предоставленной областью действия, сервер ресурсов может использовать протокол интроспекции токена, описанный в RFC 7662 [48]. В случае его реализации следует выполнить анализ его безопасности.

6.4.3. Клиент, реализующий доступ к защищенному ресурсу в соответствии с требованиями данного стандарта:

1. Должен отправлять токены доступа в заголовке HTTP в соответствии с положениями пункта 4.3.1 RFC7231 [50].

2. Может отправлять последнюю дату регистрации пользователя в клиенте в заголовке <x-FAPI-auth-date>, причем значение предоставляется в формате HTTP-даты; например, "x-FAPI-auth-date: Tue, 11 Sep 2012 19:43:31 GMT".

3. Может отправлять в заголовке <x-FAPI-customer-ip-address> IP-адрес пользователя, если эти данные ему доступны; например, "x-FAPI-customer-ip-address: 198.51.100.119".

4. Для синхронизации записей журналов регистрации клиента и сервера ресурсов может отправлять серверу заголовок <x-FAPI-interaction-id> запроса, значением которого является UUID; например, "x-FAPI-interaction-id: c770aef3-6784-41f7-8e0e-ff5f97bddb3a".