【问题标题】:401 when using client_credentials auth flow使用 client_credentials 身份验证流程时出现 401
【发布时间】:2021-05-28 19:52:09
【问题描述】:

使用 Postman 和授权码授权一切都很好。但我正在尝试使用 client_credentials 流连接到 FHIR,这意味着没有 UI。

我正在调用带有参数的网址https://login.microsoftonline.com/xxxxxxxx-c9a9-4be5-a9f7-xxxxxxxxxxxx/oauth2/v2.0/token

grant_type: client_credentials
client_id: [my fhir application ID]
scope: https://[myCompany].azurehealthcareapis.com/.default
client_secret: [mySecret]

这样,我得到了一个令牌

{
    "token_type": "Bearer",
    "expires_in": 3599,
    "ext_expires_in": 3599,
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5PbzNaRHJPRFhFSzFqS1doWHNsSFJfS1hFZyIsImtpZCI6Im5PbzNaRHJPRFhFSzFqS1doWHNsSFJfS1hFZyJ9.eyJhdWQiOiJodHRwczovL2JvbmZoaXIuYXp1cmVoZWFsdGhjYXJlYXBpcy5jb20iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC8wZjIzNjI5Yy1jOWE5LTRiZTUtYTlmNy1iZGI1ODU1M2Q3YjUvIiwiaWF0IjoxNjIyMjMwNjExLCJuYmYiOjE2MjIyMzA2MTEsImV4cCI6MTYyMjIzNDUxMSwiYWlvIjoiRTJaZ1lERGJ3WFZqendaRGt4M25ZcmhXcnNoMEJBQT0iLCJhcHBpZCI6ImY3YTA0ZWZjLTE1YjItNDVlMi05NzU5LWI0ZGQ0ZTdjN2Q5ZiIsImFwcGlkYWNyIjoiMSIsImlkcCI6Imh0dHBzOi8vc3RzLndpbmRvd3MubmV0LzBmMjM2MjljLWM5YTktNGJlNS1hOWY3LWJkYjU4NTUzZDdiNS8iLCJvaWQiOiJlYTFiMmI4MC1kYTdiLTQ2YmEtYjgyOS01YzdlNTllZmVmYzciLCJyaCI6IjAuQVhjQW5HSWpENm5KNVV1cDk3MjFoVlBYdGZ4T29QZXlGZUpGbDFtMDNVNThmWjkzQUFBLiIsInN1YiI6ImVhMWIyYjgwLWRhN2ItNDZiYS1iODI5LTVjN2U1OWVmZWZjNyIsInRpZCI6IjBmMjM2MjljLWM5YTktNGJlNS1hOWY3LWJkYjU4NTUzZDdiNSIsInV0aSI6InYwSnhfOEM0c1VtQ1ZGQUZoY3AtQWciLCJ2ZXIiOiIxLjAifQ.QMHS5OoWYflq30owYolvwzDkRJm4sG29G11Z_Qct_pPuj_ULm6hR4vC_jydqsq7eDFGxA1wb_Y8hJXVKTHBu1ij9_SKSlKhNZ6KmkqrvOhTaADFGw36albKNgII_xzA-gmeAOKQuKX9Q9wZmPfJETx5NJuJnG1qAnexvhQkhMv8AgiznnU9VbaIoAAvObHx9E5Pb5nesSmOhVwMxZRjBrTHqz9ryFUDYq3Pciuz6HvVF7ro9IijUg9d8r2da8HuXGXvZiJXkfiEW6OuR1RLv9QDol6WjAOKTB12q07iFFgDL0UTinWLY--3dn0raVyd7ZtT_yzLNRZ9iqX_XXXXX"
}

现在,当我调用网址 https://[myCompany].azurehealthcareapis.com/Patient 时,我会收到 401 响应。

{
    "resourceType": "OperationOutcome",
    "id": "114e91311cbd11458e3d3284db6c9826",
    "issue": [
        {
            "severity": "error",
            "code": "login",
            "diagnostics": "Authentication failed."
        }
    ]
}

这就是我拥有的 Api 权限

【问题讨论】:

  • 您能否将您的帖子更新为对 https://[myCompany].azurehealthcareapis.com/Patient 的完整请求?如果您收到“代码:禁止”,我会说查看 FHIR RBAC 配置(docs.microsoft.com/en-us/azure/healthcare-apis/fhir/…),但“代码:登录”表明 access_token 未被接受(即使声明在令牌中看起来不错.payload)。
  • @rmharrison 对于 /Patient,除了 Authorization 标头和 Bearer 令牌之外没有其他配置。我正在使用 Azure RBAC,我觉得我在应用注册和我的 Fhir 服务之间缺少一些东西。我需要授予对我配置的 Api 服务的访问权限。使用 RBAC 我尝试搜索 Fhir-Service-Client,但它不在目录中。 docs.microsoft.com/en-us/azure/healthcare-apis/fhir/….
  • 我更新了我的 Api 服务器,因此 API url 与 Fhir url https://[myCompany].azurehealthcareapis.com 匹配,现在我得到了 403 - 禁止。我猜它的不同之处。

标签: fhir-server-for-azure


【解决方案1】:

在 Fhir 服务上,从左侧菜单中选择访问控制 (IAM)(如果您使用的是 Azure RBAC)。

从那里,点击角色分配

然后搜索您的应用注册

这允许您的应用在登录用户之外拥有对 Fhir 服务的权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-03
    • 2014-10-06
    • 2017-07-22
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 2022-07-04
    相关资源
    最近更新 更多