如何将Google OAuth 2令牌传递给Azure API身份验证?

时间:2016-06-02 02:35:49

标签: azure oauth-2.0 google-authentication google-oauth2

我按照此处的步骤将Google OAuth连接到Azure身份验证。不幸的是,这些说明完全没有完整的解决方案,并且一旦您拥有Google OAuth access_token,就不要提及该怎么做了。我尝试将其作为承载令牌(Bearer <access_token>)放入Authorization标头中,但这似乎不起作用,因为我位于授权服务后面的应用程序只看到原始的Authorization标头,而不是预期的{{ 1}},X-MS-CLIENT-PRINCIPAL-NAMEX-MS-CLIENT-PRINCIPAL-ID

此外,当我使用授权承载令牌导航到X-MS-TOKEN-GOOGLE-ACCESS-TOKEN时,我得到401响应。

可悲的是,所有文档都是特定于AD(它似乎不适用于我的场景),或者特定于服务器端呈现的应用程序,而不是与API分开托管的SPA。呼叫。

理想的答案会告诉我,我需要对Google OAuth 2 /.auth/me做些什么来获取Azure授权服务来验证令牌并添加预期的标头。

编辑:access_token不是JWT令牌,这可能是问题的一部分。如果这实际上是问题,我只需要获得JWT令牌,那我该怎么做?我目前正在使用Google Client API JavaScript(测试版)。我尝试通过Google OAuth 2信息中心获取JWT令牌,但将其作为持票人令牌也无法正常工作,尽管使用我的应用程序的客户端密钥来生成请求。

1 个答案:

答案 0 :(得分:0)

您可以将JSON正文中的access_token传递给“/.auth/login/google”,密钥为“access_token”。

如以下链接所述: https://azure.microsoft.com/en-us/blog/announcing-app-service-authentication-authorization/

以上链接的摘录:

“或者,客户端可以使用提供程序SDK获取令牌并将其交换为会话令牌。只需使用”access_token“键下的JSON正文中的提供者令牌向同一端点提交HTTP POST(或” authenticationToken“for Microsoft Account”。如果平台上有提供程序SDK,这是移动应用程序的首选解决方案,它也适用于许多Web和API应用程序。“