规范、文档和对象模型等都使用特定的术语来表述。

2.1 identityserver

identityserver是openid connect提供程序 – 它实现openid connect和oauth 2.0协议。

对于相同的角色,不同的文献将使用不同的术语 —— 你可能也发现了安全令牌服务(security token service),身份提供程序(identity provider),授权服务器(authorization server),ip-sts 等。

但它们完全相同:一种向客户发放安全令牌的软件。

identityserver 包含一些职责和功能:

  • 保护你的资源
  • 使用本地帐户存储或外部身份提供程序对用户进行身份验证
  • 提供会话管理和单点登录(sso)
  • 管理和验证客户端
  • 向客户端发放身份和访问令牌
  • 验证令牌

2.2 用户

用户是使用注册客户端访问资源的人。

2.3 客户端

客户端是从identityserver请求令牌的软件 – 用于验证用户(请求身份令牌)或访问资源(请求访问令牌)。客户端必须首先向identityserver注册,然后才能请求令牌。

客户端可以是web应用程序、移动客户端或桌面应用程序、单页面应用程序(spa,single page application)、服务器进程等等。

2.4 资源

您希望使用identityserver保护资源 – 用户的身份数据或api。

每个资源都有一个唯一的名称 – 客户端使用此名称来指定他们希望访问哪些资源。

身份数据 关于用户的身份信息(也称为声明),例如姓名或电子邮件地址。

api api资源表示客户端要调用的功能 – 通常建模为web api,但不一定。

2.5 身份令牌

身份令牌表示身份验证过程的结果。它至少包含用户的标识符(称为sub aka subject声明)以及有关用户如何以及何时进行身份验证的信息。它可以包含其他身份数据。

2.6 访问令牌

访问令牌允许访问api资源。客户端请求访问令牌并将其转发给api。访问令牌包含有关客户端和用户(如果存在)的信息。api使用该信息来授权访问其数据。

github地址