文章
· 13 hr 前 阅读大约需 3 分钟

使用 Postman 测试 InterSystems FHIR 存储库的 OAuth2.0(第一部分)

大家好,又是我来分享我最近的学习心得了。

最近,我正在学习如何为 InterSystems FHIR 资源库设置 OAuth2 身份验证。我发现以下文章非常好,而且很容易理解。

使用 IRIS for Health 启动 FHIR EHR 的 SMART

在 IRIS for Health 上构建 FHIR 资源库 + OAuth2 授权服务器/资源服务器配置》第 2 部分

对我来说,作为一个对 OAuth2.0 没有太多了解的用户。我认为,在了解整个 OAuth2.0 环境之前,从纯粹的用户角度来看(它是什么、我需要哪些参数、预期输出是什么),理解如何设置整个 OAuth2.0 环境是相当困难的。在这里,我们使用 Postman 作为客户端。

如果你想有一个 OAuth 的测试环境,可以试试下面的 dockers

workshop-iris-oauth2 或本文中的 docker在 IRIS for Health 上构建 FHIR 资源库 + OAuth2 授权服务器/资源服务器配置 第 1 部分

在本文中,我在本地计算机上设置了一个支持 HTTPS 的 InterSystems FHIR 资源库 。(根据我的观察,要使 InterSystems OAuth 正常工作,资源服务器必须支持 HTTPS😑😐。)


因此,让我们从简单的开始。

案例 1:基本身份验证

我们需要的信息有

URL {hostname}/{path}/{Resources}?{parameters}
正文 可选
用户名  
密码  

Postman 中的测试非常简单,如下所示

一般来说,基本身份验证很简单,因为您只需提供想要获取的资源的 URL 和相应的凭证。只需 1 个步骤,就能获取您想要的数据😁✌。


案例 2:OAuth 身份验证

这个概念与基本身份验证有点不同。据我所知,关键区别在于时段(session)和令牌(token)的概念。也许在我们真正进入 OAuth2.0 之前,我们先来谈谈我们熟悉的东西。

让我们考虑下面这个场景:你想去一家艺术博物馆参加一个特别活动 "奇迹时刻"。由于这个活动非常受欢迎,艺术博物馆决定设置流量控制,将开放时间分为 8 个时段(session),每个时段为 1 小时,参观者必须在参观前到票务中心预订自己的时段(session)。换句话说,参观者必须在正确的时间段(时段,session)向美术馆出示有效门票(令牌,token),才能参加 "奇迹时刻 "活动。

根据上述场景,我们可以总结如下,从 OAuth2.0 客户端的角度来看,为了访问我们想要的资源,我们需要

第一步:从 身份验证服务器(Authentication Server)获取 令牌(token)(从票务服务中心获取票据)

第二步:向资源服务器(Resource Server 出示令牌(token)(向艺术博物馆出示门票)

要获取令牌,需要让身份验证服务器(Authentication Server)知道

1. 您是谁?(最简单的方法之一,提供client_idclient_secret,当然还有其他方法,但我只想在此简单说明一下😁) 2.

2.您要访问的资源服务器是什么?(哪个博物馆?哪个场馆?),您可以在观众席(audience)上提供。

3.您的访问范围是什么?(哪个节目?哪个活动?),可以在范围中提供,该范围应在身份验证服务器(Authentication Server )和资源服务器( Resource Server之间定义。

所以......现在......是时候做一个客户了

使用以下信息,从 Postman 获取令牌

认证类型 OAuth2.0
授予类型 Client Credentials
访问令牌 URL

https://{authentication server hostname}/oauth2/token?aud={resource server hostname}/path

例如,

https://authenticationserver.com/oauth2/token?aud=https://resourceserver...

范围 user/*.read user/*.write
客户端身份验证 Send as Basic Auth header

验证完成后,点击使用令牌(Use Token)

是的!!现在我们得到了一个有效的令牌,😁😂,它将在一小时内过期😶🤐。

现在使用令牌(Use the Token)获取我们想要的资源

现在尝试获取病人资源

URL {resource server hostname}/{path}/Patient
方法 GET
令牌 我们在步骤 1 中获得的令牌

是的!!看起来不错。

感谢您的阅读。

讨论 (0)1
登录或注册以继续