Identity Server 3 Access Token Validation 端点因受众验证失败而失败

Posted

技术标签:

【中文标题】Identity Server 3 Access Token Validation 端点因受众验证失败而失败【英文标题】:Identity Server 3 Access Token Validation endpoint fails with Audience Validation Failed 【发布时间】:2015-11-24 19:13:39 【问题描述】:

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

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

我传递了以下参数;

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

然后这会为我打开一个网络视图,我输入我的凭据,它会返回 redirect_uri,并在 URL 上附加了 #id_token

为了验证令牌,我将它传递给我的 IdentityServer 的访问令牌验证端点 (/core/connect/accesstokenvalidation)。我追加?token=&lt;access token received from login&gt;

然后我得到响应

 "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 应该验证它是有效的吗?

【问题讨论】:

你找到解决方案了吗? 是的,请看下面的答案 【参考方案1】:

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

response_type=id_token

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

response_type=id_token token

【讨论】:

以上是关于Identity Server 3 Access Token Validation 端点因受众验证失败而失败的主要内容,如果未能解决你的问题,请参考以下文章

Identity Server 4 没有为 `.well-known/openid-configuration` 设置`Access-Control-Allow-Origin`

Identity Server 3 没有保留身份验证 cookie

为 Access 中的链接表选择 @@Identity 返回 0

在 Access 中选择 @@IDENTITY 总是返回 0

Identity Server 3 - 客户端应用程序未知或未经授权

Microsoft Access 中的 Scope_Identity()