Url:
/.well-known/openid-configuration
字段 | 说明 | 示例 |
---|---|---|
issuer | 发行网址,也就是说我们的权限验证站点 | https://demo.identityserver.io |
jwks_uri | 这个接口获取的是公钥,用于验证jwt的数字签名部分(数字签名由sso维护的私钥生成)用的 | https://demo.identityserver.io/.well-known/openid-configuration/jwks |
authorization_endpoint | 授权服务器的授权端点的URL | https://demo.identityserver.io/connect/authorize |
token_endpoint | 获取token的网址 | https://demo.identityserver.io/connect/token |
userinfo_endpoint | 根据token获取用户信息 | https://demo.identityserver.io/connect/userinfo |
end_session_endpoint | 登录注销 | https://demo.identityserver.io/connect/endsession |
check_session_iframe | 客户端对check_session_iframe执行监视,可以获取用户的登出状态 | https://demo.identityserver.io/connect/checksession |
revocation_endpoint | 这个网址允许撤销访问令牌(仅access tokens 和reference tokens)。它实现了令牌撤销规范(RFC 7009) | https://demo.identityserver.io/connect/revocation |
introspection_endpoint | introspection_endpoint是RFC 7662的实现。 它可以用于验证reference tokens(或如果消费者不支持适当的JWT或加密库,则JWTs)。 | https://demo.identityserver.io/connect/introspect |
device_authorization_endpoint | 设备授权网址 | https://demo.identityserver.io/connect/deviceauthorization |
frontchannel_logout_supported | 可选。基于前端的注销机制 | true |
frontchannel_logout_session_supported | 可选。基于session的注销机制 | true |
backchannel_logout_supported | 指示OP支持后端通道注销 | true |
backchannel_logout_session_supported | 可选的。指定RP是否需要在注销令牌中包含sid(session ID)声明,以在使用backchannel_logout_uri时用OP标识RP会话。如果省略,默认值为false | true |
scopes_supported | 支持的范围 | [“openid”, “profile”, “email”, “api”, “api.scope1”, “api.scope2”, “scope2”, “policyserver.runtime”, “policyserver.management”, “offline_access”] |
claims_supported | 支持的claims | [“sub”, “name”, “family_name”, “given_name”, “middle_name”, “nickname”, “preferred_username”, “profile”, “picture”, “website”, “gender”, “birthdate”, “zoneinfo”, “locale”, “updated_at”, “email”, “email_verified”] |
grant_types_supported | 授权类型 | [“authorization_code”, “client_credentials”, “refresh_token”, “implicit”, “password”, “urn:ietf:params:oauth:grant-type:device_code”] |
response_modes_supported | 支持的响应模式 | [“form_post”, “query”, “fragment”] |
token_endpoint_auth_methods_supported | token端点支持的身份验证方式 | [“client_secret_basic”, “client_secret_post”] |
id_token_signing_alg_values_supported | 支持id token 里alg签名的值 | [“RS256”] |
subject_types_supported | [“public”] | |
code_challenge_methods_supported | 支持的代码质询方法 | [“plain”, “S256”] |
request_parameter_supported | 支持的请求参数 | true |
获取token
请求类型: post
地址 /connect/token
头部请求标签 CONTENT-TYPE application/x-www-form-urlencoded
请求数据(Body)
参数 | 说明 |
---|---|
client_id | 客户标识符(必填) |
client_secret | 客户端机密,可以在帖子正文中,也可以作为基本身份验证标头使用 |
grant_type | 授权类型 : 授权码: authorization_code 客户端:client_credentials 用户密码: password 刷新令牌: refresh_token 补助类型: urn:ietf:params:oauth:grant-type:device_code |
scope | 一个或多个注册范围。如果未指定,将为所有明确允许的作用域发出令牌 |
redirect_uri | grant_type 为 authorization_code时必填 |
code | 授权码。 grant_type 为 authorization_code时必填 |
code_verifier | PKCE证明密钥 |
username | 登入名 。grant_type 为 password时必填 |
password | 登入密码。grant_type 为 password时必填 |
acr_values | 允许传递有关password授权类型的其他与身份验证相关的信息-特殊情况下,identityserver使用以下专有acr_values:idp:name_of_idp 绕过登录/家庭领域屏幕,并将用户直接转发到选定的身份提供者(如果每个客户端配置允许)tenant:name_of_tenant 可用于将租户名称传递给令牌端点 |
refresh_token | 刷新令牌。grant_type 为 refresh_token时必填 |
device_code | 设备代码。 grant_type 为 urn:ietf:params:oauth:grant-type:device_code时必填 |
解析token获取token中用户的信息
请求类型: GET
地址 /connect/userinfo
头部请求标签 Authorization: Basic xxxyyy
用来验证授权的有效性
请求类型: POST
地址 /connect/introspect
头部请求标签 Authorization: Bearer <access_token>
请求数据(Body)
参数 | 说明 |
---|---|
token | 必填 |
返回响应
状态码200和有效或无效的令牌示例:
{
"active": true,
"sub": "123"
}
未知或过期的令牌将被标记为无效示例:
{
"active": false,
}
无效的请求将返回400,即未授权的请求401。
https://blog.csdn.net/weixin_30536513/article/details/96440353
https://identityserver4.readthedocs.io/en/latest/endpoints/discovery.html