【问题标题】:Correct endpoints for requesting basic account info for Microsoft accounts为 Microsoft 帐户请求基本帐户信息的正确端点
【发布时间】:2019-07-06 19:55:03
【问题描述】:

我正在尝试为我的网站实现一个非常简单的“使用 Microsoft 登录”按钮。我已经有一个功能正常的 Google 按钮,并想模仿这种行为。简单地说,它应该让用户登录到 Microsoft(使用由带有 Office 365 的学校颁发的那种托管 Microsoft 帐户),然后为我的应用程序提供电子邮件地址和名称。

但是,我很难找到正确的端点以在登录后返回基本用户信息。

我已成功向https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=... 请求授权码并将其返回给我的应用程序。然后我也能够成功地使用https://apis.live.net/v5.0/me?access_token=... 返回所需的数据。但是,这仅适用于个人 Live 帐户,不适用于专业的 Office 365 帐户。

基本上,是否有人知道我可以将授权代码发送到的正确端点,该端点将返回附加到 Office 365 帐户的电子邮件地址和名称?我尝试了https://login.windows.net/common/openid/userinfo,使用下面的 curl 请求,但只收到“1”作为响应。

$url = "https://login.windows.net/common/openid/userinfo" ;
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_HTTPHEADER, array("Authorisation: Bearer $access_token"));
curl_setopt($ch,CURLOPT_HTTPHEADER, array("Content-Type: application/json"));

【问题讨论】:

  • 您的意思是要获取用户列表吗?或特定的用户信息?你可以得到https://graph.microsoft.com/v1.0/usersUser Listhttps://graph.microsoft.com/v1.0/users/{id | userPrincipalName}Specific user
  • 你可以参考这个文档php example
  • @md 我至少想要他们的电子邮件地址,但最好还有他们的名字。我怎么能在不知道他们的 id 或用户名的情况下使用第二个?我所拥有的只是他们登录时的令牌
  • 我明白在这种情况下,您可以使用https://graph.microsoft.com/v1.0/me。您需要做的就是将您收到的令牌传递给登录用户。如果您需要,我可以为您添加 C# 示例,因为我对 php 不是很熟悉。
  • @MdFaridUddinKiron 谢谢。我想我已经破解了。主要问题(以及一些愚蠢的拼写错误)是我试图使用id_token 而不是access_token 来定位端点。我在这里成功地关注了这篇文章:massivescale.com/microsoft-v2-endpoint-primer

标签: php oauth oauth-2.0 microsoft-graph-api


【解决方案1】:

您可以在以下端点获取用户信息:

用户列表:

为了获取用户列表,有效的端点是:

https://graph.microsoft.com/v1.0/users

个人用户:

为了获取单个用户,有效的端点是:

https://graph.microsoft.com/v1.0/users/{id | userPrincipalName}

登录用户:

为了让用户登录,有效的端点是:

 https://graph.microsoft.com/v1.0/me

需要权限:

要执行此请求,您需要在 azure 门户中获得以下权限

进一步参考:

有关更多详细信息,您可以参考以下文档

  1. Php code example

  2. Azure Active Directory V2.0 Endpoint

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    • 1970-01-01
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    相关资源
    最近更新 更多