google-oauth - 使用 GSuite Open ID Connect 访问扩展的用户信息
问题描述
我正在集成我们公司的一些内部应用程序,以使用我们的 GSuite 实例在员工登录时对其进行身份验证,并使用 GSuite 对 Open ID Connect 的支持。
但是,我们的应用程序使用我们的内部“员工 ID”而不是我们的 GSuite 电子邮件地址来唯一标识用户登录。我看到可以在 gsuite 中存储/管理“员工 ID”,但是我不确定在用户成功通过身份验证后如何检索此信息。
目前,我正在从 userinfo 端点取回“声明”列表,但这些声明仅包括用户的姓名和电子邮件地址。我还需要我们在 GSuite 上配置的电话号码和员工 ID。
是否需要从其他范围开始?或者我是否需要单独请求检索其他用户信息?
我看到有一个管理目录 API,但它似乎用于访问域内所有用户的信息,而我只对 CURRENT 用户的扩展详细信息感兴趣。
解决方案
最终,我创建了一个服务帐户,其范围https://www.googleapis.com/auth/admin.directory.user.readonly
可以调用 GET https://www.googleapis.com/admin/directory/v1/users/<current_user>
。我必须将域范围的权限委派给服务帐户,并将其设置为模拟管理员用户。
这似乎有点矫枉过正,因为我只需要当前用户的扩展详细信息,我已经有一个 OAuth2 访问令牌。
我发现这个问题对解决问题很有帮助。
如果有人可以提供使用 OAuth2 访问令牌的答案,我仍然会很感激
推荐阅读
- vue.js - 如果行输入大于0,则将数据表行信息拉入模态
- c# - Xamarin iOS - 基于配置文件的代码
- css - 如何在 display:none 和 display:block 之间转换?
- google-slides-api - 使用 Google Slides API 重新着色图像
- sql - 以错误的顺序加入表格
- android - Android Studio 无法解析导入
- python - 如何在 Python 中启用锁定以控制哪些线程能够写入我的日志文件和我的屏幕?
- c# - 有没有办法使用 OpenXml 从列中获取最后填充的行单元格值
- spring-boot - 如何摆脱无限递归
- java - 当用户在 Java8 中输入错误的日期格式时如何给出错误消息