Delegasi Yang Dibatasi Kerberos untuk akses menyeluruh (SSO) ke aplikasi Anda dengan proksi aplikasi
Anda dapat menyediakan akses menyeluruh untuk aplikasi lokal yang diterbitkan melalui proksi aplikasi yang diamankan dengan autentikasi Windows terintegrasi. Aplikasi ini memerlukan tiket Kerberos untuk akses. Proksi aplikasi menggunakan Kerberos Constrained Delegation (KCD) untuk mendukung aplikasi ini.
Untuk mempelajari selengkapnya tentang akses menyeluruh (SSO), lihat Apa itu akses menyeluruh?.
Anda dapat mengaktifkan akses menyeluruh ke aplikasi Anda menggunakan autentikasi Windows terintegrasi (IWA) dengan memberikan izin konektor jaringan privat di Direktori Aktif untuk meniru pengguna. Konektor menggunakan izin ini untuk mengirim dan menerima token atas nama pengguna tersebut.
Cara kerja akses menyeluruh dengan KCD
Diagram ini menjelaskan alur ketika pengguna mencoba mengakses aplikasi lokal yang menggunakan IWA.
- Pengguna memasukkan URL untuk mengakses aplikasi lokal melalui proksi aplikasi.
- Proksi aplikasi mengalihkan permintaan ke layanan autentikasi Microsoft Entra untuk melakukan praautentikasi. Pada titik ini, MICROSOFT Entra ID menerapkan kebijakan autentikasi dan otorisasi yang berlaku, seperti autentikasi multifaktor. Jika pengguna divalidasi, ID Microsoft Entra membuat token dan mengirimkannya kepada pengguna.
- Pengguna meneruskan token ke proksi aplikasi.
- Proksi aplikasi memvalidasi token dan mengambil Nama Prinsipal Pengguna (UPN) darinya, lalu Konektor menarik UPN, dan Nama Prinsipal Layanan (SPN) melalui saluran aman yang diautentikasi secara dual.
- Konektor melakukan negosiasi Kerberos Constrained Delegation (KCD) dengan AD lokal, meniru pengguna untuk mendapatkan token Kerberos ke aplikasi.
- Direktori Aktif mengirimkan token Kerberos untuk aplikasi ke Konektor.
- Konektor mengirimkan permintaan asli ke server aplikasi, dengan menggunakan token Kerberos yang diterimanya dari AD.
- Aplikasi mengirimkan respons ke Konektor, yang kemudian dikembalikan ke layanan proksi aplikasi dan akhirnya kepada pengguna.
Prasyarat
Sebelum mulai menggunakan akses menyeluruh untuk aplikasi IWA, pastikan lingkungan Anda siap dengan pengaturan dan konfigurasi berikut:
- Aplikasi Anda, seperti aplikasi SharePoint Web, diatur untuk menggunakan autentikasi Windows terintegrasi. Untuk informasi selengkapnya, lihat Mengaktifkan Dukungan untuk Autentikasi Kerberos, atau untuk SharePoint lihat Merencanakan autentikasi Kerberos di SharePoint 2013.
- Semua aplikasi Anda memiliki Nama Prinsipal Layanan.
- Server yang menjalankan Konektor dan server yang menjalankan aplikasi adalah domain yang bergabung dan bagian dari domain yang sama atau domain tepercaya. Untuk informasi selengkapnya tentang gabungan domain, lihat Menggabungkan Komputer ke Domain.
- Server yang menjalankan Konektor memiliki akses untuk membaca atribut TokenGroupsGlobalAndUniversal untuk pengguna. Setelan default ini mungkin telah terpengaruh oleh keamanan yang mengeraskan lingkungan. Menambahkan server Konektor ke "Grup Akses Otorisasi Windows" biasanya akan melakukan ini.
Mengonfigurasi Direktori Aktif
Konfigurasi Direktori Aktif bervariasi, tergantung pada apakah konektor jaringan privat Anda dan server aplikasi berada di domain yang sama atau tidak.
Konektor dan server aplikasi di domain yang sama
Di Direktori Aktif, buka Alat>Pengguna dan Komputer.
Pilih server yang menjalankan konektor.
Klik kanan dan pilih Properti>Delegasi.
Pilih Percayai komputer ini untuk delegasi ke layanan tertentu saja.
Pilih Gunakan protokol autentikasi apa pun.
Pada Layanan tempat akun ini menyajikan kredensial yang didelegasikan, tambahkan nilai untuk identitas SPN server aplikasi. Ini memungkinkan konektor jaringan privat untuk meniru pengguna dalam AD terhadap aplikasi yang ditentukan dalam daftar.
Konektor dan server aplikasi pada domain yang berbeda
Untuk daftar prasyarat bekerja dengan KCD di seluruh domain, lihat Kerberos Constrained Delegation di seluruh domain.
principalsallowedtodelegateto
Gunakan properti akun layanan (komputer atau akun pengguna domain khusus) dari aplikasi web untuk mengaktifkan delegasi autentikasi Kerberos dari proksi aplikasi (konektor). Server aplikasi berjalan dalam kontekswebserviceaccount
dan server delegasinya adalahconnectorcomputeraccount
. Jalankan perintah di bawah ini pada Pengontrol Domain (menjalankan Windows Server 2012 R2 atau yang lebih baru) di domainwebserviceaccount
. Gunakan nama datar (non UPN) untuk kedua akun.Jika
webserviceaccount
adalah akun komputer, gunakan perintah ini:$connector= Get-ADComputer -Identity connectorcomputeraccount -server dc.connectordomain.com Set-ADComputer -Identity webserviceaccount -PrincipalsAllowedToDelegateToAccount $connector Get-ADComputer webserviceaccount -Properties PrincipalsAllowedToDelegateToAccount
Jika
webserviceaccount
adalah akun pengguna, gunakan perintah ini:$connector= Get-ADComputer -Identity connectorcomputeraccount -server dc.connectordomain.com Set-ADUser -Identity webserviceaccount -PrincipalsAllowedToDelegateToAccount $connector Get-ADUser webserviceaccount -Properties PrincipalsAllowedToDelegateToAccount
Mengonfigurasi SSO
Terbitkan aplikasi Anda sesuai dengan instruksi yang dijelaskan dalam Menerbitkan aplikasi dengan proksi aplikasi. Pastikan untuk memilih MICROSOFT Entra ID sebagai Metode Praauthentication.
Begitu aplikasi Anda muncul dalam daftar aplikasi perusahaan, pilih aplikasi tersebut, dan klik Akses menyeluruh.
Atur mode akses menyeluruh menjadi Autentikasi Windows terintegrasi.
Masukkan SPN Aplikasi Internal server aplikasi. Dalam contoh ini, SPN untuk aplikasi kami yang diterbitkan adalah
http/www.contoso.com
. SPN ini harus ada dalam daftar layanan yang dapat disajikan oleh konektor kredensial yang didelegasikan.Pilih Identitas Proses Masuk yang Didelegasikan untuk konektor yang akan digunakan atas nama pengguna Anda. Untuk informasi selengkapnya, lihat Bekerja dengan identitas lokal dan cloud yang berbeda.
SSO untuk aplikasi non-Windows
Alur delegasi Kerberos di proksi aplikasi Microsoft Entra dimulai saat Microsoft Entra mengautentikasi pengguna di cloud. Setelah permintaan tiba di tempat, konektor jaringan privat Microsoft Entra mengeluarkan tiket Kerberos atas nama pengguna dengan berinteraksi dengan Direktori Aktif lokal. Proses ini disebut sebagai Kerberos Constrained Delegation (KCD).
Pada fase berikutnya, permintaan dikirim ke aplikasi backend dengan tiket Kerberos ini.
Ada beberapa mekanisme yang menentukan cara mengirim tiket Kerberos dalam permintaan tersebut. Sebagian besar server non-Windows berharap menerimanya dalam bentuk token SPNEGO. Mekanisme ini didukung pada proksi aplikasi Microsoft Entra, tetapi dinonaktifkan secara default. Konektor dapat dikonfigurasi untuk SPNEGO atau token Kerberos standar, tetapi tidak keduanya.
Jika Anda mengonfigurasi mesin konektor untuk SPNEGO, pastikan semua konektor lain di grup Konektor juga dikonfigurasi dengan SPNEGO. Aplikasi yang mengharapkan token Kerberos standar harus dialihkan melalui konektor lain yang tidak dikonfigurasi untuk SPNEGO. Beberapa aplikasi web menerima kedua format tanpa memerlukan perubahan konfigurasi apa pun.
Untuk mengaktifkan SPNEGO:
Buka prompt perintah yang berjalan sebagai administrator.
Dari prompt perintah, jalankan perintah berikut ini di server konektor yang memerlukan SPNEGO.
REG ADD "HKLM\SOFTWARE\Microsoft\Microsoft Entra private network connector" /v UseSpnegoAuthentication /t REG_DWORD /d 1 net stop WAPCSvc & net start WAPCSvc
Aplikasi non-Windows biasanya nama pengguna atau nama akun SAM alih-alih alamat email domain. Jika situasi tersebut berlaku untuk aplikasi Anda, Anda perlu mengonfigurasi bidang identitas proses masuk yang didelegasikan untuk menghubungkan identitas cloud Anda ke identitas aplikasi Anda.
Bekerja dengan identitas cloud dan lokal yang berbeda
Proksi aplikasi mengasumsikan bahwa pengguna memiliki identitas yang sama persis di cloud dan lokal. Tetapi di beberapa lingkungan, karena kebijakan perusahaan atau ketergantungan aplikasi, organisasi mungkin harus menggunakan ID alternatif untuk masuk. Dalam kasus seperti itu, Anda masih dapat menggunakan KCD untuk akses menyeluruh. Konfigurasikan Identitas proses masuk yang didelegasikan untuk setiap aplikasi gua menentukan identitas mana yang harus digunakan saat melakukan akses menyeluruh.
Kemampuan ini memungkinkan banyak organisasi yang memiliki identitas lokal dan cloud yang berbeda untuk memiliki SSO dari cloud ke aplikasi lokal tanpa mengharuskan pengguna memasukkan nama pengguna dan kata sandi yang berbeda. Ini termasuk organisasi yang:
- Memiliki beberapa domain secara internal (joe@us.contoso.com, joe@eu.contoso.com) dan satu domain di cloud (joe@contoso.com).
- Memiliki nama domain yang tidak dapat dirutekan secara internal (joe@contoso.usa) dan nama domain yang legal di cloud.
- Jangan gunakan nama domain secara internal (joe)
- Gunakan alias yang berbeda di lokal dan di cloud. Misalnya, joe-johns@contoso.com vs. joej@contoso.com
Dengan proksi aplikasi, Anda dapat memilih identitas mana yang akan digunakan untuk mendapatkan tiket Kerberos. Pengaturan ini sesuai aplikasi. Beberapa opsi ini cocok untuk sistem yang tidak menerima format alamat email, yang lain dirancang untuk login alternatif.
Jika identitas proses masuk yang didelegasikan digunakan, nilainya mungkin tidak unik di semua domain atau forest di organisasi Anda. Anda dapat menghindari masalah ini dengan menerbitkan aplikasi ini dua kali menggunakan dua grup Konektor yang berbeda. Karena setiap aplikasi memiliki audiens pengguna yang berbeda, Anda dapat bergabung dengan Konektornya ke domain yang berbeda.
Jika Nama akun SAM lokal digunakan untuk identitas masuk, komputer yang menghosting konektor harus ditambahkan ke domain tempat akun pengguna berada.
Mengonfigurasi SSO untuk identitas yang berbeda
Konfigurasikan pengaturan Microsoft Entra Connect sehingga identitas utamanya adalah alamat email (email). Ini dilakukan sebagai bagian dari proses kustomisasi, dengan mengubah bidang Nama Principal Pengguna di pengaturan sinkronisasi. Pengaturan ini juga menentukan bagaimana pengguna masuk ke Microsoft 365, komputer Windows, dan aplikasi lain yang menggunakan ID Microsoft Entra sebagai penyimpanan identitas mereka.
Dalam pengaturan Konfigurasi Aplikasi untuk aplikasi yang ingin Anda ubah, pilih Identitas Proses Masuk Yang Didelegasikan untuk digunakan:
- Nama Prinsipal Pengguna (misalnya,
joe@contoso.com
) - Nama Prinsipal Pengguna Alternatif (misalnya,
joed@contoso.local
) - Bagian nama pengguna dari Nama Prinsipal Pengguna (misalnya,
joe
) - Bagian nama pengguna dari Nama Prinsipal Pengguna Alternatif (misalnya,
joed
) - Nama akun SAM lokal (tergantung konfigurasi pengontrol domainnya)
- Nama Prinsipal Pengguna (misalnya,
Pemecahan masalah SSO untuk identitas yang berbeda
Jika ada kesalahan dalam proses SSO, itu muncul di log peristiwa mesin konektor seperti yang dijelaskan dalam Pemecahan Masalah. Tetapi, dalam beberapa kasus, permintaan berhasil dikirim ke aplikasi backend, sementara aplikasi ini membalas di berbagai tanggapan HTTP lainnya. Pemecahan masalah kasus ini harus dimulai dengan memeriksa nomor peristiwa 24029 pada komputer konektor di log peristiwa sesi proksi aplikasi. Identitas pengguna yang digunakan untuk delegasi muncul di bidang "pengguna" dalam detail peristiwa. Untuk mengaktifkan log sesi, pilih Perlihatkan log analitik dan debug di menu tampilan penampil peristiwa.