备案 控制台
开发者社区 开发与运维 文章 正文

本地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

image

开始验证DNS

image

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

image

验证成功

image

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

image

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

image

添加完成

image

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

image

选择添加开的应用程序

clip_image001

我们定义任意名称

clip_image002

定义返回的url

clip_image003

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

clip_image004

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

clip_image005

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

image

image

打开web.config配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?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 >

image

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

image

image

所以修改为 fanwei.onmicrosoft.com

clip_image001[4]

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

国际版本为windows.net

image

最后,修改需要返回的url

clip_image001[6]

,保存后,我们进行测试

image

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

clip_image001[8]

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

clip_image002[4]

我们单击登录

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

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

clip_image003[4]

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

clip_image004[4]

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

clip_image005[4]

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

clip_image006

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

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

定义显示内容即可

clip_image007

clip_image008

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

clip_image009




本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1829833,如需转载请自行联系原作者

技术小阿哥
目录
相关文章
追逐时光者
|
13天前
|
开发框架 .NET 中间件
七天.NET 8操作SQLite入门到实战 - (2)第七天Blazor班级管理页面编写和接口对接
七天.NET 8操作SQLite入门到实战 - (2)第七天Blazor班级管理页面编写和接口对接
追逐时光者
54 7
桃李春风一杯酒
|
13天前
|
人工智能 量子技术 C#
【专栏】.NET 开发:开启数字化新时代
【4月更文挑战第29天】.NET开发在数字化新时代中发挥关键作用,借助跨平台能力、高性能和现代编程语言支持,如C#,助力企业实现数字化转型。通过企业级应用开发、移动应用和云计算集成,.NET加速业务流程和提升用户体验。未来,.NET将涉足AI、ML、MR/AR及量子计算,持续推动技术创新和数字化转型。开发者应提升技能,适应高性能需求,把握发展机遇。
桃李春风一杯酒
19 0
桃李春风一杯酒
|
13天前
|
缓存 监控 算法
【专栏】.NET 开发:实现卓越性能的途径
【4月更文挑战第29天】本文探讨了.NET开发中的性能优化,强调了理解性能问题根源和使用分析工具的重要性。基础优化包括代码优化(如减少计算、避免内存泄漏)、资源管理及选择合适算法。高级策略涉及并行编程、缓存策略、预编译(AOT)和微服务架构。持续性能测试与监控是关键,包括性能测试、监控分析和建立优化反馈循环。开发者应持续学习和实践性能优化,以构建高性能应用。
桃李春风一杯酒
21 0
桃李春风一杯酒
|
13天前
|
开发框架 .NET C#
【专栏】理解.NET 技术,提升开发水平
【4月更文挑战第29天】本文介绍了.NET技术的核心概念和应用,包括其跨平台能力、性能优化、现代编程语言支持及Web开发等特性。文章强调了深入学习.NET技术、关注社区动态、实践经验及学习现代编程理念对提升开发水平的重要性。通过这些,开发者能更好地利用.NET构建高效、可维护的多平台应用。
桃李春风一杯酒
21 0
桃李春风一杯酒
|
13天前
|
机器学习/深度学习 vr&ar 开发者
【专栏】.NET 技术:引领开发新方向
【4月更文挑战第29天】本文探讨了.NET技术如何引领软件开发新方向,主要体现在三方面:1) 作为跨平台开发的先锋,.NET Core支持多操作系统和移动设备,借助.NET MAUI创建统一UI,适应物联网需求;2) 提升性能和开发者生产力,采用先进技术和优化策略,同时更新C#语言特性,提高代码效率和可维护性;3) 支持现代化应用架构,包括微服务、容器化,集成Kubernetes和ASP.NET Core,保障安全性。此外,.NET还不断探索AI、ML和AR/VR技术,为软件开发带来更多创新可能。
桃李春风一杯酒
18 0
桃李春风一杯酒
|
13天前
|
物联网 vr&ar 开发者
【专栏】.NET 技术:为开发注入活力
【4月更文挑战第29天】本文探讨了.NET技术的创新,主要体现在三个方面:1) .NET Core实现跨平台开发革命,支持多种操作系统和硬件,如.NET MAUI用于多平台UI;2) 性能提升与生产力飞跃,C#新特性简化编程,JIT和AOT优化提升性能,Roslyn提供代码分析工具;3) 引领现代化应用架构,支持微服务、容器化,内置安全机制。未来,.NET 7将带来更多新特性和前沿技术整合,如量子计算、AI,持续推动软件开发创新。开发者掌握.NET技术将赢得竞争优势。
桃李春风一杯酒
20 0
桃李春风一杯酒
|
13天前
|
人工智能 前端开发 Cloud Native
【专栏】洞察.NET 技术的开发趋势
【4月更文挑战第29天】本文探讨了.NET技术的三大发展趋势:1) 跨平台与云原生技术融合,通过.NET Core支持轻量级、高性能应用,适应云计算和微服务;2) 人工智能与机器学习的集成,如ML.NET框架,使开发者能用C#构建AI模型;3) 引入现代化前端开发技术,如Blazor,实现前后端一致性。随着.NET 8等新版本的发布,期待更多创新技术如量子计算、AR/VR的融合,.NET将持续推动软件开发的创新与进步。
桃李春风一杯酒
27 0
桃李春风一杯酒
|
13天前
|
开发框架 物联网 测试技术
【专栏】.NET 开发:打造领先应用的基石
【4月更文挑战第29天】本文探讨了.NET开发框架为何成为构建领先应用的首选。高性能与稳定性是.NET的核心优势,它采用先进的技术和优化策略,如.NET Core的轻量级设计和JIT/AOT编译模式。跨平台兼容性让开发者能用相同代码库在不同操作系统上构建应用。现代化的开发体验,如C#语言的创新特性和Visual Studio的强大工具,提升了开发者生产力。丰富的生态系统和广泛支持,包括庞大的开发者社区和微软的持续投入,为.NET提供了坚实后盾。
桃李春风一杯酒
20 0
桃李春风一杯酒
|
13天前
|
人工智能 前端开发 Devops
【专栏】洞察.NET 技术在现代开发中的作用
【4月更文挑战第29天】本文探讨了.NET技术在现代软件开发中的核心价值、应用及挑战。.NET提供语言统一性与多样性,强大的Visual Studio工具,丰富的类库,跨平台能力及活跃的开发者社区。实际应用包括企业级应用、Web、移动、云服务和游戏开发。未来面临性能优化、容器化、AI集成等挑战,需持续创新。开发者应深入理解.NET,把握技术趋势,参与社区,共创美好未来。
桃李春风一杯酒
22 0
桃李春风一杯酒
|
13天前
|
机器学习/深度学习 人工智能 开发者
【专栏】.NET 技术:为开发带来新机遇
【4月更文挑战第29天】本文探讨了.NET技术如何为软件开发带来新机遇,分为三个部分:首先,.NET的跨平台革命,包括.NET Core的兴起、Xamarin与.NET MAUI的移动应用开发、开源社区的推动及性能优化;其次,介绍了云服务与微服务架构的集成,如Azure云服务、微服务支持、DevOps与CI/CD,以及Docker容器化;最后,讨论了AI与机器学习集成,如ML.NET、认知服务、TensorFlow和ONNX,使开发者能构建智能应用。面对这些机遇,开发者应不断学习和适应新技术,以创造更多价值。
桃李春风一杯酒
18 0

热门文章

最新文章

  • 1
    r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现-4
  • 2
    r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现(下)
  • 3
    高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据
  • 4
    对象存储oss使用问题之OSS SDK .net 使用下载例程报错如何解决
  • 5
    Golang深入浅出之-Go语言标准库net/http:构建Web服务器
  • 6
    探索VB.NET:了解.NET Framework下的Visual Basic
  • 7
    r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现-1
  • 8
    r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现1
  • 9
    Golang深入浅出之-HTTP客户端编程:使用net/http包发起请求
  • 10
    【专栏】洞察.NET 技术的前沿应用
  • 1
    ASP.NET体检中心源码,实现检前、检中、检后全流程管理
    44
  • 2
    C# .NET面试系列七:ASP.NET Core
    107
  • 3
    C# .NET面试系列六:ASP.NET MVC
    125
  • 4
    ASP.NET云LIS区域检验云SaaS平台源码
    52
  • 5
    ASP.NET实验室LIS系统源码 Oracle数据库
    45
  • 6
    ASP.NETMVC数据库完整CRUD操作示例
    36
  • 7
    ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、用户管理系统(考点:查询列表、增加、删除)
    75
  • 8
    ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
    40
  • 9
    ASP.NET WEB——项目中Cookie与Session的用法
    44
  • 10
    ASP.NET WEB——项目创建与文件上传操作
    51
  • 相关电子书

    更多
  • 低代码开发师(初级)实战教程
  • 冬季实战营第三期:MySQL数据库进阶实战
  • 阿里巴巴DevOps 最佳实践手册
  • 下一篇
    2024年阿里云免费云服务器及学生云服务器申请教程参考

    聚圣源个人贷款条件给组起名字(霸气的)torrentbaoffice2016激活唐砖小说门店起名测悲伤时爱你示儿tvb云播放粤语生辰起名测试打分诺顿32激活码esetnod32编导是什么楚起名大全中华宝宝起名免费名门暖婚:权爷盛宠妻金融起名字古典起名今年出生的孩子如何起名好?适合传播公司起名的新闻作文星之碎片欢字起名凶吉脑畔的拼音5g消息港式餐厅关于饲养场起名大全钟爱起名字大全男孩顾姓哈尔滨区号淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

    聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化