声明流程中的OpenId Connect权限/授权

时间:2017-02-27 17:14:17

标签: oauth openid jwt openid-connect identityserver4

我们正在实施带有MS.Identity的IdentityServer4,用于SSO,身份验证和使用Implicit Flow为我们的少数SPA和WebAPI授权(我们拥有所有)。

使用隐式流程,Id_Token是我们提出额外“声明”的地方。 Spec here.

根据this.

,access_token不包含自定义权限声明

Implicit Flow Spec is here.

问题:授予和删除权限的流程是什么?

  • 客户端如何知道权限/声明已更改而不轮询用户信息端点?
  • 资源服务器如何知道?

Id_token的撤销不是规范。看来知识权限中的权利要求的效用不再适用于我对OpenID Conenct的理解。

我是否缺少一个明显的内置规格解决方案,或者当权限发生变化时我们是否实施了某种重新发布的Id_Token?

谢谢..

2 个答案:

答案 0 :(得分:1)

代币不包含权限。它们包含有关客户端和身份的身份数据。用户。

https://leastprivilege.com/2016/12/16/identity-vs-permissions/

答案 1 :(得分:0)

根据多米尼克的回答。

我要实现一个Permission / Authorization Server和端点。

SPA和WebAPI客户端可以通过身份验证调用它以获取权限。现在我们可以返回我们需要的任何自定义权限对象。

在access_token中,我们将添加一个自定义的“权限ETAG”,这样如果用户的权限发生变化,每个客户端都知道要获取新的权限。

建设性批评欢迎......