编程语言
首页 > 编程语言> > javascript-在标头中传递openid-connect oauth2承载令牌

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