Устранение неполадок с конфигурацией поставщика удостоверений для службы FHIR
API версии 2023-12-01 службы FHIR® в Службах данных Работоспособности Azure поддерживает два поставщика удостоверений в дополнение к идентификатору Microsoft Entra. Чтобы предоставить доступ к пользователям с ограниченной областью, настройте два поставщика удостоверений, заполните smartIdentityProviders
раздел authenticationConfiguration
объекта.
Сообщения об ошибках
Ниже приведены сообщения об ошибках, возникающие при сбое поставщиков удостоверений SMART службы FHIR, с рекомендуемыми действиями для устранения проблемы.
Ошибка | Причина | Fix |
---|---|---|
Максимальное число поставщиков удостоверений SMART — 2. | Число настроенных поставщиков удостоверений превышает два. | Уменьшите число поставщиков удостоверений до двух или меньше. |
Одно или несколько значений центра поставщика удостоверений SMART имеют значение NULL, пустое или недопустимое значение. | Элемент authority конфигурации поставщика удостоверений должен быть полным URL-адресом. |
Убедитесь, что все значения authority являются полными URL-адресами. |
Все центры поставщика удостоверений SMART должны быть уникальными. | Элементы authority двух конфигураций поставщика удостоверений совпадают. |
Убедитесь, что все значения authority являются полными URL-адресами. |
Максимальное число приложений поставщика удостоверений SMART — 2. | Число приложений поставщика удостоверений в конфигурации поставщика удостоверений составляет более двух. | Уменьшите число приложений поставщика удостоверений до одного или двух на каждого поставщика удостоверений. |
Одно или несколько приложений SMART имеют значение NULL. | Элемент applications для одного или нескольких поставщиков удостоверений имеет значение NULL или не содержит приложений. |
Убедитесь, что для всех конфигураций поставщика удостоверений настроено по крайней мере одно приложение. |
Одно или несколько приложений SMART allowedDataActions содержат повторяющиеся элементы. |
Массив allowedDataActions в одной или нескольких конфигурациях приложения содержит повторяющиеся значения. |
Удалите все повторяющиеся значения в allowedDataActions массивах. |
Одно или несколько значений приложения SMART allowedDataActions недопустимы. |
Единственным допустимым значением в массиве allowedDataActions является Read . |
Удалите все несоответствующие значения из массивов allowedDataActions . |
Одно или несколько значений приложения allowedDataActions SMART имеют значение NULL или пустые. |
Массив allowedDataActions в одной или нескольких конфигурациях приложений имеет значение NULL или пуст. |
Единственным допустимым значением в массиве allowedDataActions является Read . |
Одно или несколько значений приложения SMART audience пусты, NULL или недопустимы. |
Строка audience в одной или нескольких конфигурациях приложения имеет значение NULL, является пустой или неправильной. |
Убедитесь, audience что строка не имеет значения NULL, не является пустой, а значение имеет тип строки. |
Все идентификаторы клиента приложения поставщика удостоверений SMART должны быть уникальными. | Значение clientId в одной или нескольких конфигурациях приложений совпадает с другим значением clientId . |
Убедитесь, что все значения clientId уникальны (включая конфигурации поставщика удостоверений). |
Одно или несколько значений идентификатора клиента приложения SMART пусты, NULL или недопустимы. | Строка clientId в одной или нескольких конфигурациях приложения имеет значение NULL, является пустой или неправильной. |
Убедитесь, clientId что строка не имеет значения NULL, не является пустой, а значение имеет тип строки. |
Сбой авторизации с API FHIR служб данных Azure Health Services с помощью стороннего поставщика удостоверений. | Роль пользователя FHIR SMART приведет к этой проблеме, так как она добавляет уровень проверки подлинности. | Убедитесь, что роль пользователя FHIR SMART не назначена. |
Ошибки запроса API FHIR
При использовании маркера, выданного поставщиком удостоверений SMART для выполнения запросов к службе FHIR, может возникнуть два распространенных кода ошибок: 401 Unauthorized
или 403 Forbidden
. Чтобы начать устранение неполадок, проверьте конфигурацию элемента smartIdentityProviders
, особенно если служба FHIR является новой.
Выполните следующие действия, чтобы проверить корректность конфигурации элемента smartIdentityProviders
.
Убедитесь, что элемент
smartIdentityProviders
настроен правильно.Проверьте правильность строки
authority
. Убедитесь, что строкаauthority
является центром маркера для поставщика удостоверений, выдавшего маркер доступа.Убедитесь, что строка
authority
является допустимым центром маркера. Выполните запрос к конфигурации openid-connect. Добавьте/.well-known/openid-configuration
в конец строкиaubrowser navigatesthority
и вставьте ее в браузер. Если значение правильно, браузер переходит кopenid-connect configuration
. Если это не так, значит возникла проблема со строкой.Пример:
https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
Проверьте правильность строки
clientId
. Убедитесь, что строкаclientId
соответствует идентификатору клиента (или идентификатору приложения), определенному в поставщике удостоверений.Убедитесь, что метод запроса — ПОЛУЧЕНИЕ. Единственным поддерживаемым типом запроса является
GET
, так какallowedDataActions
значения поддерживаютсяRead
только.Проверьте утверждения JSON Web Token (JWT). Если маркер доступа доступен, декодируйте его с помощью онлайн-инструментов, таких как jwt.ms. После декодирования маркера утверждения можно проверить на корректность.
Проверьте iss (утверждение издателя). Убедитесь, что утверждение
iss
точно соответствует значениюissuer
в конфигурации OpenId поставщиков удостоверений.Введите значение
authority
из конфигурацииsmartIdentityProvider
поставщика удостоверений, добавьте в него/.well-known/openid-configuration
, затем вставьте полученное значение в браузер. Если значение верно, браузер переходит к конфигурации openid-connect.Пример:
https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
Проверьте azp или appid (авторизованная сторона или утверждение appid). Утверждение
azp
илиappid
должны точно соответствовать значениюclientId
, предоставленному в конфигурации поставщика удостоверенийsmartIdentityProvider
.Проверьте aud (утверждение аудитории). Утверждение
aud
должно точно соответствовать значениюaudience
, предоставленному в конфигурации поставщика удостоверенийsmartIdentityProvider
.Проверьте scp (утверждение области). Утверждение
scp
является обязательным. Если оно отсутствует, запрос завершается ошибкой. Формат утверждения scp должен соответствовать областям SMART on FHIR версии 1. Важно отметить, что служба FHIR в настоящее время поддерживает только области чтения. Допустимый вариант областей SMART on FHIR версии 1 заменяет любую косую черту (/) точкой (.) и звездочкой (*).all
Например, допустимой версией области SMART on FHIRpatient/*.read
являетсяpatient.all.read
.
Примечание.
Поддерживаются только read
области.
- Проверьте fhirUser или extension_fhirUser (утверждение пользователя FHIR). Утверждение
fhirUser
илиextension_fhirUser
является обязательным. Если оно отсутствует, запрос завершается ошибкой. Это утверждение связывает пользователя в поставщике удостоверений с ресурсом пользователя в службе FHIR. Значение должно быть полным URL-адресом ресурса в службе FHIR, представляющей лицо, которому выдан маркер доступа. Например, маркер доступа, выданный пациенту, вошедшему в систему, должен иметь утверждениеfhirUser
илиextension_fhirUser
с полным URL-адресом ресурса пациента в службе FHIR.
Схема настройки поставщиков удостоверений
Элемент smartIdentityProviders
представляет собой массив JSON, содержащий один или два identity provider configurations
. Состоит identity provider configuration
из
authority
Строковое значение, которое должно быть полным URL-адресом центра маркеров поставщиков удостоверений.Массив
applications
, содержащий ресурсapplication configurations
поставщика удостоверений.
{
"properties": {
"authenticationConfiguration": {
"authority": "string",
"audience": "string",
"smartProxyEnabled": "bool",
"smartIdentityProviders": [
{
"authority": "string",
"applications": [
{
"clientId": "string",
"allowedDataActions": "array",
"audience": "string"
}
]
}
]
}
}
}
Элемент applications
представляет собой массив JSON, содержащий один или два application configurations
.
В состав application configuration
входит следующее:
clientId
Строковое значение для идентификатора клиента (также известного как идентификатор приложения) приложения ресурсов поставщика удостоверений.Строка
audience
, используемая для проверки утвержденияaud
в маркерах доступа.Массив объектов
allowedDataActions
. МассивallowedDataActions
может содержать только строковое значениеRead
.
{
"authority": "string",
"applications": [
{
"clientId": "string",
"allowedDataActions": "array",
"audience": "string"
}
]
}
{
"clientId": "string",
"allowedDataActions": "array",
"audience": "string"
}
Следующие шаги
Предоставление доступа к службе FHIR с помощью Azure Active Directory B2C
Настройка нескольких поставщиков удостоверений
Примечание.
FHIR® является зарегистрированным товарным знаком HL7 и используется с разрешением HL7 .