IdentityServer4-端点

Posted zd1994

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IdentityServer4-端点相关的知识,希望对你有一定的参考价值。

一、发现端点

二、授权端点

三、令牌端点

四、UserInfo端点

五、Introspection端点

六、撤销端点

七、结束会话端点

一、发现端点

发现端点可用于检索有关IdentityServer的元数据 - 它返回诸如颁发者名称,密钥材料,支持的范围等信息。 

发现端点可通过/.well-known/openid-configuration相对于基地址获得,例如:

https://demo.identityserver.io/.well-known/openid-configuration

IdentityModel

您可以使用IdentityModel库以编程方式访问发现端点:

var discoveryClient = new DiscoveryClient("https://demo.identityserver.io");
var doc = await discoveryClient.GetAsync();

var tokenEndpoint = doc.TokenEndpoint;
var keys = doc.KeySet.Keys;

出于安全原因,DiscoveryClient具有可配置的验证策略,默认情况下会检查以下规则:

  • HTTPS必须用于发现端点和所有协议端点
  • 发布者名称应该与下载文档时指定的权限相匹配(这实际上是发现规范中必须的)
  • 协议端点应该位于权限之下——而不是在不同的服务器或URL上(这对于多租户操作来说可能特别有趣)
  • 必须指定密钥集

如果由于某种原因(例如开发环境)您需要放松设置,您可以使用以下代码:

var client = new DiscoveryClient("http://dev.identityserver.internal");
client.Policy.RequireHttps = false;

var disco = await client.GetAsync();

顺便说一句 - 你总是可以通过HTTP连接到localhost和127.0.0.1(但这也是可配置的)。

 

二、授权端点

授权端点可用于通过浏览器请求令牌或授权码。 此过程通常涉及最终用户的身份验证和可选的同意。 

client_id 

客户的标识符(必填)。

scope 

一个或多个注册范围(必填)

redirect_uri 

必须与该客户端允许的重定向URI之一完全匹配(必需)

response_type 

  id_token  请求身份令牌(仅允许身份范围)

  token  请求访问令牌(仅允许资源范围)

  id_token token  请求身份令牌和访问令牌

  code 请求授权码

  code id_token  请求授权代码和身份令牌

  code id_token token  请求授权代码,身份令牌和访问令牌  

response_mode 

  form_post  将令牌响应作为表单发送而不是片段编码重定向(可选)

state 

identityserver将回显令牌响应的状态值,这是客户端和提供者之间的往返状态,关联请求和响应以及CSRF /重放保护。 (推荐的)

nonce 

identityserver将回显身份令牌中的nonce值,这是为了重放保护)

通过隐式授权对身份令牌是必需的。

prompt     

   none  请求期间不会显示任何UI。 如果无法做到这一点(例如,因为用户必须登录或同意),则会返回错误

    login  即使用户已登录并具有有效会话,也会显示登录UI

code_challenge 

发送PKCE的代码质询

code_challenge_method 

 plain plain表示使用纯文本 S256 S256表示使用SHA256进行哈希处理

login_hint 

可用于预先填写登录页面上的用户名字段

ui_locales 

提供有关登录UI所需显示语言的提示

max_age 

如果用户的登录会话超过最大时间(以秒为单位),将显示登录UI

acr_values 

允许传递额外的身份验证相关信息 - 身份服务器特殊情况下面的私有acr_values:

 idp:name_of_idp  绕过login / home领域屏幕并将用户直接转发到选定的身份提供者(如果允许每个客户端配置)

 tenant:name_of_tenant  可用于将租户名称传递给登录UI

 

三、令牌端点

 

四、UserInfo端点

 

五、Introspection端点

 

六、撤销端点

 

七、结束会话端点

 

以上是关于IdentityServer4-端点的主要内容,如果未能解决你的问题,请参考以下文章

无法使用“/connect/authorize”端点从 IdentityServer4 获取授权码

如何在 identityserver4 中没有用户名和密码的情况下从令牌端点获取令牌?

我正在使用 IdentityServer4,我正在尝试使用访问令牌访问同一服务器上的其他 API 端点,总是收到 401

令牌服务器上自定义端点的 Identity Server 4 客户端凭据

IdentityServer4如何创建身份令牌?

IdentityServer4 与 ASP.NET 身份