OAuth 2.0为令牌端点定义了标准授权类型,例如password,authorization_code和refresh_token.扩展授权是一种添加对非标准令牌颁发方案(如令牌转换,委派或自定义凭据)的支持的方法. 您可以通过实现IExtensionGrantValidator接口添加对其他授权类型的支持: public interface IExtensionGrantValidator { /// <summary> /// Handles the custom grant requ…
为IdentityServer中的配置和操作数据扩展点提供了基于EntityFramework的实现.EntityFramework的使用允许任何EF支持的数据库与此库一起使用. 这个库的仓库位于这里,NuGet包就在这里. 此库提供的功能分为两个主要区域:配置存储和操作存储支持.根据托管应用程序的需要,这两个不同的区域可以独立使用或一起使用. 62.1 配置存储支持客户端,资源和CORS设置 如果希望从EF支持的数据库加载客户端,标识资源,API资源或CORS数据(而不是使用内存配置),则可以…
授权类型是指定客户端如何与IdentityServer交互的方式.OpenID Connect和OAuth2.0规范定义了以下授权类型: Implicit Authorization code Hybrid Client credentials Resource owner password Device flow Refresh tokens Extension grants 你可以在Client的配置中用AllowedGrantTypes 来指定授权类型. 一个客户端可以指定不止一种授权类型…
可以在*https://baseaddress/.well-known/openid-configuration*找到发现文档.它包含有关IdentityServer的端点,密钥材料和功能的信息. 默认情况下,所有信息都包含在发现文档中,但通过使用配置选项,您可以隐藏各个部分,例如: services.AddIdentityServer(options => { options.Discovery.ShowIdentityScopes = false; options.Discovery.Sho…
第38章 刷新令牌 由于访问令牌的生命周期有限,因此刷新令牌允许在没有用户交互的情况下请求新的访问令牌. 以下流程支持刷新令牌:授权代码,混合和资源所有者密码凭据流.需要明确授权客户端通过设置AllowOfflineAccess来请求刷新令牌true. 38.1 其他客户端设置 AbsoluteRefreshTokenLifetime 刷新令牌的最长生命周期(秒).默认为2592000秒/ 30天.零允许刷新令牌,当仅在SlidingRefreshTokenLifetime传递后使用时过期.Re…
IdentityServer 默认以JWT(JSON Web令牌)格式发出访问令牌. 今天的每个相关平台都支持验证JWT令牌,这里可以找到一个很好的JWT库列表.热门库例如: ASP.NET Core的JWT bearer authentication handler Katana的JWT bearer authentication middleware Katana的IdentityServer authentication middleware NodeJS的jsonwebtoken 保护基…
客户端表示可以从您的身份服务器请求令牌的应用程序. 详细信息各不相同,但您通常会为客户端定义以下常用设置: 唯一的客户ID 如果需要的秘密 允许与令牌服务的交互(称为授权类型) 身份和/或访问令牌发送到的网络位置(称为重定向URI) 允许客户端访问的范围列表(也称为资源) 注意 在运行时,通过实现来检索客户端IClientStore.这允许从任意数据源(如配置文件或数据库)加载它们.对于本文档,我们将使用客户端存储的内存版本.您可以通过ConfigureServices的AddInMemoryC…
IssuerUri 设置将在发现文档和已颁发的JWT令牌中显示的颁发者名称.建议不要设置此属性,该属性从客户端使用的主机名中推断颁发者名称. PublicOrigin 此服务器实例的来源,例如https://myorigin.com.如果未设置,则从请求推断出原始名称. 61.1 端点(Endpoints) 允许启用/禁用各个端点,例如令牌,授权,用户信息等. 默认情况下,所有端点都已启用,但您可以通过禁用不需要的端点来锁定服务器. 61.2 发现(Discovery) 允许启用/禁用发现文档的…
IdentityServer通常在创建令牌或处理对userinfo或内省端点的请求时需要有关用户的身份信息.默认情况下,IdentityServer仅具有身份验证cookie中的声明,以便为此身份数据进行绘制. 将用户所需的所有可能声明放入cookie中是不切实际的,因此IdentityServer定义了一个可扩展点,允许根据用户需要动态加载声明.这个可扩展点是IProfileService开发人员通常可以实现此接口来访问包含用户身份数据的自定义数据库或API. 58.1 IProfileSer…
此类建模API资源. Enabled 指示此资源是否已启用且可以请求.默认为true. Name API的唯一名称.此值用于内省身份验证,并将添加到传出访问令牌的受众. DisplayName 该值可以在例如同意屏幕上使用. Description 该值可以在例如同意屏幕上使用. ApiSecrets API密钥用于内省端点.API可以使用API​​名称和密钥进行内省验证. UserClaims 应包含在访问令牌中的关联用户声明类型的列表. Scopes API必须至少有一个范围.每个范围可以有…