Nyebarke layanan WCF kanthi Secure Kerberos liwat WSO2 API Manager - Pangguna API runtime passthrough
Nalika kita ngamanake API nggunakake WSO2 API Manager, sampeyan bakal aman nggunakake OAuth 2.0. Panganggo / pangembang kudu melu API kasebut, entuk akses token lan kudu ngidini token akses kasebut nalika ngakses API.
Nalika ana layanan WCF / API, biasane sing diamanake nggunakake NTLM. Nanging, NTLM ora bisa mlaku sajrone mlumpat amarga bisa ngonfirmasi sambungan kasebut. Biasane ing lingkungan iki Kerberos minangka cara standar kanggo ngamanake layanan. Sampeyan banjur bakal nyedhiyani layanan kasebut liwat IIS. Nalika ngenalake Manager API kanggo skenario iki, kita kudu mateni OAuth ing API Manager lan duwe Kerberos passthrough kanggo layanan backend. Supaya pangguna pungkasan bakal bisa njupuk keuntungan saka runtime API / App telpon sawise padha mlebu menyang Windows.
Rincian persiyapan
Ana 3 mesin sing dadi bagian saka domain ENGWAR. Mesin Windows 8 digunakake minangka klien. Ana layanan ASP.Net sing kapapar liwat IIS. Service dhewe prasaja.
Yen tiket Kerberos bisa dileksanakake, jawaban JSON dikirim karo pangguna sing wis dicathet. Yen ora, senar "Anon" dikirim.
Layanan iki didelok liwat IIS ing http://dc.engwar.com:81
Aplikasi iki uga aktif ing akun domain - ENGWAR \ iisserviceuser. Perlu mbisakake Kerberos.
Iki bisa dites nganggo mesin klien. Sampeyan kudu entuk respon JSON karo pangguna sing wis mlebu mesin klien.
Kanggo panjaluk pisanan dikirim saka browser, IIS bakal ngirim 401 Ora sah karo header Negosiate. Banjur browser nangani jabat tangan SPNEGO lan ngirim tiket Kerberos ing panjalukan kaping pindho.
Iki langsung. Saiki ayo ngekspos layanan sing padha liwat API Manager. Ing persiyapan, API Manager wis mlaku ing mesin Windows Server sing kapisah minangka layanan. Iku nggunakake akun layanan liyane kanggo mlaku API Manager.
Aku wis nggawe lan nerbitaké API kanggo layanan backend. Net. Kanggo layanan iki, keamanan OAuth kudu dipateni. Sampeyan kudu nggawe siji owah-owahan konfigurasi menyang API Manager. Ing <API_Manager> /repository/conf/api-manager.xml kudu nambahake entri ing ngisor iki,
<RemoveOAuthHeadersFromOutMessage> false </ RemoveOAuthHeadersFromOutMessage>
Iki bakal njaga header wewenang. Iki perlu kanggo salaman SPNEGO.
Ayo njaluk API iki liwat klien lan mirsani asil.
Supaya ing panjalukan pisanan kita njaluk 401 sing ora dikarepake header lan ing browser siji kaping pindho ngirim tiket Kerberos lan kita entuk respon saka .Net layanan liwat API Manager.
Rincian liyane + Setel SPN
Kanggo 2 kedhaftar sing ana ing domain controller ENGWAR \ apiuser lan ENGWAR \ iisserviceuser aku wis ngaktifake delegasi. Uga prayoga yen panganggo loro kasebut duwe sandhi sing beda.
Utawa sampeyan bisa mbukak API Manager lan blumbang app sing digunakake kanggo layanan .Net ing akun panganggo sing padha. Uga, yen sampeyan duwe tembung sandhi sing padha kanggo 2 pangguna, sampeyan bisa nggawe 2 SPN sing cocok karo API Manager ing ENGWAR \ apiuser.
Tidak ada komentar:
Posting Komentar