zoukankan      html  css  js  c++  java
  • 第18章 启动

    IdentityServer是中间件和服务的组合。所有配置都在您的启动类中完成。

    18.1 配置服务

    您可以通过调用以下方法将IdentityServer服务添加到DI系统:

    public void ConfigureServices(IServiceCollection services)
    {
        var builder = services.AddIdentityServer();
    }
    

    您可以选择将选项传入此调用。有关选项的详细信息,请参见

    这将返回一个构建器对象,该构建器对象又有许多方便的方法来连接其他服务。

    18.2 密钥材料

    • AddSigningCredential
      添加签名密钥服务,该服务为各种令牌创建/验证服务提供指定的密钥材料。您可以从证书存储中传入证书的X509Certificate2SigningCredential或引用。

    • AddDeveloperSigningCredential
      在启动时创建临时密钥材料。当您没有要使用的证书时,这仅适用于dev。生成的密钥将保留到文件系统,以便在服务器重新启动之间保持稳定(可以通过传递禁用false)。这解决了客户端/api元数据缓存在开发期间不同步时的问题。

    • AddValidationKey
      添加用于验证令牌的密钥。它们将由内部令牌验证器使用,并将显示在发现文档中。您可以从证书存储中传入证书的 X509Certificate2SigningCredential`或引用。这对于关键翻转场景非常有用。

    18.3 内存配置存储

    各种“内存中”配置API允许从内存中的配置对象列表配置IdentityServer。这些“内存中”集合可以在宿主应用程序中进行硬编码,也可以从配置文件或数据库动态加载。但是,通过设计,这些集合仅在托管应用程序启动时创建。

    这些配置API的使用旨在用于原型设计,开发和/或测试时,在运行时不需要为配置数据动态查询数据库。如果配置很少更改,则此配置模板也可能适用于生产方案,或者如果必须更改值,则要求重新启动应用程序并不方便。

    • AddInMemoryClients
      基于配置对象的内存中集合的注册IClientStore和ICorsPolicyService实现Client。

    • AddInMemoryIdentityResources
      IResourceStore根据IdentityResource配置对象的内存中集合注册实现。

    • AddInMemoryApiResources
      IResourceStore根据ApiResource配置对象的内存中集合注册实现。

    18.4 测试商店

    该TestUser是用户类,他们的凭据和声明在IdentityServer中。使用TestUser类似于“内存”存储的,因为它用于原型设计,开发或测试。TestUser在生产中不推荐使用。

    • AddTestUsers
      TestUserStore基于TestUser对象集合的注册。 TestUserStore由默认的快速入门UI使用。还注册实现IProfileServiceIResourceOwnerPasswordValidator

    18.5 添加服务

    • AddExtensionGrantValidator
      添加IExtensionGrantValidator实现以用于扩展授权。

    • AddSecretParser
      添加ISecretParser用于解析客户端或API资源凭据的实现。

    • AddSecretValidator
      添加ISecretValidator用于针对凭证存储验证客户端或API资源凭证的实现。

    • AddResourceOwnerValidator
      添加IResourceOwnerPasswordValidator用于验证资源所有者密码凭据授予类型的用户凭据的实现。

    • AddProfileService
      添加IProfileService用于连接到自定义用户配置文件存储的实现。的DefaultProfileService类提供了依赖于验证cookie作为权利要求中的用于在令牌发行的唯一来源的默认实现。

    • AddAuthorizeInteractionResponseGenerator
      添加IAuthorizeInteractionResponseGenerator实现以在授权端点处定制逻辑,以便在必须向用户显示错误,登录,同意或任何其他自定义页面的UI时。本AuthorizeInteractionResponseGenerator类提供了一个默认的实现,因此考虑从这个现有的类派生如果需要增强现有的行为。

    • AddCustomAuthorizeRequestValidator
      添加ICustomAuthorizeRequestValidator实现以在授权端点处自定义请求参数验证。

    • AddCustomTokenRequestValidator
      添加ICustomTokenRequestValidator实现以在令牌端点处自定义请求参数验证。

    • AddRedirectUriValidator
      添加IRedirectUriValidator实现以自定义重定向URI验证。

    • AddAppAuthRedirectUriValidator
      添加一个“AppAuth”(适用于Native Apps的OAuth 2.0)兼容的重定向URI验证器(进行严格验证,但也允许带有随机端口的http://127.0.0.1)。

    • AddJwtBearerClientAuthentication
      使用JWT承载断言添加对客户端身份验证的支持。

    18.6 缓存

    IdentityServer经常使用客户端和资源配置数据。如果从数据库或其他外部存储加载此数据,则频繁重新加载相同数据可能会很昂贵。

    • AddInMemoryCaching
      要使用下面描述的任何缓存,ICache<T>必须在DI中注册实现。此API注册了ICache<T>基于ASP.NET Core的默认内存实现MemoryCache

    • AddClientStoreCache
      注册一个IClientStore装饰器实现,它将维护Client配置对象的内存缓存。缓存持续时间可在``Caching配置选项上配置IdentityServerOptions

    • AddResourceStoreCache
      注册一个IResourceStore装饰器实现,它将维护内存缓存IdentityResourceApiResource配置对象。缓存持续时间可在Caching配置选项上配置IdentityServerOptions

    • AddCorsPolicyCache
      注册ICorsPolicyService装饰器实现,该实现将维护CORS策略服务评估结果的内存缓存。缓存持续时间可在Caching配置选项上配置IdentityServerOptions

    可以进一步自定义缓存:

    默认缓存依赖于ICache<T>实现。如果要自定义特定配置对象的缓存行为,可以在依赖项注入系统中替换此实现。

    ICache<T>本身的默认实现依赖于.NET提供的IMemoryCache接口(和MemoryCache实现)。如果要自定义内存中缓存行为,可以替换IMemoryCache依赖项注入系统中的实现。

    18.7 配置管道

    您需要通过调用以下方法将IdentityServer添加到管道:

    public void Configure(IApplicationBuilder app)
    {
        app.UseIdentityServer();
    }
    

    注意
    UseIdentityServer包括UseAuthentication,所以没有必要同时使用。

    中间件没有其他配置。

    请注意,顺序在管道中很重要。例如,您需要在实现登录页面的UI框架之前添加IdentitySever。

    github地址

  • 相关阅读:
    JQuery中的回调对象
    CSS中的视觉格式化模型
    css中的选择器
    浅谈css中的position
    python-24: re 模块 之二 re方法及反斜杠
    python-23 xml.etree.ElementTree模块
    python-22 eval json pickle shelve 之间差别
    python-21 os 模块
    python-18: datetime 模块
    python-16: time 模块 之二
  • 原文地址:https://www.cnblogs.com/thinksjay/p/10774819.html
Copyright © 2011-2022 走看看