据我所知,如果您启用了 Web 应用程序的身份验证/授权 AD 登录,如下所示。
您无需更改任何代码。如果用户想要访问您的 Web 应用程序,Azure 会自动将用户重定向到 AD 登录页面。
如果用户登录成功,那么它会返回一个token给你的应用,在这个token中包含了用户的信息。
更新:
我建议你可以使用 azure ad graph api 来获取用户信息。
如果您想使用 azure ad graph api,您需要获取访问令牌。
我建议你可以先访问这个url。
使用搜索栏搜索您的网络、移动或 API 应用。
单击编辑以启用更改。
将 additionalLoginParams 设置为以下内容:
["response_type=code id_token", "resource=https://graph.windows.net"]
单击页面顶部的读/写按钮以启用更改。
单击 PUT 按钮保存更改。
结果如下:
然后您可以在您的应用程序中添加以下代码以发送带有令牌的请求以获取用户信息。
string accessToken = this.Request.Headers[
"X-MS-TOKEN-AAD-ACCESS-TOKEN"];
// Call into the Azure AD Graph API using HTTP primitives and the
// Azure AD access token.
var url = "https://graph.windows.net/me?api-version=1.6";
var request = WebRequest.CreateHttp(url);
var headerValue = "Bearer " + accessToken;
request.Headers.Add(HttpRequestHeader.Authorization, headerValue);
using (var response = request.GetResponse())
using (var streamReader = new StreamReader(response.GetResponseStream()))
{
string jsonResponse = streamReader.ReadToEnd();
Response.Write(jsonResponse);
}
此url用于获取当前用户信息。
https://graph.windows.net/me?api-version=1.6
如果你想获取用户的组,我建议你可以改变如下的url:
https://graph.windows.net/myorganization/me/$links/memberOf?api-version
关于这个api的更多细节,你可以参考这个article。
如果您想获取用户的头像,我建议您可以更改网址如下:
https://graph.windows.net/myorganization/me/thumbnailPhoto?api-version
更多细节,你可以参考这个article。
注意:您需要在您的网络应用中授予足够的权限才能获取这些值。
像这样的图像: