Identity Server 3 访问令牌验证端点因受众验证失败而失败

Identity Server 3 Access Token Validation endpoint fails with Audience Validation Failed

我设置了一个 IdentityServer3 实例,我正在使用授权端点 (/core/connect/authorize) 请求令牌。

我请求令牌的应用程序是一个 iOS 应用程序。

我传递了以下参数;

client_id=<clientid>
response_type=id_token
scope=openid
redirect_uri=<redirecturi>
state=<state>
nonce=<nonce>

然后这会为我打开一个 Web 视图,我输入我的凭据,它 returns redirect_uri #id_token 附加到 url。

为了验证令牌,我将其传递到我的 IdentityServer 的访问令牌验证端点 (/core/connect/accesstokenvalidation)。我附加 ?token=<access token received from login>.

然后我得到回复

{ "Message": "invalid_token" }

当我查看日志时

System.IdentityModel.Tokens.SecurityTokenInvalidAudienceException: IDX10214: Audience validation failed. Audience: '<clientid>'. Did not match: validationParamters.ValidAudience: '<identity_server_host>/resources' or validationParameters.ValidAudiences: 'null'

我在这里做错了什么?创建令牌的 IdentityServer 是否应该验证它是否有效?

您没有在示例中请求访问令牌。 有

response_type=id_token

您只能获得可以根据身份令牌端点进行验证的身份令牌。 要通过您的请求获取访问令牌,您必须将您的请求更改为

response_type=id_token token