Apa itu ADFS (Layanan Federasi Direktori Aktif)?

77

Jadi saya sudah diberitahu bahwa aplikasi PHP kami mungkin perlu mendukung otentikasi menggunakan ADFS.

  1. Untuk orang yang bukan Microsoft, apa itu ADFS?

  2. Apa bedanya dengan hal-hal seperti LDAP?

  3. Bagaimana cara kerjanya? Informasi apa yang akan dimasukkan dalam permintaan tipikal ke server ADFS? Apakah ini dirancang untuk otentikasi dan otorisasi?

  4. Apakah server ADFS biasanya dapat diakses dari internet (sedangkan pengontrol domain AD perusahaan tidak akan)?

Saya sudah mencoba membaca beberapa dokumen Technet, tetapi penuh dengan Microsoft-talk yang tidak terlalu membantu.

Wikipedia lebih baik (lihat di bawah), tetapi mungkin beberapa komunitas ServerFault dapat mengisi beberapa celah.

Active Directory Federation Services (ADFS) adalah komponen perangkat lunak yang dikembangkan oleh Microsoft yang dapat diinstal pada sistem operasi Windows Server untuk memberikan pengguna akses masuk tunggal ke sistem dan aplikasi yang terletak melintasi batas organisasi. Ini menggunakan model otorisasi kontrol akses berbasis klaim untuk menjaga keamanan aplikasi dan mengimplementasikan identitas gabungan.

Otentikasi berbasis klaim adalah proses otentikasi pengguna berdasarkan serangkaian klaim tentang identitasnya yang terkandung dalam token tepercaya.

Di ADFS, federasi identitas dibentuk antara dua organisasi dengan membangun kepercayaan antara dua bidang keamanan. Server federasi di satu sisi (sisi Akun) mengautentikasi pengguna melalui cara standar dalam Layanan Domain Direktori Aktif dan kemudian mengeluarkan token yang berisi serangkaian klaim tentang pengguna, termasuk identitasnya. Di sisi lain, sisi Sumber Daya, server federasi lain memvalidasi token dan mengeluarkan token lain untuk server lokal untuk menerima identitas yang diklaim. Ini memungkinkan suatu sistem untuk menyediakan akses terkontrol ke sumber daya atau layanannya kepada pengguna yang termasuk dalam bidang keamanan lain tanpa mengharuskan pengguna untuk mengotentikasi langsung ke sistem dan tanpa dua sistem yang berbagi database identitas pengguna atau kata sandi.

Dalam praktiknya pendekatan ini biasanya dirasakan oleh pengguna sebagai berikut:

  1. Pengguna login ke PC lokal mereka (seperti biasanya ketika mulai bekerja di pagi hari)
  2. Pengguna perlu mendapatkan informasi di situs web ekstranet perusahaan mitra - misalnya untuk mendapatkan harga atau detail produk
  3. Pengguna menavigasi ke situs ekstranet perusahaan mitra - misalnya: http://example.com
  4. Situs web mitra sekarang tidak memerlukan kata sandi apa pun untuk diketikkan - sebagai gantinya, kredensial pengguna diteruskan ke situs ekstranet mitra menggunakan AD FS
  5. Pengguna sekarang masuk ke situs web mitra dan dapat berinteraksi dengan situs web 'masuk'

Dari https://en.wikipedia.org/wiki/Active_Directory_Federation_Services

Simon Timur
sumber
Saya menemukan ini artikel dan video ini membantu dalam memberikan gambaran.
Simon East
Reaces memberikan jawaban yang sangat bagus. Satu-satunya informasi tambahan yang akan saya tambahkan adalah mungkin perlu untuk memahami protokol WS-Federation dan Security Markert Language (SAML) yang merupakan standar yang diterapkan ADFS. Berikut adalah beberapa video yang saya temukan berguna dalam memahami konsep-konsep (sangat kompleks) ini. Sayangnya mereka mengandung begitu banyak materi sehingga saya tidak bisa memasukkannya di sini. ! [Thumbnail video Memahami SAML dan Single Sign-On 101 di YouTube] ( youtube.com/watch?v=gUmMcecHN9s ) [! [Thumbnail video] (http
Simon East
Saya juga kesulitan memahami ADFS. Saya membutuhkan penjelasan dari awal (saya bukan orang AD). Video ini yang termasuk dalam seri yang disebutkan dalam komentar di sini, sangat membantu saya. Di sinilah setiap orang baru, nol-pengalaman dengan ADFS harus memulai dan kemudian melanjutkan dengan sisa video dalam seri. Saya harap ini membantu. youtube.com/…
Mauricio Zaragoza
1
Maaf teman-teman, moderator menghapus jawaban saya dengan video bermanfaat dan menjadikannya komentar di atas, tetapi itu sekarang rusak. Membuat frustrasi.
Simon East

Jawaban:

97

Untuk orang yang bukan Microsoft, apa itu ADFS?

ADFS adalah solusi Microsoft untuk Single Sign On dan otentikasi berbasis web.

Ini digunakan terutama untuk memberikan satu set kredensial yang dapat mengakses berbagai situs yang tidak dihosting dalam domain yang sama.

Apa bedanya dengan hal-hal seperti LDAP?

LDAP:

  • Berkomunikasi menggunakan TCP / UDP pada port 389 (atau port 636 untuk LDAPS)
  • Berisi perintah untuk mencari / mengambil / menambah / menghapus / memodifikasi pengguna, profil, dan entri direktori lainnya
  • Bisa tidak dilakukan langsung oleh web browser, namun otentikasi HTTP dapat diterjemahkan ke LDAP menggunakan hal-hal seperti Apache mod_authnz_ldap.
  • Ketika digunakan untuk otentikasi situs web pihak ketiga, mengharuskan nama pengguna & kata sandi diberikan kepada pihak ketiga, yang tidak ideal untuk keamanan.
  • Lebih merupakan standar terbuka dan memiliki banyak implementasi Linux.

ADFS:

  • Dirancang lebih baik untuk web saat berkomunikasi melalui HTTPS standar
  • Mengikuti proses yang lebih aman serupa (tetapi tidak persis) dengan OAuth di mana nama pengguna / kata sandi asli diberikan langsung ke server ADFS organisasi (atau proxy, tetapi bukan pihak ketiga), yang jika valid, mengembalikan token unik yang dapat digunakan untuk mengakses situs web pihak ketiga.
  • Meskipun memang menggunakan beberapa standar terbuka (HTTPS, SAML dll.) Itu adalah Microsoft-spesifik dan memerlukan Layanan Informasi Internet (IIS) yang hanya berjalan pada Server Windows.

Lihat juga jawaban ini pada subjek.

Bagaimana cara kerjanya? Informasi apa yang akan dimasukkan dalam permintaan tipikal ke server ADFS? Apakah ini dirancang untuk otentikasi dan otorisasi?

Ini berfungsi dengan memiliki satu situs (situs A) yang menampung server proxy ADFS / ADFS, yang memiliki akses ke kredensial (biasanya dengan berkomunikasi dengan Pengendali Domain Direktori Aktif). Ini kemudian diberi kepercayaan antara situs lain (situs B & C) yang membutuhkan otentikasi melalui ADFS.

Ketika pengguna mencoba mengakses situs B di browser mereka, situs mengarahkan pengguna ke situs web proxy ADFS (situs A) yang meminta nama pengguna & kata sandi, mengautentikasi mereka, mengembalikan seperangkat cookie untuk mengingatnya, dan mengarahkan ulang mereka kembali ke situs B, bersama dengan token akses.

Jika pengguna kemudian mencoba mengunjungi situs C, mereka juga akan diarahkan ke situs A untuk otentikasi dari situs web proxy-ADFS. Jika ada cookie yang tepat, pengguna tidak akan diminta untuk memasukkan kata sandi mereka lagi, tetapi akan langsung diarahkan kembali ke situs C dengan token.

ADFS dapat dikonfigurasi dengan klaim (atau izin) khusus untuk pengguna, untuk tujuan otorisasi. Sehingga bisa melayani kedua peran. (Perhatikan perbedaan antara otentikasi dan otorisasi .)

Beberapa orang memilih untuk tidak menggunakannya untuk otorisasi tetapi alih-alih mempertahankan manajemen izin di situs web pihak ketiga. Kelemahan yang jelas adalah bahwa kedua situs A & B perlu melacak akun pengguna, sedangkan dalam skenario di mana ADFS menangani keduanya, hanya ADFS yang perlu mengetahui pengguna.

Apakah server ADFS biasanya dapat diakses dari internet (sedangkan pengontrol domain AD perusahaan tidak akan)?

Ya, hampir selalu. ADFS didasarkan pada gagasan bahwa itu akan terutama digunakan untuk otentikasi situs web. Dan dibangun di sekitar IIS.

Situs ADFS-proxy adalah yang biasanya dapat diakses dari internet. Namun ADFS itu sendiri tidak. ADFS umumnya merupakan server terpisah dari proxy-ADFS.

  • ADFS Server
    Server yang menautkan ke kredensial, dan memiliki konfigurasi klaim serta trust. Umumnya tidak dapat diakses secara publik.
  • ADFS Proxy Server
    Server yang meng-host instance IIS yang memiliki halaman login untuk situs web yang memerlukan otentikasi. Berkomunikasi kembali ke ADFS saat membutuhkan otentikasi. Secara umum dapat diakses oleh publik.
Reaces
sumber
11
Untuk mengklarifikasi: ADFS Proxy Server harus berjalan di IIS (Windows). Namun, situs web klien (B & C) dapat menjalankan OS dan server web apa pun, termasuk Linux.
Olli
Sangat membantu, baru saja membuat akun untuk mengacuhkan ini.
Juan
Memperluas jawaban @Reaces ', ADFS 4.0 pada Windows Server 2016 sepenuhnya mendukung OAuth / OpenId Connect.
Mohammad Reza Sadreddini
@MohammadRezaSadreddini Jangan ragu untuk mengedit jawaban untuk memperluasnya.
Reaces