繁体   English   中英

Azure上的ASP.NET应用程序身份验证

[英]ASP.NET application Authentication on Azure

因此,我有一个以前使用Windows身份验证方案的旧版ASP.NET应用程序。

我现在正在尝试将其移植到Azure,并且已经在azure门户上配置了Azure Active Directory服务,并且我的组织的目录已经在Azure上。

我现在想更改web.config文件,以便我的应用可以识别Azure身份验证并使用这些凭据。

以前,配置是

  <system.web>
  <compilation debug="true" targetFramework="4.6"/>
  <httpRuntime targetFramework="4.5" maxQueryStringLength="2097151" requestPathInvalidCharacters="&lt;,&gt;,*,%,&amp;,\,?"/>
  <customErrors mode="Off"/>
  <authentication mode="Windows"/>

我应该将身份验证 模式更改为什么?

谢谢一群!

据我所知,是否已启用Web应用程序的“身份验证/授权AD”登录,如下所示。

在此处输入图片说明

您不需要更改任何代码。 如果用户要访问您的Web应用程序,则Azure将自动将用户重定向到AD登录页面。

如果用户登录成功,那么它将向您的应用程序返回一个令牌,该令牌中包含用户的信息。


更新:

我建议您可以使用Azure广告图API来获取用户信息。

如果要使用Azure广告图API,则需要获取访问令牌。

我建议您首先可以访问此url

使用搜索栏搜索您的Web,移动或API应用。

单击编辑以启用更改。

将extraLoginParams设置为以下内容:

["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的更多详细信息,您可以参考本文

如果要获取用户的个人资料图片,建议您按以下方式更改网址:

https://graph.windows.net/myorganization/me/thumbnailPhoto?api-version

更多详细信息,您可以参考本文

注意:您需要在Web应用程序中授予足够的权限才能启用获取这些值。

像这样的图像:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM