我设置了一个 Identity Server 4 服务器。在身份服务器 3 中,我们有可用的端点,因此我们可以执行以下操作:
POST /connect/accesstokenvalidation
token=<token>
我认为它在身份服务器 4 上是相同的,但我得到了 404 NOT FOUND
。然后我输入:http://my-endpoint.com/.well-known/openid-configuration
并且端点不存在。
我是否应该设置一些东西以使其在身份服务器 4 上可用?
最佳答案
POST /connect/introspect
Authorization: Basic xxxyyy
token=<token>
要自动授权,请使用 HTTP 基本授权流程:结合 <scope>:<scope_secret>
配对并将其转换为 Base64 编码的字符串(上例中的 xxxyyy
)。 scope_secret
可以在 ApiResource 定义中指定值:
new ApiResource("myapi, "My API")
{
Scopes = {new Scope("post-myapi")},
ApiSecrets = new List<Secret> {new Secret("any_string_you_like".Sha256())},
}
然后,上面的 POST 请求应该返回类似于以下的响应:
{
"nbf": 1491850954,
"exp": 1491854554,
"iss": "api-auth",
"aud": [
"api-auth/resources",
"myapi"
],
"client_id": "foo",
"scope": "post-myapi",
"active": true
}
完整请求(从 Postman 复制):
POST /connect/introspect HTTP/1.1
Host: localhost:6000
Authorization: Basic YXBpLWlzc3VlczpzY29wZVNlY3JldA==
Content-Type: application/x-www-form-urlencoded
token=.......
关于c# - IdSrv4 - 访问 token 验证器端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43322826/