Добавление настраиваемых заголовков HTTP в журналы аудита в службе FHIR
В API FHIR (ресурсы быстрого взаимодействия в сфере здравоохранения) пользователю может потребоваться включать дополнительные сведения в журналы, которые поступают из вызывающей системы.
Например, когда пользователь API выполняет проверку подлинности во внешней системе, эта система перенаправляет вызов в API FHIR. На уровне API FHIR сведения об исходном пользователе при таком перенаправлении утрачиваются. Возможно, эту информацию о пользователях придется вносить в журнал и сохранять в целях аудита или управления. Вызывающая система может предоставлять сведения об удостоверении пользователя, расположении вызывающего объекта и т. п. в заголовках HTTP, которые передаются вместе с перенаправляемым вызовом.
Пользовательские заголовки можно использовать для сбора информации нескольких типов. Пример:
- сведения об авторизации или удостоверении;
- источник вызывающей стороны;
- организация вызывающей стороны;
- сведения о клиентской системе (электронная медицинская запись, портал для пациентов).
Важно!
Имейте в виду, что передаваемые в пользовательских заголовках данные хранятся во внутренней системе ведения журнала Майкрософт в течение 30 дней после того, как попадают в систему мониторинга журналов Azure. Мы рекомендуем шифровать любые данные перед добавлением в пользовательские заголовки. Не следует передавать медицинские записи через пользовательские заголовки.
Для заголовков HTTP необходимо использовать следующее соглашение об именовании: X-MS-AZUREFHIR-AUDIT-name<>.
Эти заголовки HTTP включаются в контейнер свойств, который добавляется в журнал. Пример:
- X-MS-AZUREFHIR-AUDIT-USERID: 1 234
- X-MS-AZUREFHIR-AUDIT-USERLOCATION: XXXX
- X-MS-AZUREFHIR-AUDIT-XYZ: 1 234
Эти сведения сериализуются в формат JSON при добавлении в столбец свойств в журнале. Пример:
{ "X-MS-AZUREFHIR-AUDIT-USERID" : "1234",
"X-MS-AZUREFHIR-AUDIT-USERLOCATION" : "XXXX",
"X-MS-AZUREFHIR-AUDIT-XYZ" : "1234" }
Как и любой заголовок HTTP, можно повторять заголовки с одинаковыми именами и разными значениями. Пример:
- X-MS-AZUREFHIR-AUDIT-USERLOCATION: HospitalA
- X-MS-AZUREFHIR-AUDIT-USERLOCATION: Аварийный режим
При добавлении в журнал такие значения объединяются в список, разделенный запятыми. Пример:
{ "X-MS-AZUREFHIR-AUDIT-USERLOCATION" : "HospitalA, Emergency" }
Можно добавить не более 10 уникальных заголовков (повторы заголовков с одинаковыми именами и разными значениями засчитываются как один заголовок). Общая максимальная длина значения для одного заголовка составляет 2048 символов.
Если вы используете клиентскую библиотеку API C# для Firefly, код выглядит примерно так:
FhirClient client;
client = new FhirClient(serverUrl);
client.OnBeforeRequest += (object sender, BeforeRequestEventArgs e) =>
{
// Add custom headers to be added to the logs
e.RawRequest.Headers.Add("X-MS-AZUREFHIR-AUDIT-UserLocation", "HospitalA");
};
client.Get("Patient");
Дальнейшие действия
Из этой статьи вы узнали, как добавить данные в журналы аудита с помощью настраиваемых заголовков в Azure API для FHIR. Сведения о параметрах конфигурации Azure API для FHIR см. в статье.
FHIR® является зарегистрированным товарным знаком HL7 и используется с разрешения HL7.