验证用于登录的 OAuth 2 访问令牌

Validate OAuth 2 Access Token for Login

当请求返回到我的站点时,Browser Based OAuth 之后, https://oauth2client.com/cb#token=ACCESS_TOKEN,我如何验证访问令牌是真实的才能让他们进入应用程序?

Web 应用程序服务器是否向 oauth2server 发出请求以证明用户没有伪造访问令牌?

是否使用 System.IdentityModel.Services.WSFederationAuthenticationModule 请求获取用户声明?我只需要知道用户的声明是真实的,不需要从OAuth服务器访问资源。

隐式授权 OAuth 流程通常由 HTML5/JS 单页应用程序使用,这些应用程序使用通过片段接收的访问令牌直接 AJAX 调用 WebAPIs .

JavaScript 应用程序不需要验证令牌 - 它调用的 WebAPI 必须。 WebAPI(如果是.net写的)可以使用JWT Token Handler, or the new OWIN framework (a sample is here: https://github.com/AzureADSamples/SinglePageApp-DotNet).

如果您的 WebAPI 技术没有可用的 JWT 令牌处理程序并且您需要手动连接处理,请确保验证:

  1. 令牌的受众(令牌已为您​​API发行)
  2. 令牌的颁发者(令牌已由资源的可信机构颁发)
  3. 令牌签名(令牌确实已由发行者签名 - 使用发行者发布的令牌签名密钥的 public 密钥进行验证)
  4. 令牌尚未过期
  5. OAuth 范围 (scp)
  6. 然后验证您授权所依据的其他声明