服务工厂 (Service Factory)

IdentityServer3 有许多特性用来实现 OpenID Connect 和 OAuth2 。许多特性都已经设计好了,也可以被替换掉。当默认的逻辑没法满足宿主应用程序的需求时这非常有用,或者简单点说,应用程序想要提供一个完全不同的实现。事实上,IdentityServer3 中有一些扩展点需要宿主应用程序来提供(比如配置数据的存储或者用于验证用户凭据的身份管理的实现)。

IdentityServer3.Core.Configuration.IdentityServerServiceFactory 拥有所有的这些构建块,而且必须在 startup 阶段通过 IdentityServerOptions 类来提供(参见 这里 获取更多关于配置选项的信息)。

扩展点有以下三类。

强制实现 (Mandatory)

IdentityServerServiceFactory 允许建立一个服务工厂来提供用户,客户端和域的 in-memory 仓储(参见 这里)。

生产场景强制实现(但是有默认的 in-memory 实现) (Mandatory for production scenarios (but with default in-memory implementations))

可选(可以被替换,但是有默认的实现) (Optional (can be replaced, but have default implementations))

参见 这里 获取更多关于注册自定义服务和仓储实现的信息。