能否通过GitHub API获取组织成员关联的SAML身份邮箱?
获取GitHub组织成员的SSO关联邮箱
好消息是,你完全可以通过GitHub GraphQL API获取到组织成员关联的SSO身份邮箱!你之前的查询只能拿到用户公开邮箱,而SSO相关的信息需要调用专门的字段来获取。
这里给你一个可以直接使用的GraphQL查询示例:
query GetOrgMembersSSOEmails { organization(login: "myorg") { members(first: 100) { nodes { login name # 获取SSO身份信息 ssoIdentities { edges { node { email identityProvider { name } } } } } # 分页用的游标,如果成员超过100个需要用这个继续查询 pageInfo { endCursor hasNextPage } } } }
需要注意几个关键点:
- 权限要求:你需要拥有组织的管理员权限,或者被授予了查看成员SSO信息的权限;同时你的访问令牌需要包含
read:org的scope。 - SSO启用前提:目标组织必须已经启用了单点登录(SSO),否则
ssoIdentities字段会返回空值。 - 分页处理:如果你的组织成员超过100人,需要利用
pageInfo里的endCursor和hasNextPage来进行分页查询,每次请求first:100并带上after: "上一次的endCursor"参数。
这个查询返回的ssoIdentities.node.email就是你在组织成员SSO页面看到的关联邮箱啦。
内容的提问来源于stack exchange,提问作者danvk
相关产品推荐
相关产品推荐

