验证用于登录的 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 令牌处理程序并且您需要手动连接处理,请确保验证:
- 令牌的受众(令牌已为您API发行)
- 令牌的颁发者(令牌已由资源的可信机构颁发)
- 令牌签名(令牌确实已由发行者签名 - 使用发行者发布的令牌签名密钥的 public 密钥进行验证)
- 令牌尚未过期
- OAuth 范围 (scp)
- 然后验证您授权所依据的其他声明
当请求返回到我的站点时,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 令牌处理程序并且您需要手动连接处理,请确保验证:
- 令牌的受众(令牌已为您API发行)
- 令牌的颁发者(令牌已由资源的可信机构颁发)
- 令牌签名(令牌确实已由发行者签名 - 使用发行者发布的令牌签名密钥的 public 密钥进行验证)
- 令牌尚未过期
- OAuth 范围 (scp)
- 然后验证您授权所依据的其他声明