微服务解决方案:认证
您必须拥有 ABP Business 或更高版本的许可才能创建微服务解决方案。
微服务解决方案模板已为认证功能进行了完整配置。所有服务和应用程序都配置为使用 OpenIddict 库进行认证。它们按照通用的方式进行认证配置。本文档将解释这一通用认证结构。
OpenIddict
OpenIddict 是一个开源库,提供了一种在应用程序中实现 OpenID Connect 服务器的简单易行的方法。ABP 内置了模块(OpenIddict、OpenIddict UI)以便将 OpenIddict 集成到解决方案中。
身份服务
微服务解决方案模板包含负责 OpenIddict 定义(应用程序、作用域等)的身份服务。此外,它还提供了 OpenIddictDataSeeder 类来初始化数据。它会为解决方案创建默认的客户端(应用程序)和作用域。每个微服务都有其自己的作用域,Web 应用程序使用这些作用域来获取对微服务的访问权限。因此,当您添加新的微服务时,应添加一个新的作用域,并为相关的客户端(应用程序)添加允许的作用域。
只有在创建解决方案时选择了 OpenIddict UI 模块,OpenIddict UI 模块才会被添加到身份微服务中。
OpenIddict UI 模块提供了一个用户界面来管理 OpenIddict 实体,如应用程序、作用域等。您可以从应用程序的用户界面管理这些实体。
认证服务器
该解决方案包含一个认证服务器(auth-server)应用程序,用于提供令牌生成、验证以及账户(登录、注册等)页面。它使用了账户模块。账户模块还提供了社交登录(Google、Facebook 等)功能。您可以从应用程序的用户界面启用/禁用和配置社交登录。
认证流程
应用程序根据其类型使用多种流程来认证用户。MVC UI Web 应用程序使用混合流程(OpenID Connect 认证)来认证用户,而 SPA 和 Swagger 应用程序则使用授权码流程来认证用户。用户登录系统并从认证服务器收到令牌后,应用程序(微服务)使用 JWT Bearer 认证来授权用户。
抠丁客





