使用OAuth 2.0,OpenID Connect和声明时,声明类型和protocoal值有很多"魔术字符串".IdentityModel提供了几个常量字符串类来帮助它. 10.1 OAuth 2.0和OpenID Connect协议值 本OidcConstants类有补助的类型,参数名称,错误名称等所有的值 10.2 JWT声明类型 本JwtClaimTypes类在OpenID Connect,JWT和OAuth 2.0规范中的所有标准要求的类型-其中许多人也都聚集在IANA. g…
OAuth 2.0资源所有者密码授权允许客户端向令牌服务发送用户名和密码,并获取代表该用户的访问令牌. 除了无法承载浏览器的旧应用程序之外,规范通常建议不要使用资源所有者密码授予.一般来说,当您要对用户进行身份验证并请求访问令牌时,使用其中一个交互式OpenID Connect流程通常要好得多. 然而,这个授权类型允许我们在 IdentityServer 快速入门中引入 用户 的概念,这是我们要展示它的原因. 10.1 添加用户 就像基于内存存储的资源(即 范围 Scopes)和客户端一样,对于…
该RequestUrl类可用于构造URL发送到OpenID Connect EndSession endpoint. 该CreateEndSessionUrl扩展方法支持最常用的参数: /// <summary> /// Creates a end_session URL. /// </summary> /// <param name="request">The request.</param> /// <param name=&q…
第65章 博客帖子 65.1 团队帖子 65.1.1 2019 IdentityServer中的范围和声明设计 尝试使用IdentityServer4的设备流程 OAuth2中隐含流的状态 另一种保护SPA的方法(使用ASP.NET Core,OpenID Connect,OAuth 2.0和ProxyKit ASP.NET核心中的自动OAuth 2.0令牌管理 加密IdentityServer4中的身份令牌 65.1.2 2018 IdentityServer4更新 IdentityServe…
本快速入门将展示如何构建基于浏览器的JavaScript客户端应用程序(有时称为" SPA "). 用户将登录IdentityServer,使用IdentityServer发出的访问令牌调用We​​b API,并注销IdentityServer.所有这些都将来自浏览器中运行的JavaScript. 14.1 JavaScript客户端的新项目 为JavaScript应用程序创建一个新项目.它可以只是一个空的Web项目,一个空的ASP.NET Core应用程序,或者像Node.js应用程…
OpenID Connect发现端点的客户端库作为httpclient的扩展方法提供.该GetDiscoveryDocumentAsync方法返回一个DiscoveryResponse对象,该对象具有发现文档的各种元素的强类型和弱类型访问器. 在访问文档内容之前,应始终检查IsError和Error属性. 例: var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync("https://de…
OAuth 2.0设备流设备授权的客户端库是作为HttpClient扩展方法提供的. 以下代码发送设备授权请求: var client = new HttpClient(); var response = await client.RequestDeviceAuthorizationAsync(new DeviceAuthorizationRequest { Address = "https://demo.identityserver.io/connect/device_authorize&qu…
OpenID Connect动态客户端注册的客户端库是作为HttpClient扩展方法提供的. 以下代码发送注册请求: var client = new HttpClient(); var response = await client.RegisterClientAsync(new DynamicClientRegistrationRequest { Address = Endpoint, RegistrationRequest = new RegistrationRequest { Redi…
OAuth 2.0令牌撤销的客户端库是作为扩展方法提供的HttpClient. 以下代码撤消撤销端点处的访问令牌令牌: var client = new HttpClient(); var result = await client.RevokeTokenAsync(new TokenRevocationRequest { Address = "https://demo.identityserver.io/connect/revocation", ClientId = "cl…
OpenID Connect UserInfo端点的客户端库是作为扩展HttpClient方法提供的. 以下代码将访问令牌发送到UserInfo端点: var client = new HttpClient(); var response = await client.GetUserInfoAsync(new UserInfoRequest { Address = disco.UserInfoEndpoint, Token = token }); 响应属于UserInfoResponse类型并具…