本地ASP.NET开发页面使用AzureAD(AAD)验证登录

本地ASP.NET开发页面使用AzureAD(AAD)验证登录

Azure和Office365已不是一个热门话题了,因为所谓的云时代已经走进了技术大师们的内心,大家多少有一定了解了,所以就不多介绍了,我的Blog中之前也写了很多关于Azure及Office365的相关文章,如果有兴趣的同学可以参考一下。一般企业内部如果使用了Azure或者Office365产品的话,都会跟本地的域进行验证绑定,然后可以使用相关工具(Dirsync & Azure AD Connect)将本地的域用户同步到AAD里面,然后配置ADFS使用本地的域用户格式进行登录及管理Azure相关服务等,当然也有其他的一些做法,具体就不介绍了,我们首先要知道,Azure 和Office365使用的是同一个AD服务,所以注册的时候自定义的域名称也就是唯一标识了,比如,当注册一个oa@ixmsoft.onmicrosoft.com(portal.office.com)的office365顶订阅的账户的时候,系统也会保留一个oa@imxmsoft.onmicrosoft.com;(manage.windowsazure.com)的订阅账户如果是国内供应商提高的需要将结尾更改为:partner.onm51CTO提醒您,请勿滥发广告!即可。在任何一个账户上新建账户都会显示。如果一开始注册了Office365,就可以通过https://manager.onmicrosoft.com进行提示注册或者管理对应的Azure订阅了,如果是注册了Azure,就可以通过访问https://portal.office.com 进行提示注册或管理对应的Office365订阅了。今天呢,我们主要介绍的是如果通过AAD验证本地开发的自定义web服务(ASP.NET)

首先是介绍一下大概的原理,原理就是我们需要在AAD中注册一个程序,然后通过配置程序值返回对应的URL信息,然后完成对应的验证,整个过程跟本地配置ADFS及ADFS验证登录过程非常类似,废话不多说了,具体见下:

我们当然是首先需要一个Azure账户,具体就不掩饰了,然后验证本地域;

我们首先加本地域添加到Azure中,我们只需要验证就可以,在dns中添加一条txt记录,不使用skype、exchange等服务即可;添加后,我们可以使用Azure AD Connect 工具将本地的用户同步到Azure AD中,当然,也可以直接在本地以添加的域新建用户。我们因为不用sso,所以不勾选sso

p_w_picpath

开始验证DNS

p_w_picpath

然后我们在公网DNS上添加验证记录

p_w_picpath

验证成功

p_w_picpath

然后我 可以看见在office365上也会出现域信息

p_w_picpath

接下来我们添加用户;然后后缀名以本地域进行添加

p_w_picpath

添加完成

p_w_picpath

接下来就是添加应用程序了

p_w_picpath

选择添加开的应用程序

clip_p_w_picpath001

我们定义任意名称

clip_p_w_picpath002

定义返回的url

clip_p_w_picpath003

添加完成后,我们也可以通过配置选项进行修改

clip_p_w_picpath004

我们首先选择客户端ID,复制数据

clip_p_w_picpath005

复制后,我们在代码中修改;我们首先是通过Visual Studio打开相关的代码项目;配置好对应的路劲

p_w_picpath

p_w_picpath

打开web.config配置文件

<?xml version="1.0" encoding="utf-8"?>   
<!--    
  For more information on how to configure your ASP.NET application, please visit    
  
http://go.microsoft.com/fwlink/?LinkId=301880
    
  -->    
<configuration>    
  <appSettings>    
    <add key="webpages:Version" value="3.0.0.0" />    
    <add key="webpages:Enabled" value="false" />    
    <add key="ClientValidationEnabled" value="true" />    
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />  
    <add key="ida:ClientId" value="cbc2336e-e7aa-445e-a751-8219830b873a" />     <!--在AAD中注册应用程序完成时获取到的ID-->    
    <add key="ida:Tenant" value="beyondsoft100.partner.onm51CTO提醒您,请勿滥发广告!" />       <!--contoso.onmicrosoft.com]--> <!--当前租户名称:当前目录中粗行间用户是所用的后缀名-->    
    <add key="ida:AADInstance" value="
https://login.chinacloudapi.cn/{0}"
 />    <!--在AAD的端点好看也可以获取到-->    
    <add key="ida:PostLogoutRedirectUri" value="
https://localhost:44320?username=test/"
 />     <!--在AAD中注册程序时所填写的返回URL地址-->    
    
  </appSettings>    
  <system.web>    
    <compilation debug="true" targetFramework="4.5" />    
    <httpRuntime targetFramework="4.5" />    
  </system.web>    
  <runtime>    
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">    
      <dependentAssembly>    
        <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />    
        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />    
      </dependentAssembly>    
      <dependentAssembly>    
        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />    
        <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />    
      </dependentAssembly>    
      <dependentAssembly>    
        <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />    
        <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />    
      </dependentAssembly>    
      <dependentAssembly>    
        <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />    
        <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />    
      </dependentAssembly>    
      <dependentAssembly>    
        <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />    
        <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />    
      </dependentAssembly>    
      <dependentAssembly>    
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />    
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />    
      </dependentAssembly>    
      <dependentAssembly>    
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />    
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />    
      </dependentAssembly>    
      <dependentAssembly>    
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />    
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />    
      </dependentAssembly>    
      <dependentAssembly>    
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />    
        <bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />    
      </dependentAssembly>    
      <dependentAssembly>    
        <assemblyIdentity name="System.IdentityModel.Tokens.Jwt" publicKeyToken="31bf3856ad364e35" culture="neutral" />    
        <bindingRedirect oldVersion="0.0.0.0-4.0.2.28" newVersion="4.0.2.28" />    
      </dependentAssembly>    
      <dependentAssembly>    
        <assemblyIdentity name="Microsoft.IdentityModel.Protocol.Extensions" publicKeyToken="31bf3856ad364e35" culture="neutral" />    
        <bindingRedirect oldVersion="0.0.0.0-1.0.2.28" newVersion="1.0.2.28" />    
      </dependentAssembly>    
    </assemblyBinding>    
  </runtime>    
</configuration>

p_w_picpath

通过对应的数据进行修改即可

p_w_picpath

p_w_picpath

所以修改为 fanwei.onmicrosoft.com

clip_p_w_picpath001[4]

然后修改登录域名,国际版本为

国际版本为windows.net

p_w_picpath

最后,修改需要返回的url

clip_p_w_picpath001[6]

,保存后,我们进行测试

p_w_picpath

我们可以查看已经开始执行debug模式

clip_p_w_picpath001[8]

同时我们也可以查看到登录页面了,

clip_p_w_picpath002[4]

我们单击登录

我们发现直接跳转到了我们的新建的WEBSERVER的应用程序界面了,

其实该界面也类似于我们的ADFS界面

clip_p_w_picpath003[4]

我们使用user01@ixmsoft.com用户进行登录

clip_p_w_picpath004[4]

其实已经登录成功了,提示第一次登录需要修改密码

clip_p_w_picpath005[4]

我们按照提示修改一次密码,及正确登录

clip_p_w_picpath006

------------------------------------------------------------------------------------------------------------------

我们为了更好的显示,我们修改本地的显示页面

定义显示内容即可

clip_p_w_picpath007

clip_p_w_picpath008

登录成功了。页面的右上角正常显示当前登录的用户名

clip_p_w_picpath009

优秀的个人博客,低调大师

微信关注我们

原文链接:https://blog.51cto.com/gaowenlong/1829833

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。