Wie ich anfing, ein ADFS-Plug-In zu erstellen und feststeckte

Ich muss sofort zugeben, dass ich kein richtiger Programmierer bin. Das heißt, sobald ich real war - in dem Sinne, dass sie mir Geld für das Schreiben von Programmen bezahlt haben. Dies war jedoch vor mehr als fünfzehn Jahren. Ich schrieb Programme in Übereinstimmung mit der damaligen Mode, hauptsächlich in Delphi (na ja, oder etwas früher - auch in C / C ++) - kurz gesagt, weil es jetzt überhaupt nicht mehr in Mode ist und ist nicht gefragt. Und in den letzten fünfzehn Jahren habe ich fast ausschließlich mit der Systemadministration verdient, hauptsächlich mit der Administration von Microsoft-Lösungen, insbesondere Active Directory und MS Exchange. Und das einzige, was die Programmierung in dieser Aktivität betraf, war das Schreiben von Skripten in einer Programmiersprache namens Powershell.



Die glänzenden Aussichten der Systemadministration in Bezug auf Brot und Butter und Kaviar haben sich in den letzten fünfzehn Jahren jedoch irgendwie verschlechtert, und ich beschloss, mich an das alte Handwerk zu erinnern. Gleichzeitig habe ich mich entschlossen, mich nicht zu weit von vertrauten Themen zu entfernen, um das gesammelte Wissen irgendwie zu nutzen. Insbesondere - Kenntnisse über Microsoft-Produkte, mit denen ich mich seit fünfzehn Jahren beschäftige. Für das alte Programmiergepäck wie Delphi ist es überhaupt nicht mehr in Mode, Sie werden nicht viel von einem Rogen bekommen, aber Sie wollten wirklich nicht zu modischen Front-End-Anbietern gehen und Powershell in JavaScript ändern, um mit den neu erstellten Whitelists zu konkurrieren, und " Die Freuden der Skriptsprache - wie die Unmöglichkeit, Fehler bei der Kompilierung zu erkennen - haben mich in Powershell gebracht.



Aber dann fand ich eine Schwierigkeit. Wie Sie wissen, hat Microsoft vor einiger Zeit beschlossen, ein Cloud-Unternehmen zu werden. Und dafür begann sie, ihre Benutzer in die Cloud zu treiben, wofür sie sich eindeutig entschied, all ihre wunderbaren lokalen Geschäftsprodukte wie meine Lieblingsbörse zu töten. Und dies macht die Entwicklung von Programmen für diese Produkte automatisch aussichtslos. Nachdem ich nachgedacht hatte, schien es mir jedoch ein akzeptabler Kompromiss zu sein: Schreiben Sie eine Erweiterung für den Active Directory-Verbunddienst (AD FS). Da dieser Dienst, der in einer Vielzahl von Authentifizierungs- und Autorisierungsszenarien in verteilten Systemen verwendet wird, in der modernen Welt eine viel bessere Überlebenschance hat als Lösungen, die auf rein „lokale“ Anwendungen zugeschnitten sind. Insbesondere,Es kann verwendet werden, um den Zugriff auf Anwendungen in der Microsoft Cloud basierend auf der Authentifizierung in Active Directory vor Ort zu autorisieren. Daher kann der Einsatz von Wissen und Erfahrung mit diesem Service (den ich ein wenig habe) zumindest eine gewisse Perspektive für die Zukunft haben.



, , . , , , - . , .



- , 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