Cómo comencé a hacer un módulo de extensión para ADFS y me atasqué

Debo admitir de inmediato que no soy un verdadero programador. Es decir, una vez que fui real, en el sentido, me pagaron dinero por escribir programas. Sin embargo, esto fue hace más de quince años, escribí programas, de acuerdo con la moda de entonces, principalmente en Delphi (bueno, o un poco antes, también en C / C ++), en pocas palabras, sobre el hecho de que ahora, bueno, no está de moda y no tiene demanda Y durante los últimos quince años he estado ganando casi exclusivamente por la administración del sistema, principalmente por la administración de soluciones de Microsoft, especialmente Active Directory y MS Exchange. Y lo único que se refería a la programación era escribir scripts en, por así decirlo, un lenguaje de programación llamado Powershell.



Sin embargo, las brillantes perspectivas de la administración del sistema en términos de hacer pan, mantequilla y caviar de alguna manera se desvanecieron en los últimos quince años, y decidí recordar el viejo arte. Pero al mismo tiempo, decidí tratar de no alejarme demasiado de los temas familiares, para utilizar de alguna manera el conocimiento acumulado. En particular, el conocimiento de los productos de Microsoft con los que he estado tratando durante quince años. Debido a que el antiguo bagaje de programadores como Delphi ya no está de moda, no se puede tener caviar con él, y realmente no quería ir a los desarrolladores de moda, cambiando Powershell a JavaScript, por lo que más tarde no quería competir con los especialistas de TI recién creados: la edad no es la misma, y ​​" Las delicias del lenguaje de secuencias de comandos, como la imposibilidad de detectar errores en la etapa de compilación, me atraparon en Powershell.



Pero luego encontré la dificultad. Se sabe que Microsoft decidió convertirse en una empresa en la nube hace algún tiempo. Y para esto, comenzó a conducir a sus usuarios a las nubes, por lo que claramente decidió matar a todos sus maravillosos productos de negocios locales, como mi Exchange favorito. Y esto automáticamente hace que el desarrollo de programas relacionados con estos productos carezca de perspectiva. Sin embargo, después de pensar, encontré, me pareció, un compromiso aceptable: escribir una extensión para el Servicio de federación de Active Directory (AD FS). Debido a que este servicio, utilizado en una variedad de escenarios de autenticación y autorización en sistemas distribuidos, tiene muchas más posibilidades de sobrevivir en el mundo moderno que las soluciones diseñadas para aplicaciones puramente "locales". En particular,se puede usar para autorizar el acceso a aplicaciones en la nube de Microsoft en función de la autenticación de Active Directory en el terreno. Por lo tanto, el uso del conocimiento y la experiencia con este servicio (que tengo un poco) puede tener al menos alguna perspectiva para el futuro.



, , . , , , - . , .



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