使用Google身份验证的App Service - 列出用户

时间:2017-01-10 09:00:31

标签: azure azure-web-sites

我的网站作为App Service部署到Azure。它使用Azure的Google身份验证提供程序设置了Google身份验证。

是否可以列出通过Google帐户访问我网站的用户(至少是姓名和电子邮件地址)?

1 个答案:

答案 0 :(得分:1)

您可以获取有关在登录时登录Web应用程序的用户的信息。但是,App Service不会以可以查询所有用户的方式自动存储此信息。您可以通过以后查询的方式存储用户信息。如果您正在尝试弄清楚如何获取每个用户的信息,请参阅下文。

一种选择是使用x-ms-client-principal-name请求标头获取登录用户的显示名称。如果您想了解更多信息,可以获得一组"声明"对于登录用户。有几种方法可以做到这一点:

  1. 如果您正在使用ASP.NET(完整框架),则可以使用ClaimsPrincipal.Current静态属性来获取有关当前用户的信息。特别是,Claims属性将包含几个不同的属性。
  2. 无论您使用何种语言/框架,都可以向Web应用程序的/.auth/me端点发出HTTP请求,以获取App Service自动捕获的有关已登录用户的信息。这通常与#1的信息相同。此HTTP调用需要使用与访问站点相同的机制进行身份验证。
  3. Google有一组API,您可以调用这些API来获取有关用户的详细信息。要访问这些API,您需要一个访问令牌,您可以从x-ms-token-google-access-token HTTP请求标头中获取该令牌。
  4. 在所有情况下,您需要确保在门户网站中配置Google身份验证时启用了正确的范围。这最终控制了您的应用程序可用的信息。当用户首次登录时,系统会要求他们同意授予您的应用访问此信息的权限。一旦同意,您每次登录时都可以访问最新信息。