javascript-在标头中传递openid-connect oauth2承载令牌
作者:互联网
背景
我已经实现了Thinktecture.IdentityServer.V3(openID Connect之一).我已经以以下形式将OAuth2承载令牌返回给我的javascript客户端(隐式流):
{
"id_token": "eyJ0eXAiOiJKV1QiLCJh...", // JWT
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1Ni..", // JWT
"token_type": "Bearer",
"expires_in": "3600",
"scope": "openid profile read write email",
"state": "1299139105028949"
}
但在所有示例中,它们仅在调用服务时将access_token传递给资源提供者.
$.ajax({
url: 'http://localhost:2727/Account/123/Get',
headers: {
Authorization: "Bearer " + $scope.response.access_token
}
})
假设条件
如果我正确无误,则使用访问令牌进行身份验证.然后,我根据id_token中的声明进行授权(我不想进行单独的数据库调用-我希望它完全独立).
题
我如何通过ajax将这些信息传递给我的webapi2端点(假设我已经设置了CORS等),我将必须连接哪些中间件来进行验证? (我猜是令牌验证器和ClaimsManager之一,但是有太多我无法确定哪一个是合适的).
非常感谢帮助
解决方法:
id_token用于客户端-必须由客户端(或如果客户端没有必需的密码库的话,则由idsrv中的身份令牌验证端点)进行验证.之后,您可以使用访问令牌来访问资源.
标签:asp-net-web-api2,oauth-2-0,thinktecture-ident-server,javascript,openid-connect 来源: https://codeday.me/bug/20191029/1957214.html