IdSrv4 - 访问令牌验证器EndPoint

时间:2017-04-10 12:11:51

标签: c# asp.net-core identityserver4

我设置了一台Identity Server 4服务器。在身份服务器3中,我们可以使用端点,因此我们可以执行以下操作:

POST /connect/accesstokenvalidation

token=<token>

我认为它在身份服务器4上是相同的,但我得到了404 NOT FOUND。然后我进入:http://my-endpoint.com/.well-known/openid-configuration并且端点不存在。

我应该在身份服务器4上设置一些东西吗?

1 个答案:

答案 0 :(得分:3)

Introspection Endpoint

POST /connect/introspect
Authorization: Basic xxxyyy

token=<token>

要自动调整,请使用HTTP基本授权流程:组合<scope>:<scope_secret>对并将其转换为Base64编码的字符串(上例中为xxxyyy)。可以在ApiResource定义中指定scope_secret值:

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=.......