0

有没有一种方法可以在不使用身份验证服务器的情况下在活动目录中验证Microsoft或Google OAuth令牌?使用OAuth 2.0令牌和Azure Active Directory进行Web API身份验证(无身份验证服务器)

下面是这种情况:

  • 的客户端应用程序会从一些外部服务的微软的access_token。

  • 客户端应用程序将作出一些受保护的Web API,并通过与请求头

  • ACCESS_TOKEN沿着如果客户端传递的是的access_token那么有效API将提供响应客户端的调用。

有没有办法在API端验证access_token?

我了解OAuth 2.0正常的理解是,需要有到客户端和API会跟如下图所示图中的认证服务器:

enter image description here

但如果提供的令牌通过一些外部服务,我们可以使用它来验证我们的Web API。有什么方法可以实现这种认证吗?

+0

在您显示的图中,外部授权服务器由Microsoft拥有并运行。你想从图片中删除?你认为你需要拥有并运行auth服务器有什么困难吗? –

+0

Hi @ShawnTabrizi,我的要求不是上面的图片显示。我想知道,如果我向调用Web API的请求传递Microsoft OAuth 2.0令牌,是否有方法验证该令牌,而不考虑该令牌创建的来源,而不使用如图所示的验证服务? – Diwas

+2

验证令牌时,只需检查令牌是否由Microsoft签署,方法是查看MS公开的公钥,并将其与令牌上的签名进行比较。只要你可以查询签名密钥,你应该能够在任何地方验证令牌......也许我误解了。 –

回答

1

您可以了解更多有关AAD签名密钥和操作键同时按下使用此页:Signing key rollover in Azure Active Directory

令牌的验证,一旦你的签名密钥,可以使用现有的库,例如OWIN完成。你也可以尝试按照这样的说明(虽然看起来文件还没有100%完整):Manually validating a JWT access token in a web API

This library也可用,但我认为OWIN应该已经取代了一般。

还检出this blog post,这有一个相当深入的标记验证深入。

相关问题