Saya harus segera mengakui bahwa saya bukan programmer sejati. Yaitu, begitu saya nyata - dalam arti bahwa saya dibayar uang hanya untuk menulis program. Namun, ini lebih dari lima belas tahun yang lalu, saya menulis program, sesuai dengan mode saat itu, terutama di Delphi (baik, atau sedikit lebih awal - juga di C / C ++) - singkatnya, pada kenyataan bahwa sekarang, yah, itu sama sekali tidak modis dan tidak laris. Dan selama lima belas tahun terakhir saya telah menghasilkan uang hampir secara eksklusif oleh administrasi sistem, terutama dengan mengelola solusi Microsoft, terutama Active Directory dan MS Exchange. Dan satu-satunya hal yang menyangkut pemrograman dalam kegiatan ini adalah menulis skrip, sehingga untuk berbicara, bahasa pemrograman yang disebut Powershell.
Namun, prospek cemerlang dari administrasi sistem dalam hal membuat roti dan mentega dan kaviar entah bagaimana memudar selama lima belas tahun terakhir, dan saya memutuskan untuk mengingat kerajinan lama. Tetapi dia memutuskan pada saat yang sama untuk mencoba untuk tidak bergerak sangat jauh dari mereka yang akrab dengan mereka, namun untuk setidaknya menggunakan entah bagaimana akumulasi pengetahuan. Secara khusus, pengetahuan tentang produk Microsoft yang telah saya tangani selama lima belas tahun. Untuk bagasi pemrograman lama seperti Delphi tidak lagi modis sama sekali, Anda tidak akan mendapatkan banyak kesulitan, tetapi Anda benar-benar tidak ingin pergi ke vendor front-end yang modis, mengubah Powershell ke JavaScript, untuk bersaing dengan daftar putih yang baru dibuat, dan " pesona ”dari bahasa scripting - seperti ketidakmungkinan menangkap kesalahan pada tahap kompilasi - mereka membuat saya kembali ke Powershell.
Tetapi kemudian saya menemukan kesulitannya. Microsoft, seperti yang Anda tahu, beberapa waktu lalu memutuskan untuk menjadi perusahaan cloud. Dan untuk ini, dia mulai mendorong penggunanya ke awan, yang dengan jelas dia memutuskan untuk membunuh semua produk bisnis lokalnya yang luar biasa, seperti Exchange favorit saya. Dan ini secara otomatis membuat tanpa prospek pengembangan program yang terkait dengan produk ini. Namun, setelah berpikir, saya menemukan, menurut saya, kompromi yang dapat diterima: menulis ekstensi untuk Layanan Federasi Direktori Aktif (AD FS). Karena layanan ini, yang digunakan dalam berbagai skenario otentikasi dan otorisasi dalam sistem terdistribusi, memiliki peluang yang jauh lebih baik untuk bertahan di dunia modern daripada solusi yang dirancang khusus untuk aplikasi "di tempat". Khususnya,ini dapat digunakan untuk mengotorisasi akses ke aplikasi di Microsoft cloud berdasarkan otentikasi di Active Directory di lapangan. Oleh karena itu, penggunaan pengetahuan dan pengalaman dengan layanan ini (yang saya punya sedikit) mungkin memiliki setidaknya beberapa perspektif untuk masa depan.
, , . , , , - . , .
- , 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.: , . - — , .