如何在没有任何授权令牌的情况下将Azure API用于FHIR Server

时间:2019-09-03 10:30:58

标签: azure hl7-fhir fhir-server-for-azure

我已经为 FHIR Server的Azure API 创建了资源。我可以使用https://fhir-server-url/metadata之类的URL查看元数据信息。如文档https://docs.microsoft.com/en-us/azure/healthcare-apis/access-fhir-postman-tutorial中所述,要访问其他https://fhir-server-url/Patient之类的URL,我们需要首先获取授权令牌。为了获得授权令牌,我们需要ClientID,可以通过在Azure Active Directory中创建应用程序来获得。但我无权访问。

有什么方法可以不需要授权令牌即可访问此URL?通过在Azure门户中进行一些设置。

3 个答案:

答案 0 :(得分:1)

从FHIR服务器文档看来,您可以根据 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"
    }
}}

答案 1 :(得分:1)

如果使用的是第一方访问者(例如https://azurehealthcareapis)(这是为FHIR部署Azure API的默认设置),则实际上可以使用第一方客户端应用程序(例如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

答案 2 :(得分:0)

简短答案::不幸的是,您必须在Azure Active(AAD)目录中进行应用注册。

您必须在AAD中至少创建2个应用程序注册,没有其他方法可以获取客户端ID和客户端密码来检索授权令牌。