使用Google的Azure Function v2 google身份验证

时间:2019-06-24 05:08:28

标签: azure azure-active-directory postman azure-functions azure-authentication

我有一个 Azure Function应用,可以通过google登录(我现在只需要google),但是我无法正确进行身份验证

gooogle configured and log in with google on

审判1:

  1. 我向我的api发出了获取请求:https://examplefunctions.azurewebsites.net/
  2. 弹出Google身份验证
  3. 输入我的凭据
  4. 然后我向https://examplefunctions.azurewebsites.net/.auth/me发送请求
  5. 我得到一个带有 access_token id_token 以及其他属性(如user_claims等)的json
  6. 然后我去邮递员
  7. 向具有 AuthorizationLevel.Anonymous 的函数发出获取请求:https://examplefunctions.azurewebsites.net/api/myfunction
  8. 在OAuth 2.0自动授权中输入 access_token
  9. 服务器返回401:您无权查看此目录或页面。
  10. 然后用邮递员的自动化标签中的 id_token 信息替换 access_token ,服务器将返回该信息。

之后,请执行以下操作:

审判2:

  1. 在浏览器中转到https://examplefunctions.azurewebsites.net/.auth/login/google
  2. 弹出Google身份验证
  3. 输入我的凭据
  4. 服务器重定向到具有此属性 authenticationToken
  5. 的网址
  6. 我在邮递员的OAuth2.0中输入此authenticationToken并返回相同的401:您无权查看此目录或页面。

然后我执行此操作并进行身份验证:

审判3:

  1. 在浏览器中转到https://examplefunctions.azurewebsites.net/.auth/login/google
  2. 弹出Google身份验证
  3. 输入我的凭据
  4. 服务器重定向到具有此属性 authenticationToken
  5. 的网址
  6. 在邮递员的标头中,我将 X-ZUMO-AUTH 的值预先接收在 authenticationToken 中,并通过预期的json确认服务器状态为OK(确定) 。

但是在这里,审判3(唯一可行的审判)中的问题我没有收到要求。 ->在这里我得到一个空var claims = req.HttpContext.User.Claims;

我需要用户google信息。另一件事是我不想使用X-ZUMO-AUTH之类的标头登录,我想使用OAuth 2.0标准。

我不知道为什么无法使用试用版1和2访问,因为服务器在我登录后向我返回了一个令牌,该令牌似乎无用。

一个星期以来,我一直在努力进行良好的Google身份验证,但我不能,我需要您的帮助。

注意:我将以有角度的,邮递员,xamarin或什至是颤抖的方式使用此api

2 个答案:

答案 0 :(得分:0)

上周出现了回归。修复程序已部署。客户将在站点重新启动后采取新的行为(因此,如果这不是自然发生的,则可能需要重新启动他们的站点)。

答案 1 :(得分:0)

我找到了解决方案!!!

问题是我只使用了azure函数自动化,但是要获得azure中的最佳实践自动化,您需要使用Azure函数来说服Azure B2C Active Directory租户

我遵循了thouse教程:

在这里您将学习如何配置租户
https://youtu.be/a1s6LMXi7Xk

在此基础上,您已完成Azure Functions身份验证 https://blogs.msdn.microsoft.com/hmahrt/2017/03/07/azure-active-directory-b2c-and-azure-functions/

现在,每个登录我的应用程序的用户都已在B2C租户中注册,我可以了解谁在使用我的应用程序以及何时登录等详细信息