Как использовать Azure API для FHIR Server без токена авторизации
Я создал ресурс для Azure API для FHIR Server. Я могу получить информацию о метаданных, используя URL-адрес, например https://fhir-server-url/metadata. Как упоминалось в документации https://docs.microsoft.com/en-us/azure/healthcare-apis/access-fhir-postman-tutorial для доступа к другим URL-адресам, таким как https://fhir-server-url/Patient, мы сначала нужно получить токен авторизации. Чтобы получить токен авторизации, нам понадобится ClientID, который мы можем получить, создав приложение в Azure Active Directory. Но у меня нет к нему доступа.
Могу ли я получить доступ к этому URL без токена авторизации? Сделав некоторую настройку на портале Azure.
3 ответа
Если вы используете собственную аудиторию (например, https://azurehealthcareapis/), которая используется по умолчанию при развертывании API Azure для FHIR, вы можете фактически использовать стороннее клиентское приложение, такое как Azure CLI, для получения токена. Проверьте https://docs.microsoft.com/azure/healthcare-apis/get-healthcare-apis-access-token-cli для деталей.
Сначала войдите в систему с помощью Azure CLI (https://docs.microsoft.com/cli/azure/?view=azure-cli-latest):
az login
Получите токен и сохраните его
token=$(az account get-access-token --resource=https://azurehealthcareapis.com | jq -r .accessToken)
Используйте токен:
curl -X GET --header "Authorization: Bearer $token" https://<FHIR ACCOUNT NAME>.azurehealthcareapis.com/Patient
Похоже, что из FHIR Server Doc вы можете включить или выключить это в зависимости от параметра конфигурации FhirServer:Security:Enabled, см. https://github.com/microsoft/fhir-server/blob/master/docs/Authentication.md
"FhirServer" : {
"Security": {
"Enabled": true,
"Authentication": {
"Audience": "fhir-api",
"Authority": "https://localhost:44348"
}
}}
Один из способов - получить регистрацию приложения в Azure Active Directory(AAD).
Вам потребуется две регистрации приложения в AAD, чтобы получить идентификатор клиента и секрет клиента для получения токена авторизации.