5

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

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

我传递以下参数;

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

然后这会为我打开一个 web 视图,我输入我的凭据并返回附加到 url 的redirect_uri#id_token

为了验证令牌,我将它传递给我的 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 应该验证它是有效的吗?

4

1 回答 1

3

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

response_type=id_token

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

response_type=id_token token
于 2015-10-04T13:54:06.167 回答