Comment j'ai commencé à créer un plug-in ADFS et je suis resté bloqué

Je dois avouer tout de suite que je ne suis pas un vrai programmeur. Autrement dit, une fois que j'Ă©tais rĂ©el - en ce sens que je recevais de l'argent uniquement pour Ă©crire des programmes. Pourtant, c’était il y a plus de quinze ans, les programmes que j’écrivais, selon la mode d’alors, principalement en Delphi (enfin, ou un peu plus tĂŽt - Ă©galement en C / C ++) - bref, sur le fait que maintenant, eh bien, ce n’est pas du tout Ă  la mode et n'est pas en demande. Et depuis quinze ans, je gagne de l'argent presque exclusivement grĂące Ă  l'administration systĂšme, principalement en administrant des solutions Microsoft, en particulier Active Directory et MS Exchange. Et la seule chose qui concernait la programmation Ă©tait d'Ă©crire des scripts dans, pour ainsi dire, un langage de programmation appelĂ© Powershell.



Cependant, les perspectives brillantes de l'administration du systĂšme en termes d'extraction du pain avec du beurre et du caviar se sont en quelque sorte estompĂ©es au cours des dix derniĂšres annĂ©es et demie, et j'ai dĂ©cidĂ© de rappeler l'ancien mĂ©tier. Mais il a dĂ©cidĂ© en mĂȘme temps d'essayer de ne pas s'Ă©loigner trĂšs loin de ceux qui les connaissaient, afin d'utiliser nĂ©anmoins au moins d'une maniĂšre ou d'une autre les connaissances accumulĂ©es. En particulier - la connaissance des produits Microsoft, avec laquelle je traite depuis quinze ans. Parce que l'ancien bagage de programmeur comme Delphi n'est plus Ă  la mode, vous ne pouvez pas obtenir de caviar avec, et je ne voulais vraiment pas aller chez les dĂ©veloppeurs front-end de la mode, en changeant Powershell en JavaScript, de sorte que plus tard, je ne voulais pas rivaliser avec les nouveaux spĂ©cialistes en informatique: l'Ăąge n'est pas le mĂȘme, et les dĂ©lices du langage de script - comme l'impossibilitĂ© de dĂ©tecter les erreurs au stade de la compilation - ils m'ont amenĂ© dans Powershell.



Mais ensuite j'ai trouvĂ© une difficultĂ©. Microsoft, comme vous le savez, a dĂ©cidĂ© il y a quelque temps de devenir une sociĂ©tĂ© cloud. Et pour cela, elle a commencĂ© Ă  conduire ses utilisateurs dans les nuages, pour lesquels elle a clairement dĂ©cidĂ© de priver tous ses merveilleux produits locaux pour les entreprises, comme mon bien-aimĂ© Exchange. Et cela rend automatiquement dĂ©pourvu de toute perspective le dĂ©veloppement de programmes liĂ©s Ă  ces produits. Cependant, aprĂšs rĂ©flexion, j'ai trouvĂ© ce qui semblait ĂȘtre un compromis acceptable: Ă©crire une extension pour le service de fĂ©dĂ©ration Active Directory (AD FS). Parce que ce service, utilisĂ© dans une variĂ©tĂ© de scĂ©narios d'authentification et d'autorisation dans des systĂšmes distribuĂ©s, a de bien meilleures chances de survivre dans le monde moderne que des solutions conçues pour une utilisation purement «sur site». En particulier,il peut ĂȘtre utilisĂ© pour autoriser l'accĂšs aux applications dans le cloud Microsoft en fonction de l'authentification dans Active Directory sur le terrain. Par consĂ©quent, l'utilisation des connaissances et de l'expĂ©rience avec ce service (que j'ai un peu) peut avoir au moins une certaine perspective pour l'avenir.



, , . , , , - . , .



- , 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.: , . - — , .




All Articles