本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在启用 SMART on FHIR 的数据存储中使用细粒度授权 HealthLake
仅凭@@ 作用域并不能为你提供必要的具体信息,说明请求者有权在数据存储中访问哪些数据。在授予对启用 FHIR 的 SMART 数据存储的访问权限时,使用细粒度授权可以提高特异性。 HealthLake 要使用细粒度授权,请在FineGrainedAuthorizationEnabled请求的IdentityProviderConfiguration参数True中设置等于。CreateFHIRDatastore
如果您启用了细粒度授权,则您的授权服务器会返回一个fhirUser范围id_token以及访问令牌。这允许客户端应用程序检索有关用户的信息。客户端应用程序应将fhirUser声明视为代表当前用户的 FHIR 资源的 URI。这可以是 Patient、Practitioner 或 RelatedPerson。授权服务器的响应还包括一个user/范围,该范围定义了用户可以访问哪些数据。这使用为与 FHIR 资源特定作用域相关的作用域定义的语法:
user/(fhir-resource | '*').('read' | 'write' | '*')
以下是如何使用细粒度授权来进一步指定与数据访问相关的 FHIR 资源类型的示例。
-
何时
fhirUser是Practitioner,细粒度的授权决定了用户可以访问的患者集合。只有患者以fhirUser全科医生的fhirUser身份提及的患者才允许进入。Patient.generalPractitioner : [{Reference(Practitioner)}] -
何时
fhirUser为Patient或,请求中提RelatedPerson及的患者与请求中提及的患者不同fhirUser,细粒度的授权决定了所请求患fhirUser者的访问权限。如果请求的Patient资源中指定了关系,则允许访问。Patient.link.other : {Reference(Patient|RelatedPerson)}