术语
整个IdentityServer3的说明文档使用了一些特定术语:
OpenID Connect 提供者 (OP)
IdentityServer是OPenID Connect身份提供者--实现了OpenID Connect协议(OAuth2同样实现了)
不同的文章使用略微不同的术语 - 你或许能看到 安全令牌服务,身份提供者,授权服务器,IP-STS和更多。
但他们实际上是一个意思: 一个能发放安全令牌给客户端的软件。
IdentityServer 有一系列的任务和特性--包括:
用本地账号存储或者第三方身份验证服务认证一个用户
提供会话管理和单点登录
管理和验证客户端
发放身份和访问令牌给客户端
*验证令牌
客户端
客户端向IdentityServer请求令牌---要求认证一个用户 或者 请求访问资源(又叫依赖方或者RP)。客户端必须在OP中注册。
web应用程序,原始移动Apps,桌面程序,单页应用,服务进程等都是客户端。
译者注:客户容易和用户混淆,所以在这个教程中,我把client翻译成客户端。
用户
用户是具体的人,他用注册的客户端访问他/她的数据。
作用域(Scope)
作用域是客户端想访问的资源的标识符,当客户端发送认证或者令牌请求到OP的时候,会指明作用域。默认情况下,客户端可以为任何作用域请求令牌,但是可以限制它。
作用域有两种情况
身份作用域
这是指用户本身信息(又叫声明),比如,用户名,邮件地址等,在OpenID Connect中作为一个作用域。
比如:有一个叫Profile
的作用域,包括姓,名,首选用户名,性别,照片等。你可以在这里了解标准作用域,也可以在IdentityServer按照自己的需求定义作用域。
资源作用域
资源作用域标识WebAPI(也叫资源服务器)--比如你可以定义一个日历`作用域来代表所有
日历`API.
认证/令牌请求
Clients request tokens from the OP. Depending on the scopes requested, the OP will return an identity token, an access token, or both.
客户端从OP请求令牌,根据请求的作用域,OP返回身份令牌或者访问令牌或者同时返回身份和访问令牌。
身份令牌
身份令牌是认证的结果,它包括一个代表用户的最小标识(叫sub
,也就是主体声明)。它也可以包括用户的一些附加信息,以及OP怎样认证这个用户的。
访问令牌
如名所示,访问令牌就是用来访问资源的。客户端请求访问令牌,并使用访问令牌调用API。一个访问令牌包括客户端及用户(如果有),API使用这些信息授权访问对应的数据。