使用 GSuite Open ID Connect 访问扩展的用户信息
Access extended user information using GSuite Open ID Connect
我正在集成我们公司的一些内部应用程序,以使用我们的 GSuite 实例在员工登录时对他们进行身份验证,使用 GSuite 对 Open ID Connect 的支持。
但是,我们的应用程序唯一标识使用我们内部 "employee ID" 登录的用户,而不是我们的 GSuite 电子邮件地址。我在 gsuite 中看到 it is possible 到 store/manage 和 "employee ID",但是我不确定在用户成功通过身份验证后如何检索此信息。
目前,我正在从 userinfo 端点取回 "claims" 的列表,但这些声明仅包含用户的姓名和电子邮件地址。我还需要我们在 GSuite 上配置的 phone 号码和员工 ID。
是否需要请求额外的范围来开始?或者我是否需要单独请求检索额外的用户信息?
我看到有一个 Admin Directory API,但它似乎用于访问域内所有用户的信息,而我只对当前用户的扩展详细信息感兴趣。
最终,我创建了一个范围为 https://www.googleapis.com/auth/admin.directory.user.readonly
的服务帐户来调用 GET https://www.googleapis.com/admin/directory/v1/users/<current_user>
。我必须将域范围的权限委托给服务帐户,并将其设置为模拟管理员用户。
这似乎有些矫枉过正,因为我只需要 current 用户的扩展详细信息,我已经拥有 OAuth2 访问令牌。
我发现 this question 对解决问题很有帮助。
如果有人可以提供使用 OAuth2 访问令牌的答案,我将不胜感激
我正在集成我们公司的一些内部应用程序,以使用我们的 GSuite 实例在员工登录时对他们进行身份验证,使用 GSuite 对 Open ID Connect 的支持。
但是,我们的应用程序唯一标识使用我们内部 "employee ID" 登录的用户,而不是我们的 GSuite 电子邮件地址。我在 gsuite 中看到 it is possible 到 store/manage 和 "employee ID",但是我不确定在用户成功通过身份验证后如何检索此信息。
目前,我正在从 userinfo 端点取回 "claims" 的列表,但这些声明仅包含用户的姓名和电子邮件地址。我还需要我们在 GSuite 上配置的 phone 号码和员工 ID。
是否需要请求额外的范围来开始?或者我是否需要单独请求检索额外的用户信息?
我看到有一个 Admin Directory API,但它似乎用于访问域内所有用户的信息,而我只对当前用户的扩展详细信息感兴趣。
最终,我创建了一个范围为 https://www.googleapis.com/auth/admin.directory.user.readonly
的服务帐户来调用 GET https://www.googleapis.com/admin/directory/v1/users/<current_user>
。我必须将域范围的权限委托给服务帐户,并将其设置为模拟管理员用户。
这似乎有些矫枉过正,因为我只需要 current 用户的扩展详细信息,我已经拥有 OAuth2 访问令牌。
我发现 this question 对解决问题很有帮助。
如果有人可以提供使用 OAuth2 访问令牌的答案,我将不胜感激