客户端表示可以从您的身份服务器请求令牌的应用程序. 详细信息各不相同,但您通常会为客户端定义以下常用设置: 唯一的客户ID 如果需要的秘密 允许与令牌服务的交互(称为授权类型) 身份和/或访问令牌发送到的网络位置(称为重定向URI) 允许客户端访问的范围列表(也称为资源) 注意 在运行时,通过实现来检索客户端IClientStore.这允许从任意数据源(如配置文件或数据库)加载它们.对于本文档,我们将使用客户端存储的内存版本.您可以通过ConfigureServices的AddInMemoryC…
Defining Clients 定义客户端 客户端表示哪些可以从你的IdentityServer拿到token的应用. 除了一些可能会变化的细节之外,通常情况下你需要为一个客户端定义如下通用的设置: 一个唯一的client id 一个secret(如果需要的话) 被允许与token service的交互(也叫做授权类型,grant type) 一个网络位置,其中标识和/或访问令牌被发送到(称为重定向URI)的地方 客户端被允许访问的范围(即资源)列表 在运行时,定义的clients(客户端列表…
SCC4  定义客户端 点击新建条目按钮  Client(客户端) R 200 Client Name(客户端名称) O   City(城市) R   Logical system(逻辑系统) R   Standard currency(标准货币) R   Client role(客户端角色) R C Customizing Changes and Transports for Client-Specific Objects(更改并传输特定集团对象) –   Cross-Client Objec…
客户端代表可以从您的身份服务器请求令牌的应用程序. 细节有所不同,但您通常为客户端定义以下常用设置: 一个唯一的客户端ID 一个密钥,如果需要 允许与令牌服务的交互(称为授权类型) 身份或访问令牌被发送到的网络位置(称为重定向URI) 允许客户端访问的范围列表(资源) 在运行时,客户端通过IClientStore的实现来检索. 这允许从配置文件或数据库的任意数据源加载它们. 对于本文档,我们将使用客户端存储的内存存储版本. 您可以通过AddInMemoryClients扩展方法在Configur…
您通常在系统设计中的第一件事就是您要保护的资源. 这可能是您的用户的身份信息,如个人资料数据或电子邮件地址,或访问API. 您可以使用C#对象模型定义资源(硬编码),或从数据存储中加载它们. IResourceStore的实现处理这些低级细节. 本文使用的是in-memory的实现. 定义身份资源 身份资源也是数据,如用户ID,姓名或用户的电子邮件地址. 身份资源具有唯一的名称,您可以为其分配任意身份信息单元(比如姓名.性别.身份证号和有效期等都是身份证的身份信息单元)类型. 这些身份信息单元将…
启动 IdentityServer的启动是中间件和服务的组合来实现的. 所有配置都在你的启动类(Startup.cs)中完成. 配置服务 通过以下方式调用将IdentityServer服务添加到DI系统: public void ConfigureServices(IServiceCollection services) { var builder = services.AddIdentityServer(); } 这将返回一个生成器对象,而这个对象又有一些方便的方法来连接其他的服务. 密钥 A…
为了使IdentityServer代表用户发布令牌,该用户必须登录到IdentityServer. Cookie认证 使用来自ASP.NET Core的cookie身份验证处理程序管理的cookie跟踪身份验证. IdentityServer注册两个cookie处理程序(一个用于身份验证会话,另一个用于临时的外部cookie). 这些在默认情况下使用,如果您想手动引用它们,您可以从IdentityServerConstants类(DefaultCookieAuthenticationScheme…
ASP.NET Core有一个灵活的方式来处理外部认证. 这包括几个步骤. 如果您使用的是ASP.NET Identity,则许多底层技术细节对您而言都是隐藏的. 建议您还阅读Microsoft文档并查看ASP.NET Identity快速入门源码. 添加外部认证处理程序 与外部提供者交互所需的协议实现被封装在一个认证处理程序中. 一些提供者使用专有协议(例如Facebook等社交提供者),一些使用标准协议, OpenID Connect,WS-Federation或SAML2p. 请参阅此快速…
注销IdentityServer与删除身份cookie一样简单,但是我们必须考虑将用户从客户端应用程序(甚至可能是上游身份提供程序)中注销. 一.删除身份认证Cookie 要删除身证认证cookie,只需在HttpContext的扩展方法SignOutAsync即可.你需要传递一个值IdentityServerConstants.DefaultCookieAuthenticationScheme ,如果你修改了他,那么使用你自定义的值. await HttpContext.SignOutAsyn…
在支持的平台上,您可以让IdentityServer使用Windows身份验证(例如,对Active Directory)对用户进行身份验证. 当您使用以下身份托管IdentityServer时,当前Windows身份验证可用: 使用Kestrel在使用IIS和IIS集成包的Windows上 使用HTTP.sys服务器在Windows上 在这两种情况下,通过使用方案"Windows"在HttpContext上使用ChallengeAsync API来触发Windows身份验证. 我们的…