我很清楚使用SMART应用程序的EHR如何验证来自SMART应用程序的请求是否合法地来自真正的SMART应用程序。但是,我没有看到SMART应用程序如何知道来自EHR的请求是合法请求。 SMART应用程序是否有标准方式可以验证来自EHR的传入请求实际上是来自SMART应用程序已注册的EHR的请求?换句话说,是否有一种方法可以构建到SMART规范中,从而允许SMART应用程序限制使用经过身份验证的注册EHR? OAUTH2协议中是否有一个步骤可以确保这一点?
我在这里查看SMART授权指南:http://docs.smarthealthit.org/authorization/
和Cerner教程/演示:http://engineering.cerner.com/smart-on-fhir-tutorial/
我们在这里谈论的是“EHR Launch”流程,其中一个应用程序已由EHR发布。这个lauch包括一个iss
参数,表示(假设!)启动发射的EHR,以及一个不透明的launch
参数。
此时,应用无法验证请求,但它可以:
iss
值与它知道的EHR的发行者匹配(并且它具有client_id
)client_id
关联,则启动失败。这是一种验证EHR身份的功能方法:有效地,应用程序使用启动协议询问EHR此启动是否有效。
(如果您认为此协议留下了重要的功能或安全漏洞,请在chat.fhir.org上提出一点!)