You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Firely的.NET 8 C#控制台应用连接Azure FHIR服务的问题与解决

已解决:.NET 8控制台应用连接Azure FHIR服务授权失败问题

原问题描述

开发基于.NET 8的C#控制台应用,使用Fire.ly HL7.Fhir.R4(5.5.1)NuGet包连接Azure FHIR服务,实现患者增、查功能。通过Entra应用注册配置,使用ClientSecretCredential获取令牌后,调用client.Create<Patient>(patient)时触发FhirOperationException(Forbidden)授权失败错误。同时发现访问令牌的过期时间与请求时间一致,不确定是否正常。

获取令牌代码:

var clientSecretCredential = new ClientSecretCredential(tenantId: tenantId, clientId: applicationClientId, clientSecret: secretValue);
AccessToken accessToken = await clientSecretCredential.GetTokenAsync(new TokenRequestContext(scopes: new[] { tokenEndpointAuthority }));

建立连接代码:

var mh = new HttpClientEventHandler();
mh.OnBeforeRequest += (object sender, BeforeHttpRequestEventArgs e) =>
{
    e.RawRequest.Headers.Add("Authorization", $"Bearer {accessToken.Token}" );
};

FhirClient client = new FhirClient( endpoint: endpointAuthority, 
                                    messageHandler: mh, 
                                    settings: new FhirClientSettings { PreferredFormat = ResourceFormat.Json });

最终解决流程

  1. 在Entra中创建应用注册;
  2. 进入Entra的企业应用,确认服务主体已创建(通常与应用注册同名);
  3. 进入FHIR服务的IAM页面,添加新角色分配。

注意:步骤3中可能遇到的问题——点击“选择成员”时仅显示当前用户,不显示安全主体,需完整粘贴主体名称才能找到并选中。完成配置后,可通过ADAL和MSAL成功连接客户端。

内容的提问来源于stack exchange,提问作者AndyW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 15:49:58