项目

单层解决方案:认证机制

本文档提及的部分功能可能在免费版本中不可用。我们使用 * 符号标记仅适用于 团队版更高版本 许可的功能。

单层解决方案模板已完整配置认证系统。所有服务和应用程序均采用OpenIddict库进行认证,并以统一方式完成配置。本文档将详细说明这一通用认证结构。

OpenIddict

OpenIddict是一款开源库,能够便捷地在应用中实现OpenID Connect服务器。ABP通过内置模块(OpenIddictOpenIddict UI *)将OpenIddict集成至解决方案中。

初始数据播种

单层解决方案模板包含初始数据播种机制,可根据需要(例如使用Angular UI时)为解决方案创建默认客户端(应用程序)和作用域。宿主项目的Data文件夹中可找到OpenIddictDataSeedContributor类。若认证由UI应用程序(如MVC/Razor Pages)处理,则不会包含此类。

仅当创建解决方案时选择启用,才会添加OpenIddict UI *模块。

新建解决方案-OpenIddict模块

OpenIddict UI * 模块提供了管理OpenIddict实体(如应用程序、作用域等)的用户界面,可直接通过应用UI管理这些实体。

openiddict管理界面

外部登录提供商

认证服务器负责处理令牌生成、验证和用户账户管理(如登录、注册)。它使用账户账户专业版 *模块。其中账户专业版 *模块额外支持社交登录功能(如Google、Facebook)。社交登录的启用、禁用和配置均可直接在应用用户界面中操作。

账户外部提供商配置

认证流程

解决方案中的应用程序根据类型采用不同的认证流程:

  • MVC UI Web应用程序
    采用混合流程(OpenID Connect认证)进行用户认证。
  • SPA与Swagger应用程序
    使用授权码流程进行用户认证。

若UI为SPA应用程序(如Angular应用),API宿主端将采用JWT持有者认证来授权用户操作。


在本文档中