服务工厂


layout: docs-default

服务工厂

IdentityServer3实现了OpenID Connect和OAuth2的诸多特性,大部分特性设计成可以被替换。如果IdentityServer3默认实现不符合你的需要,你可以方便的重写部分特性,甚至可以完全用不同的实现来替换IdentityServer3.事实上,IdentityServer3有大量的扩展点需要托管程序来扩展,比如:保存配置数据,实现用户凭据的验证,管理用户信息等。

IdentityServer3.Core.Configuration.IdentityServerServiceFactory 保有所有这些功能块,必须在启动的时候通过IdentityServerOptions 类 (参看 这里 )了解更多的关于配置选项的信息).

扩展点分为三大类:

强制扩展

这些扩展是IdentityServer3正常运行所必须的。

  • UserService
    • 实现基于本地用户信息存储,相关的外部用户,声明获取和登出逻辑.
      IdentityServer3提供两个标准实现 MembershipReboot
      和 ASP.NET Identity
  • ScopeStore
    • 实现作用域信息的获取。
  • ClientStore
    • 实现客户端配置信息的获取

IdentityServerServiceFactory允许使用内存存储来提供用户,客户端和作用域信息(请看这里).前面的例子,我们已经使用了内存存储来简化例子。

生产场景必须扩展 (默认使用内存存储实现)

  • AuthorizationCodeStore
    • 授权码的保存和获取(interface)
  • TokenHandleStore
    • 保存和获取参考令牌(interface)
  • RefreshTokenStore
    • 保存和获取更新令牌(interface)
  • ConsentStore
    • 保存和获取同意(consent)信息 (interface)
  • ViewService
    • 获取UI视图,默认使用内嵌的UI (interface)

可选扩展 (有默认实现,不喜欢就自己写)

  • TokenService
    • 创建身份和访问令牌(interface)
  • ClaimsProvider
    • 获取身份和访问令牌的声明信息(interface)
  • TokenSigningService
    • 创建和签署安全令牌(interface)
  • CustomGrantValidator
    • 实现自定义用户授权类型(interface)
  • CustomRequestValidator
    • 实现自定义的附加授权验证和令牌申请(interface)
  • RefreshTokenService
    • 创建和刷新 更新令牌(interface)
  • ExternalClaimsFilter
    • 为外部身份提供服务 过滤和转换声明(interface)
  • CustomTokenValidator
    • 实现自定义的附加令牌验证服务(interface)
  • CustomTokenResponseGenerator
    • 运行添加附加数据到令牌响应体里面interface
  • ConsentService
    • 实现授权(consent)逻辑 (interface)
  • ClientPermissionsService
    • 实现同意(consent),参考令牌和更新令牌(interface)
  • EventService
    • 转发事件给其他日志系统 (e.g. elastic search) (interface)
  • RedirectUriValidator
    • 实现重定向和登出转移URIs的验证(interface)
  • LocalizationService
    • 实现本地化显示信息 (interface)
  • CorsPolicyService
    • 实现跨域CORS策略(interface)

请看 这里了解如何注册自定义服务和实现自定义存储。

你可能感兴趣的:(服务工厂)