Como comecei a criar um plug-in ADFS e fiquei preso

Devo admitir imediatamente que não sou um programador de verdade. Ou seja, quando eu era real - no sentido de receber dinheiro apenas para escrever programas. No entanto, isso foi há mais de quinze anos atrás, escrevi programas, de acordo com a moda da época, principalmente em Delphi (bem, ou um pouco mais cedo - também em C / C ++) - em resumo, sobre o que está agora, bem, não está na moda e não está em demanda. Nos últimos quinze anos, tenho ganho quase exclusivamente administração de sistemas, principalmente administrando soluções da Microsoft, especialmente o Active Directory e o MS Exchange. E a única coisa que dizia respeito à programação nessa atividade era escrever scripts, por assim dizer, em uma linguagem de programação chamada Powershell.



No entanto, as perspectivas brilhantes da administração do sistema em termos de extração de pão com manteiga e caviar desapareceram de alguma maneira nas últimas décadas e meia, e decidi me lembrar do antigo ofício. Mas, ao mesmo tempo, decidi tentar não me afastar muito de tópicos familiares, de modo a usar o conhecimento acumulado. Em particular, o conhecimento dos produtos Microsoft com os quais lido há quinze anos. Para a bagagem de programação antiga, como o Delphi, não está mais na moda, você não gosta muito, mas realmente não queria ir para fornecedores de moda, mudando o Powershell para JavaScript, a fim de competir com as listas brancas recém-criadas e " os encantos ”de uma linguagem de script - como a impossibilidade de detectar erros no estágio de compilação - eles me levaram de volta ao Powershell.



Mas então eu encontrei a dificuldade. A Microsoft, como você sabe, há algum tempo decidiu se tornar uma empresa em nuvem. E por isso, ela começou a direcionar seus usuários para as nuvens, pelos quais claramente decidiu matar todos os seus maravilhosos produtos comerciais locais, como o meu amado Exchange. E isso automaticamente torna o desenvolvimento de programas relacionados a esses produtos desprovido de qualquer perspectiva. No entanto, depois de pensar, achei, para mim, um compromisso aceitável: escreva uma extensão para o Serviço de Federação do Active Directory (AD FS). Como esse serviço, usado em vários cenários de autenticação e autorização em sistemas distribuídos, tem uma chance muito maior de sobreviver no mundo moderno do que soluções personalizadas para uso puramente “local”. Em particular,pode ser usado para autorizar o acesso a aplicativos na nuvem da Microsoft com base na autenticação no Active Directory no local. Portanto, o uso de conhecimento e experiência com este serviço (que eu tenho um pouco) pode ter pelo menos alguma perspectiva para o 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