我必须马上承认我不是一个真正的程序员。也就是说,一旦我是真实的,就意味着我只是因为编写程序而获得报酬。但是,这是15年前,我按照当时的流行风格编写程序,主要是在Delphi中(好吧,或者更早一点-也在C / C ++中)-简而言之,关于现在的情况,嗯,一点都不时髦并且没有需求。在过去的十五年中,我几乎完全是通过系统管理来赚钱,主要是通过管理Microsoft解决方案,尤其是Active Directory和MS Exchange。在此活动中,与编程有关的唯一事情是用一种称为Powershell的编程语言编写脚本。
但是,在过去的15年中,就面包,黄油和鱼子酱而言,系统管理的光明前景有所减弱,我决定回想起旧工艺。 但与此同时,我决定尽量不要远离熟悉的主题,以某种方式使用积累的知识。特别是-与Microsoft产品相关的知识,我已经使用了15年。对于像Delphi这样的老式程序员来说,它根本不再时髦,您将不会有太多的麻烦,但是您确实不想去时髦的前端供应商,将Powershell更改为JavaScript,然后与新的白名单竞争,并且“脚本语言的魅力-就像不可能在编译阶段捕获错误-使我回到了Powershell。
但是后来我发现了困难。如您所知,微软不久前决定成为一家云公司。为此,她开始将用户吸引到云端,为此,她明确决定杀死所有她出色的本地业务产品,例如我最喜欢的Exchange。这自动使与这些产品相关的程序的开发没有任何视角。但是,经过反思,我发现了似乎可以接受的折衷方案:为Active Directory联合身份验证服务(AD FS)编写扩展。因为在分布式系统的各种身份验证和授权场景中使用的这项服务比专门为纯“内部部署”设计的解决方案在现代世界中生存的机会要大得多。特别是,它可以用于基于地面上的Active Directory身份验证来授权对Microsoft云中的应用程序的访问。因此,对这项服务的知识和经验的使用(我有一点点)可能对未来至少有一些看法。
关于附加模块,我刚刚对这种用于多因素身份验证的模块有了一个想法,在我看来,该模块可以找到适用于小型企业的应用程序。好吧,也许我稍后再讨论一下这个想法及其实现。在本文中,我将仅限于实现的开始过程。
过去,Microsoft刚刚发布了现在较旧的Windows Server 2012 R2系统,在该系统中ADFS获得了当前格式,我从我对文档中下一个创新的习惯中吸取了经验,在本文档中找到了详细的,逐步的,带有示例的指南如何制作和连接相同的扩展模块。那时我不需要它,但我想起了这个事实。现在,当时候到了,我找到了本指南。我不会说这很容易-出于某种原因,Microsoft在这段时间内几次重新设计了带有文档的网站,这就是为什么所有链接都丢失的原因。
但是,最终,我的目标得以实现。
, . , , . : .NET CLR C#, , . , .NET Powershell , . , , , ( ) . — - - - Microsoft GitHub - SMS — , , - , , , API , — , .
, , .
: , ADFS HTML , , , , . , , , , , , : « ?» , , «, » ( ADFS hidden input, ), , — , . , ADFS, — null,
(claims) ( — URI) — ( URI, ). , . — .
. - , . : URI URL, ( ) urn. GAC ADFS . . , HTML, . .
, ADFS , , ID 364 «Microsoft.IdentityServer.RequestFailedException: No strong authentication method found for the request...», - , , . , ADFS , . , ( , ADFS URL ) — . , .
, , , ADFS , , . , , — , , , . : , , — , , , — . , — .
— — . , , — , , — : , , . . ( — ) . , : - , ( ) , «!», . , ( ): , , , , , . , . .
— -. — ( , ). — , . GitHub — , , API . - - — . URI — . , , , , ( ). , — . , ,
, : ( ) «http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod», (, ) «» , : «https://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod». , , - . , , , .
. - Microsoft, : . - , - http https:
URI , URL, URL . — . - Microsoft, . : 100% , — , - . ( — ), , .
P.S.: , . - — , .