让我使用 Azure OAuth 2 令牌
Getting Me using Azure OAuth 2 Token
我正在尝试使用 Azure OAuth2 对用户进行身份验证,然后获取有关他们的一些信息。这是我现在正在做的。
- 如果代码不在 URI 中,将它们重定向到:https://login.microsoftonline.com/GUID_HERE/oauth2/v2.0/authorize
- 这会将它们重定向回 URL,但会传递 URI 中的代码
- 该页面从 URI 中获取代码并向 POST 请求:https://login.microsoftonline.com/GUID_HERE/oauth2/v2.0/token,其中 body:
"grant_type" = "authorization_code"
"code" = "INSERT THE CODE"
"client_id", "INSERT THE CLIENT_ID"
"client_secret", "INSERT THE CLIENT SECRET"
- 此 returns 一个有效的访问令牌
- 当我尝试通过以下方式请求用户信息时:https://graph.windows.net/me?api-version=1.6 使用授权中的访问令牌 header,我收到一条错误消息,指出令牌已过期。
我尝试了多个不同的端点,但 none 似乎工作正常。任何帮助将不胜感激。
更新
这是一些令牌信息。
aud: "00000003-0000-0000-c000-000000000000"
scp: "openid profile email"
您将需要 User.Read
范围,然后调用 https://graph.microsoft.com/v1.0/me
而不是 Azure AD Graph API 端点。
也就是说,您也可以请求 https://graph.windows.net/User.Read
作为范围并调用 AAD Graph,但是 API 已被弃用,所以我宁愿使用当前的 API :)
您拥有的范围 (openid profile email
) 只会影响您的应用获得 AFAIK 的 Id 令牌中的内容,不会影响您调用 APIs 的能力。
我正在尝试使用 Azure OAuth2 对用户进行身份验证,然后获取有关他们的一些信息。这是我现在正在做的。
- 如果代码不在 URI 中,将它们重定向到:https://login.microsoftonline.com/GUID_HERE/oauth2/v2.0/authorize
- 这会将它们重定向回 URL,但会传递 URI 中的代码
- 该页面从 URI 中获取代码并向 POST 请求:https://login.microsoftonline.com/GUID_HERE/oauth2/v2.0/token,其中 body:
"grant_type" = "authorization_code" "code" = "INSERT THE CODE" "client_id", "INSERT THE CLIENT_ID" "client_secret", "INSERT THE CLIENT SECRET"
- 此 returns 一个有效的访问令牌
- 当我尝试通过以下方式请求用户信息时:https://graph.windows.net/me?api-version=1.6 使用授权中的访问令牌 header,我收到一条错误消息,指出令牌已过期。
我尝试了多个不同的端点,但 none 似乎工作正常。任何帮助将不胜感激。
更新
这是一些令牌信息。
aud: "00000003-0000-0000-c000-000000000000"
scp: "openid profile email"
您将需要 User.Read
范围,然后调用 https://graph.microsoft.com/v1.0/me
而不是 Azure AD Graph API 端点。
也就是说,您也可以请求 https://graph.windows.net/User.Read
作为范围并调用 AAD Graph,但是 API 已被弃用,所以我宁愿使用当前的 API :)
您拥有的范围 (openid profile email
) 只会影响您的应用获得 AFAIK 的 Id 令牌中的内容,不会影响您调用 APIs 的能力。