第22期-使用可视化管理UI界面
- 2020/7/11 1:07 | 49分钟
- VIP
使用 IdentityServer 官方提供的 AdminUI 管理界面,使用模板创建管理配置界面,配置开源 IdentityServer4.Admin 库管理后台,提供可编程的 API 接口,运行项目并实战演练,客户端管理,用户管理,角色管理,自定义声明管理,身份资源与 API 资源管理,权限策略管理,授权类型管理。
使用 IdentityServer 官方提供的 AdminUI 管理界面,使用模板创建管理配置界面,配置开源 IdentityServer4.Admin 库管理后台,提供可编程的 API 接口,运行项目并实战演练,客户端管理,用户管理,角色管理,自定义声明管理,身份资源与 API 资源管理,权限策略管理,授权类型管理。
多个授权类型的组合,扩展并自定义授权类型,基于浏览器客户端的 CORS 跨域配置与扩展,内置发送与订阅事件扩展性,自定义事件和事件处理程序,日志记录配置,加密密钥与 HTTPS 协议,手动创建令牌工具类,添加更多的 API 端点和添加新协议支持。
理解服务发现目录,扩展服务发现,授权端点,令牌端点,用户信息端点,设备授权端点,自省端点,吊销端点,结束会话端点,开源 IdentityModel 库是基于 OAuth 和 OpenID Connect 协议封装的客户端代理类,可用 IdentityModel 提供的扩展库简化服务发现端点的请求流程,实战演练使用令牌管理器自动刷新令牌,使用令牌管理客户端访问授权 API 资源。
实战演练基于 Scope 范围的授权 API 资源机制,定义 Requirement 授权需求,扩展微软 [Authorize] 默认授权特性,同时支持范围、角色和策略授权,实现 Scope 授权范围策略检索提供程序,实现自定义授权处理器,基于应用程序模型自动添加授权过滤器和策略,在依赖注入容器中添加授权相关扩展。
理解自包含 JWT 访问令牌和自省引用访问令牌,使用 Bearer 认证方式传递令牌,使用 JwtBearer 开源库验证 JWT 令牌的有效性,使用 OAuth2Introspection 开源库验证自省引用令牌,使用 IdentityServer 官方提供的 AccessTokenValidation 扩展自动识别并验证前后两者,基于 Scope 范围的 API 策略授权扩展,使用 HTTP 监听工具分析访问令牌验证机制。
访问令牌的有效期,刷新令牌工作机制与相关设置,使用刷新令牌请求访问令牌,自定义刷新令牌行为,访问令牌的自包含格式和引用格式,将访问令牌绑定到客户端,基于 TLS 证书认证客户端,使用 X509 证书和 JSON Web Keys 签名 JWT 格式令牌,自定义令牌请求验证和发行逻辑。
单点登录 Cookie 相关配置,登录用户界面和身份管理系统,登录工作流程,外部身份提供商登录相关配置,触发身份验证处理程序,处理回调并登录用户,支持 Windows 身份认证,单点登出注销配置,删除 Cookie 身份验证,通知其它客户端用户已注销,前通道注销通知,后向通注销通知,用户会话管理终结点,退出外部身份提供商。
定义客户端,基于 IClientStore 接口的客户端存储实现,在配置文件中定义客户端,客户端基本配置,认证与登录登出配置,相关令牌信息与有效期配置,关于身份令牌、访问令牌和刷新令牌配置,授权交互页面相关配置,设备流授权模式相关配置。
令牌的最终目的是控制对资源的访问权限,理解身份资源和 API 资源的区别,关于资源存储 IResourceStore 接口,身份资源与用户声明信息,实现 IProfileService 接口可扩展身份数据提供机制,定义 API 授权范围,在访问令牌中附加用户信息,参数化授权范围扩展,定义 API 资源并关联 API 授权范围。
配置依赖注入服务,配置密钥,基于内存的配置,测试用户,配置扩展服务实现,缓存配置,配置中间件管道,自定义用户配置文件存储的实现,终结点配置,服务发现配置,认证方式配置,事件配置,输入长度限制,用户交互界面配置,跨域 CORS 请求配置,内容安全策略,设备流授权模式相关配置。
基于微软 ASP.NET Core Identity 扩展用户数据存储机制,在 IdentityServer 中集成微软 Identity 用户管理方案,使用模板创建 Identity 基架项目,使用扩展库与现有项目无缝集成,扩展用户与角色,创建用户管理 DbContext 上下文,迁移微软 Identity 数据库架构,生成演示数据,更新基于微软 Identity 实现的用户 UI 交互界面。
将 IdentityServer 服务的配置和运行数据保存到数据库,使用官方模板创建基于 EfCore 存储实现的 IdentityServer 项目,现有项目可使用扩展包进行集成,使用 EfCore 迁移工具创建 IdentityServer 数据库架构,官方提供完整 SQL 脚本,配置数据存储机制,添加架构迁移支持,初始化数据库并添加演示数据,运行并测试配置结果。
理解 JWT 格式令牌与 Bearer 身份认证,认识 Cookie 与 Bearer 身份认证的区别,将令牌设置到 HttpClient 请求标头,获取访问令牌和身份令牌的方式,关于 API 资源,身份资源,授权范围,用户和客户端配置,在访问令牌中封送客户端声明和用户声明信息,声明信息映射转换,基于 SPA 单页应用的 JavaScript 身份认证与授权,支持 Vue 和 Angular 扩展, 客户端 CROS 跨域配置,了解 Fetch API 和 Promise 技术。
在某些输入受限的设备上,要完成用户名和密码口令的输入是非常困难的,设备流授权模式,可让用户在另一台设备上使用验证码或扫描二维码的方式登录认证并授权,常见的应用场景包括智能电视、基于 IOT 物联网的设备、打印机和其它需要简化认证或受限的设备。理解设备流授权过程,学习微软 OAuth 2.0 设备权限授予流程图,关于二维码生成解决方案,轮询访问令牌终结点,使用令牌请求 API 接口。
配置 IdentityServer 依赖注入和中间件,微软内置身份认证提供程序与开源代码,添加外部提供程序身份验证,使用第三方开源程序包实现微信登录,腾讯QQ登录,新浪微博登录,使用 OpenID Connect 集成外部身份认证,跟踪外部提供程序身份认证流程,关于短信验证码登录方式。
混合 Hybrid 授权模式是隐式简化模式和授权码模式的组合,深入理解身份认证与授权的关系,关于 OpenID Connect 与 OAuth 2.0 协议,身份令牌与访问令牌,配置 IdentityServer 客户端为 Hybrid 模式,设置 OpenId Connect 响应类型,跟踪认证与授权过程,设置多种授权模式组合。
授权码容易受到非法拦截攻击,攻击者获得了授权码的访问权,它就可以使用授权码来获取访问令牌,使用 PKCE 验证码交换证明密钥机制可有效保护授权码的安全性,配置 IdentityServer 支持 PKCE 校验,在 OpenID Connect 身份认证中启用 PKCE 行为,跟踪 PKCE 授权码机制的工作流程。启用刷新令牌,设置访问令牌的生命周期,在客户端获取刷新令牌,使用刷新令牌换取新的访问令牌和身份令牌,使用自带常量而不是硬编码。
隐式授权模式与授权码模式的区别,理解授权码请求与跳转流程,客户端使用授权码换取访问令牌,定义用户与客户端,配置 OpenID Connect 身份认证方式,设置授权码的响应模式,使用 Cookie 默认认证方式保存并传递加密令牌,身份令牌与用户声明转换映射,单点登录与退出。
理解客户端凭证模式、资源拥有者密码模式和交互式 Implicit 授权模式的区别,身份认证与令牌颁发流程,访问令牌与身份令牌的区别,定义用户和客户端,集成用户 UI 交互界面,定制登录注销和授权确认页面,配置 OpenID Connect 身份认证方式,保存令牌与用户声明信息。
资源拥有者密码授权与客户端凭证授权的区别,自定义身份标识资源,定义用户与声明信息,限定客户端授权范围,基于用户密码申请访问令牌,使用令牌在用户终结点上获取身份信息,使用令牌请求授权 API 接口,在 API 接口中使用 HttpContext 获取访问令牌,理解 JWT 令牌格式,关于 JWT 令牌声明信息与 ASP.NET Core 用户声明之间的转换映射,扩展用户密码验证逻辑。
在 ASP.NET Core 应用程序中配置 IdentityServer 服务,定义 API 资源,定义客户端,创建并配置 Web API 项目,创建客户端程序,请求终结点发现服务配置,获取访问令牌,使用 Bearer 方式传递令牌并请求 API 接口,关于 JWT 令牌与用户声明信息的映射,实现基于角色与策略的授权机制。
IdentityServer 是基于 ASP.NET Core 框架的身份认证与授权解决方案,关于 OpenID Connect 与 OAuth 2.0 协议,多平台支持,单点登录,令牌访问,可集成外部身份提供商,现代化应用程序架构中的通信方式与身份认证,理解用户、代理程序、客户端、资源、身份令牌、访问令牌、授权码和刷新令牌等术语,理解四种不同授权类型获取令牌的流程。