ADFS dan mengandalkan sertifikat penandatanganan token pihak

3

Saya belum cukup memahami mengandalkan fungsi sertifikat penandatanganan token pihak dengan ADFS 2.0 / 3.0. Setelah roll-over sertifikat yang ditandatangani sendiri secara otomatis (secara default), ada skenario di mana Anda harus secara manual memberikan sertifikat penandatanganan token yang baru ke (biasanya) penyedia aplikasi SSO eksternal agar mereka dapat menempatkan sertifikat baru di akhir mereka sehingga SSO akan tetap berfungsi.

Namun, ini bisa terjadi secara otomatis. Yang terbaik yang saya temukan dijelaskan di sini:

AD FS dan sertifikat Penanda-tangan yang ditandatangani sendiri | Kloud Blog

[ADFS] ... dapat secara otomatis memperbarui sertifikat yang ditandatangani sendiri sebelum kedaluwarsa, dan jika kepercayaan pihak yang mengandalkan dikonfigurasi untuk pembaruan metadata federasi otomatis, secara otomatis memberikan kunci publik baru kepada pihak yang mengandalkan. Otomatisasi ini menjadikan layanan federasi pemeliharaan yang rendah dan tangguh karena sertifikat kunci yang digunakan oleh layanan tidak memerlukan perhatian berkala.

Pertanyaannya adalah; bagaimana saya tahu jika kepercayaan pihak yang mengandalkan dikonfigurasi untuk pembaruan metadata federasi otomatis? Apakah ini pengaturan yang sederhana dan sederhana dalam trust ini (terima kasih pencarian gambar Google):

tangkapan layar properti

Jika demikian, bagaimana saya dapat memastikan bahwa pembaruan telah berhasil (selain kemungkinan tanggal 'terakhir diperiksa') dan pihak yang mengandalkan secara otomatis mendapatkan sertifikat baru atau kunci publiknya?

lapingultah
sumber
Ya, pengingat di kalender adalah triknya! Tidak ada biaya!
paullem

Jawaban:

4

Ada beberapa sertifikat dalam trust SAML2 dan federasi WS. Saya akan mengabaikan di sini sertifikat TLS dari https url server (ADFS menyebutnya sertifikat komunikasi).

Setiap pihak dapat memiliki sertifikat penandatanganan. Pesan-pesan yang dikirimkan oleh pihak ditandatangani dengan kunci pribadi sertifikat itu. Pihak SAML2 sering menandatangani permintaan dan tanggapan. Pasif WS-Federation tidak menandatangani permintaan (jadi RP pasif tidak memilikinya). Sertifikat penandatanganan diterbitkan dalam metadata. Selama roll-over bisa ada dua (lama dan baru).

Setiap pihak dapat memiliki sertifikat Enkripsi. Ketika permintaan atau respons dikirim ke suatu pihak dengan sertifikat enkripsi maka kunci publik dari sertifikat itu dapat digunakan untuk mengenkripsi kunci enkripsi. Membuat pesan tidak dapat dibaca untuk semua orang kecuali target. Sertifikat enkripsi diterbitkan dalam metadata. Sebagian besar waktu hanya satu sertifikat enkripsi yang diterbitkan dalam metadata. Tetapi sertifikat lama diterima selama beberapa waktu untuk membuat roll-over mulus.

Roll-over otomatis ADFS keren. Saya sarankan Anda membiarkannya atau menggantinya dengan sertifikat yang ditandatangani sendiri dengan masa berlaku 10 tahun. ADFS akan mengikuti metadata yang diterbitkan oleh mitranya jika ADFS memiliki url untuk metadata mereka.

Mengandalkan pihak di tanah WS-Fed, baca aplikasi Microsoft .NET (juga disebut WIF). Tergantung aplikasi. Aplikasi dapat menerbitkan metadata mereka, yang bagus untuk admin ADFS, karena mereka tidak harus mengetik banyak, kurang dari band-komunikasi salah dll. Menang-menang untuk semua orang. Jadi setiap aplikasi harus menerbitkan metadata-nya. Lebih baik untuk semua orang. Tetapi untuk pihak yang mengandalkan WS-Fed pasif tidak akan ada sertifikat penandatanganan. Mungkin ada sertifikat enkripsi. .NET memiliki kelas untuk membaca dan menghasilkan metadata "per-permintaan" di System.IdentityModel.Metadata. Ada beberapa sampel di Internet. Salah satu contohnya adalah di Thinktecture IdentityServer.

Mengandalkan pihak dapat membaca metadata ADFS. Selalu ada tugas terjadwal yang tersedia. Itu membaca metadata ADFS dan kemudian memperbarui file web.config aplikasi. Saya tidak pernah menggunakannya karena ini memiliki efek samping dari daur ulang kumpulan (bahkan jika tidak ada perubahan) dan itu memang merusak direktori dengan versi lama web.config. Jika Anda memiliki masalah dalam mengkode pembaca atau penulis maka hubungi saya secara off-line. Itu bisa dilakukan untuk aplikasi apa pun (juga untuk SharePoint). Ini masalah biaya, melakukannya secara manual (setahun sekali) atau menulis kode untuk melakukannya secara otomatis.

paullem
sumber
Terima kasih untuk ini - Anda telah merangkum sejumlah konsep dengan baik di sini yang masih saya geluti.
Michael12345
Untuk menambahkan sedikit saja, dalam ADFS metadata ini ditemukan di adfs.yourdomain.com/federationMetadata/2007-06/... Jika Relying Party menggunakan URL ini untuk mengonfigurasi barang-barang mereka, maka itu harus menyinkronkan sertifikat secara otomatis. Tidak ada jaminan mereka tidak akan menyimpannya selamanya, tetapi idealnya ... JIKA pihak yang mengandalkan meminta Anda untuk URL lain atau file sertifikat, maka mereka tidak mendukung pembaruan otomatis.
Daniel
0

ini dapat terjadi secara otomatis.

Lebih dari itu, itu TIDAK terjadi secara otomatis! Sertifikat Anda diperpanjang secara otomatis setiap X hari, X menjadi nilai properti "CertificateRolloverInterval" (atau mungkin "CertificateDuration", saya ragu; jalankan Get-ADFSProperties untuk mengambilnya).

bagaimana saya tahu jika kepercayaan pihak yang mengandalkan dikonfigurasi untuk pembaruan metadata federasi otomatis?

Anda tidak bisa tahu ... Ini tidak dikontrol oleh server ADFS Anda. Itu adalah pihak lain yang memutuskan apakah mereka memeriksa metadata Anda secara teratur atau tidak. Ya, jelas jika Anda mengubah sertifikat Anda, dan SSO Anda rusak, maka Anda tahu bahwa pihak lain tidak memverifikasi ADFS Anda ...

Layar cetak Anda menunjukkan yang sebaliknya, yaitu itu menunjukkan bahwa ANDA sedang memeriksa metadata pihak lain. Jika Anda mengirim layar cetak ini ke pasangan Anda, mereka tahu bahwa mereka dapat mengubah sertifikat mereka "dengan aman".

Catatan akhir: dari pengalaman saya, satu-satunya aplikasi yang memiliki fungsi "pembaruan otomatis" ini adalah ADFS sendiri. Bahkan Sharepoint dan Dynamics CRM tidak memilikinya. Jadi saya merasa itu tidak berguna.

Jadi untuk menyimpulkan, saran saya adalah untuk menonaktifkan properti "AutoCertificateRollover" dari ADFS, dan kelola sertifikat Anda sendiri. Keuntungannya adalah Anda menggunakan sertifikat yang Anda inginkan, dengan tanggal kedaluwarsa yang Anda pilih (untuk lingkungan TEST, atur tanggal kedaluwarsa 50 tahun kemudian, sangat berguna). Dan tulis di kalender Anda pengingat besar untuk memperbarui kepercayaan Anda ketika sertifikat Anda akan segera kedaluwarsa!

Matthieu
sumber