2017-04-24 188 views
0

我们的团队正在开始构建FHIR(SoF)应用程序的SMART。 SoF使用OAuth2 access_tokens来表示授权。我们的应用程序使用代码授权获取令牌(https://oauth2.thephpleague.com/authorization-server/auth-code-grant/)。OAuth2(代码授权)access_token含义

我对OAuth2(用于SAML)非常陌生,并且一直在阅读标准。我想我们可能会混淆access_token的意图。

OAuth2中的意图是access_token表示资源所有者(最终用户)授予客户端(Web应用程序)为其执行的权限吗?

还是有意依靠资源所有者(最终用户)被允许执行某些操作?

例如,认证认证令牌请求有一个名为“contacts-update”的范围。如果我们得到一个带有这个范围的access_token,这是否意味着用户已经允许应用程序尝试更新联系人(代表他们)或者是否意味着用户具有基本需求(他们在更新联系人角色中)能够更新联系人?

回答

1

正如您所写,OAuth2访问令牌表示从资源所有者到客户端(应用程序)的权限委派,因此客户端可以代表资源所有者执行操作。这也是为什么有一个同意页面 - 用户同意给它的请求权限(范围)。

有时,人们希望将OAuth2用作中央身份验证服务器和其应用程序的权限配置。他们希望每个应用程序都能看到用户为其配置的所有权限。然后,应用程序请求特定范围没有意义,但要配置OAuth2服务器以返回与该应用程序相关的所有内容(由client_id标识)。但我不认为这是使用的预期方式,OAuth2规范不包括这种情况。

如果OAuth2支持OpenID Connect扩展,也可以仅用于认证。然后应用程序可以请求标识令牌。 ID令牌证明用户的身份,并在每个应用程序中分别处理权限。

+0

谢谢,我们正在合并令牌含义。乔希曼德尔回应我的谷歌群体张贴在这里:https://groups.google.com/forum/#!topic/smart-on-fhir/IzONJwusKvQ并确认你说什么。谢谢! – cobolstinks