术语
在规范、文档和对象模型中使用了一些你应该了解的术语。
IdentityServer
IdentityServer是一个OpenID Connect的提供者,它实现了OpenID Connect和OAuth2.0的相关协议。
不同的语言使用不同的术语表示一个相同的东西--你可能想要看到security token service、identity provider、authorization server、IP-STS或者其他,但这些都是代表一个IdentityServer--一个软件,他可以给客户端颁发一个安全令牌。
Identityserver有一些功能,它包括:
- 保护你的资源
- 使用一个本地账户的存储或通过一个外部的身份提供者来认证用户
- 提供会话管理和单点登陆(sso)
- 管理和认证客户端
- 给客户端颁发access token和id token
- 校验token
用户
用户就是一个使用已经注册了的客户端访问资源的人类。
客户端
客户端就是一个从IdentityServer请求token的软件,它可以用来认证用户(通过请求id token)它也可以用来访问资源(通过请求access token)。一个客户端在请求token前必须现在IdentityServer上面进行注册。
一些客户端的例子包括但不限于web app、本地移动应用或者桌面应用、但也应用或者服务器进行。
资源
资源是一些你想通过IdentityServer保护的东西。包括用户的身份信息,或者APIs。
每个资源都有一个唯一的名字---并且客户端要通过这个名字来指定他们想要访问的那个资源。
身份数据(也叫做claims)是关于一个用户的,比如name或者email、address等
APIs资源代表了一个客户端想要调用的功能,通常是一个web api。也可以是别的什么东西。
Identity token
一个identity token代表了一个认证过程的结果。它至少包含一个用户的id(叫做sub,也叫subject claim),另外还包含一些用户如何认证以及何时认证等一些信息,他可以包含一些额外的身份信息。
access token
access token允许访问api,客户端请求完access token后携带他们去请求api资源。access token包含了一些客户端信息和用户的信息(如果有的话),APIs使用这些信息来进行授权。