Identity Server 的目的是认证和授权,我们需要理解认证和授权的工作过程。这就需要了解OAuth 2.0的四种授权模式,下面这张图是授权码模式的工作过程,至少我在一开始看得一头雾水:
现在我们使用新搭建好得认证服务和管理应用来理解这个工作过程。
首先代入一下图中的变量:
- Resource Owner: 我自己
- User-Agent: 我正在使用的浏览器
- Client: Admin目录下的管理应用,运行在http://localhost:4003
- Authorization Server: STS目录下的认证服务,运行在http://localhost:4010
好了,现在我们可以按照图上的步骤,使用以代入变量解释 A-E的工作过程。
A:我在浏览器输入http://localhost:4003访问管理应用,管理应用会通知浏览器重定位到认证服务http://localhost:4010
我们看一下是不是这样子,在浏览器中输入http://localhost:4003,发现确实重定位到认证服务器的登录页面:
B:我在登录页面输入用户名密码,浏览器发送给认证服务器进行认证。
C:认证服务器返回授权码,浏览器重定位到管理应用(http://localhost:4003)
这个过程我们可以在浏览器的控制台中看到:
下面的过程是管理应用和认证服务在后台进行的,等到我们编写了客户端对Web Api进行访问的时候就可以遇到。
D:管理应用使用授权码向认证服务申请Access Token。
E:认证服务返回Access Token
初步理解了这个工作过程,下一步可以试着编写一个客户端,通过认证服务进行认证了。