【问题标题】:Use microsoft graph to authentication contact info to get the email使用 microsoft graph 验证联系信息以获取电子邮件
【发布时间】:2019-04-25 08:53:18
【问题描述】:

如何使用 microsoft graph 从 azure ad b2c 获取身份验证联系信息,我正在寻找电子邮件地址。

我查看了有关 Microsoft Graph API 的文档,发现除了使用 PowerShell (docs.microsoft.com/en-za/azure/active-directory/authentication/...) 之外,没有提到如何获取身份验证联系信息。

【问题讨论】:

  • 如果您搜索“如何使用 microsoft graph 从 azure ad b2c 获取身份验证联系信息”,您会发现很多入门方法。基本上,展示你的研究和minimal reproducible example
  • stackoverflow.com/q/45808409/1531971 stackoverflow.com/q/45344259/1531971 和其他都是好的开始,然后你可以告诉我们为什么这些不适用。
  • 我确实进行了搜索,但没有一个答案回答了我的问题,我希望使用 Microsoft Graph API 来获取身份验证联系信息电子邮件,而不是普通的邮件标签。
  • 您应该告诉我们您做了哪些研究,以及为什么其他答案不适用,这样人们就不会重复您的努力。这是你的问题;负责并主动告诉我们您想做什么、尝试过什么以及获得了什么结果。
  • 我查看了 Microsoft Graph API 上的文档,除了使用 PowerShell (docs.microsoft.com/en-za/azure/active-directory/authentication/…) 之外,没有提到如何获取身份验证联系信息

标签: azure azure-active-directory microsoft-graph-api azure-ad-b2c azure-ad-graph-api


【解决方案1】:

基于this articleMicrosoft Graph API 和旧的 Azure AD Graph API 之间仍有一些差距,但似乎两者都无法完全检索所需的内容。

截至目前,以下使用 Azure AD Graph API 从“身份验证联系人信息”部分获取Alternate Email 字段;

在 Azure AD 中注册应用程序

在 Azure Active Directory 实例中;

  • Register 一个新的应用程序 (client_id)
  • 授予 “读取所有用户的完整个人资料” permissionsWindows Azure Active Directory
  • 为应用程序创建一个私钥 (client_secret)

身份验证流程

参考:Service to Service Calls Using Client Credentials

检索访问令牌

请求

POST https://login.microsoftonline.com/<tenant id>/oauth2/token

有效载荷

{
  "client_id": "<client_id>",
  "client_secret": "<client_secret>",
  "resource": "https://graph.windows.net",
  "grant_type": "client_credentials"
}

用户认证联系方式

参考:Basic operations on users

获取用户

请求

GET https://graph.windows.net/<tenant_id>/users/<user_id>?api-version=1.6

标题

{
  "Authorization": "Bearer <access_token>"
}

回应

{
    ...
    "otherMails": ["<Alternate Email>"],
    ...
}

【讨论】:

    【解决方案2】:

    正如您提到的,似乎没有 microsoft Graph API 可以获取身份验证联系信息电子邮件。

    但是我们可以使用以下 API 获取该信息,我使用浏览器捕获它。这似乎是一个小技巧。

    Get https://main.iam.ad.ext.azure.com/api/UserDetails/{userId}
    

    关于如何获取访问令牌,请参考这个blog

    注意:我在 Azure 官方文档中没有找到这个 API。请不要将其用于产品,您可以将其用于测试。

    【讨论】:

    • 我实际上需要将它用于产品,我看到您可以获得此信息的唯一方法是使用 powershell 但我更想使用图形 api
    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多