IdentityServer - 在不使用UI网站的情况下单独进行身份验证,授权,资源?

时间:2018-05-04 09:43:35

标签: identityserver4 openid-connect

我希望拥有一个由具有不同角色的设备/程序组成的体系结构(这些设备/程序都是分开的,这些角色中的任何一个都不能存在于同一个实例中):

  • 客户
  • AUTHENTICATION-SERVER
  • AUTHORIZATION-SERVER(可能有很多这些)
  • RESOURCE-SERVER(也很多可能)

我不想使用用户必须导航到的任何网站。

根据我对OAuth和Open ID Connect的研究,我认为客户端可以从AUTHENTICATION-SERVER获得ID_TOKEN(授权后),然后可以从AUTHORIZATION-SERVER请求ACCESS_TOKENS到不同的资源。

我想我描述的方法允许在客户端进行身份盗用。

我无法找到一种方法来轻松地从授权服务器获取id令牌到客户端(然后我可以使用它来向多个授权服务器进行身份验证)。我的客户值得信赖。无论如何,我想使用本机应用程序并在它们之间实现open id连接。

我现在不想使用任何网站,仍然需要能够与用户和所有内容的声明关联进行安全通信。 OpenID Connect及其可能的“流量”是否合适?是否有任何其他实现可以允许我描述的流程(或OpenID Connect的mabye派生)?

1 个答案:

答案 0 :(得分:0)

不建议这样做,但如果你真的不想使用浏览器(有点反OAuth / OIDC并且有很多限制),那么ResourceOwnerPassword授权类型就是你所使用的类型。我需要使用。这不会返回id_token,只是一个access_token。

id_tokens用于支持基于浏览器的前端登录流程,如果使用ROP授权类型,它们没有用处。

访问令牌由身份验证/安全令牌服务(在本例中为IDS4)颁发,并授予客户端(可选择用户同意)对资源的访问权限。然后,资源具有自己的授权规则,以强制执行范围和与用户相关的ACL /业务规则访问控制。