你应该知道的在文档和对象模型中使用一些特定的术语:
OpenID Connect Provider (OP) 授权服务器
Thinktecture IdentityServer v3 是一个.NET 平台上开源的OpenID Connect 提供者 和 OAuth2 验证服务器,OpenID Connect Provider在不同的著作中有不同的说法,你可能发现有的叫安全令牌服务提供商,授权服务器,ip-sts和更多。
简单来说他们的共同点:为客户端提供一块安全令牌的软件。
IdentityServer有许多职责和功能包括:
-
认证用户使用本地帐户存储或通过外部标识提供者
-
提供会话管理和单点登录
-
管理client和client授权
-
为客户端颁发access token
-
验证token
客户端
客户端是请求访问IdentityServer或身份令牌的软件。客户端可以是不同类型的应用:桌面或移动的,基于浏览器的或基于服务器的应用。
无论客户端是用于用户认证还是访问资源客户端都必须在授权服务器中注册。
用户
用户是使用一个注册的客户端访问自己的数据的人。
作用域
作用域是一个客户端要访问的资源标识符。在一个认证过程或者获取Token的时候需要把作用域附加在请求中。
默认情况下,每个客户端可以在任何作用域请求令牌,但是你可以限制。
作用域分为2种:
身份作用域
请求一个用户的身份信息(又叫做claims),他的名字或电子邮件地址被视为一个scope的OpenID connect。例如一个叫“profile”的scope包括名字、姓氏、首选用户名,性别,照片和更多。你点击这里可以阅读有关作用域信息
并且你可以在identityserver模型中按你自己的要求创建自己的范围。
资源作用域
Resource scopes 通常是 Web API的标识符 (也叫做资源服务器)。例如你可以创建一个名为“calendar”的resource scope 用来标识你的calendar API。
认证/令牌请求
客户端请根据作用域从授权服务器请求令牌,授权服务器将返回一个身份令牌(identity token),一个访问令牌(access token),或两者都返回。
身份令牌(identity token)
一个身份令牌代表一个认证过程的结果。它包含在用户的最低标识符(sub claim)。通过授权后它可以包含详细的用户附加信息。
访问令牌(access token)
一个访问令牌允许访问一个资源。客户端请求访问令牌转发他们的API。访问令牌包含客户端和用户信息(如果存在的话)。API使用信息授权访问他们的数据。