Perbedaan antara SSO yang dimulai oleh SP dan SSO yang dimulai oleh IDP

107

Adakah yang bisa menjelaskan kepada saya apa perbedaan utama antara SSO yang dimulai oleh SP dan SSO yang dimulai oleh IDP , termasuk mana yang akan menjadi solusi yang lebih baik untuk menerapkan sistem masuk tunggal dalam hubungannya dengan Federasi ADFS + OpenAM?

pbhle.dll
sumber
2
Untuk memperjelas bagi siapa pun yang baru mengenal konsep masuk tunggal: SP = penyedia layanan (sistem yang ingin digunakan pengguna) dan IdP = mengidentifikasi penyedia (sistem yang mengautentikasi pengguna)
Seafish

Jawaban:

72

Dalam IDP Init SSO (Unsolicited Web SSO), proses Federasi dimulai oleh IDP yang mengirimkan Tanggapan SAML yang tidak diminta ke SP. Di SP-Init, SP menghasilkan AuthnRequest yang dikirim ke IDP sebagai langkah pertama dalam proses Federasi dan IDP kemudian merespons dengan SAML Response. Dukungan IMHO ADFSv2 untuk SAML2.0 Web SSO SP-Init lebih kuat daripada dukungan IDP-Init re: integrasi dengan produk Fed Pihak ke-3 (kebanyakan berputar di sekitar dukungan untuk RelayState) jadi jika Anda punya pilihan, Anda akan ingin menggunakan SP- Init karena mungkin akan membuat hidup lebih mudah dengan ADFSv2.

Berikut adalah beberapa deskripsi SSO sederhana dari Panduan Memulai PingFederate 8.0 yang dapat Anda lihat dan mungkin juga membantu - https://documentation.pingidentity.com/pingfederate/pf80/index.shtml#gettingStartedGuide/task/idpInitiatedSsoPOST.html

Ian
sumber
81

IDP Memulai SSO

Dari dokumentasi PingFederate: - https://docs.pingidentity.com/bundle/pf_sm_supportedStandards_pf82/page/task/idpInitiatedSsoPOST.html

Dalam skenario ini, pengguna logon ke IdP dan mencoba mengakses sumber daya di server SP jauh. Pernyataan SAML dikirim ke SP melalui HTTP POST.

Langkah Pengolahan:

  1. Seorang pengguna telah masuk ke IdP.
  2. Pengguna meminta akses ke sumber daya SP yang dilindungi. Pengguna tidak masuk ke situs SP.
  3. Secara opsional, IdP mengambil atribut dari penyimpanan data pengguna.
  4. Layanan SSO IdP mengembalikan formulir HTML ke browser dengan respons SAML yang berisi pernyataan autentikasi dan atribut tambahan apa pun. Browser secara otomatis memposting formulir HTML kembali ke SP.

SP Memulai SSO

Dari dokumentasi PingFederate: - http://documentation.pingidentity.com/display/PF610/SP-Initiated+SSO--POST-POST

Dalam skenario ini, pengguna mencoba mengakses sumber yang dilindungi secara langsung di situs Web SP tanpa logon. Pengguna tidak memiliki akun di situs SP, tetapi memiliki akun federasi yang dikelola oleh IdP pihak ketiga. SP mengirimkan permintaan otentikasi ke IdP. Baik permintaan dan pernyataan SAML yang dikembalikan dikirim melalui browser pengguna melalui HTTP POST.

Langkah Pengolahan:

  1. Pengguna meminta akses ke sumber daya SP yang dilindungi. Permintaan diarahkan ke server federasi untuk menangani otentikasi.
  2. Server federasi mengirim kembali formulir HTML ke browser dengan permintaan SAML untuk autentikasi dari IdP. Formulir HTML secara otomatis diposting ke layanan SSO IdP.
  3. Jika pengguna belum masuk ke situs IdP atau jika otentikasi ulang diperlukan, IdP meminta kredensial (misalnya, ID dan kata sandi) dan pengguna masuk.
  4. Informasi tambahan tentang pengguna dapat diambil dari penyimpanan data pengguna untuk disertakan dalam tanggapan SAML. (Atribut ini ditentukan sebelumnya sebagai bagian dari perjanjian federasi antara IdP dan SP)

  5. Layanan SSO IdP mengembalikan formulir HTML ke browser dengan respons SAML yang berisi pernyataan autentikasi dan atribut tambahan apa pun. Browser secara otomatis memposting formulir HTML kembali ke SP. CATATAN: Spesifikasi SAML mengharuskan tanggapan POST ditandatangani secara digital.

  6. (Tidak ditampilkan) Jika tanda tangan dan pernyataan valid, SP membuat sesi untuk pengguna dan mengarahkan browser ke sumber daya target.

pengguna3061250
sumber
1
Re SP Initiated SSO - point 3 di atas mengatakan "Jika pengguna belum masuk ke situs IdP atau jika otentikasi ulang diperlukan, IdP meminta kredensial (misalnya, ID dan kata sandi) dan pengguna logon." Bagaimana sistem menentukan apakah pengguna masuk ke situs IdP? Apakah itu menghasilkan cookie, misalnya?
Edwardo
1
@Edwardo Asumsi Anda benar. Saat sesi dibuat dengan IdP, biasanya IdP menghasilkan cookie untuk mempertahankan sesi itu.
jekennedy
Saya punya pertanyaan lain stackoverflow.com/questions/43861315/… . Bisakah kamu melihatnya?
kawadhiya21
49

SP Memulai SSO

Tagih pengguna: "Hai Jimmy, tunjukkan laporan itu"

Jimmy si SP: "Hei, saya belum yakin siapa kamu. Kami punya proses di sini jadi kamu bisa memverifikasi sendiri dengan Bob IdP dulu. Aku percaya dia."

Bob IdP: "Saya melihat Jimmy mengirim Anda ke sini. Tolong beri saya kredensial Anda."

Tagih pengguna: "Hai, saya Bill. Ini kredensial saya."

Bob si IdP: "Hai Bill. Sepertinya Anda check out."

Bob si IdP: "Hai Jimmy. Orang ini, Bill, memeriksa dan berikut beberapa informasi tambahan tentangnya. Lakukan apa pun yang Anda inginkan dari sini."

Jimmy si SP: "Oke, keren. Sepertinya Bill juga ada dalam daftar tamu kita yang dikenal. Aku akan mengizinkan Bill masuk."

IdP Memulai SSO

Tagih pengguna: "Hai Bob. Saya ingin pergi ke tempat Jimmy. Keamanan ketat di sana."

Bob si IdP: "Hai Jimmy. Saya percaya Bill. Dia memeriksa dan berikut beberapa informasi tambahan tentangnya. Lakukan apa pun yang Anda inginkan dari sini."

Jimmy si SP: "Oke, keren. Sepertinya Bill juga ada dalam daftar tamu kita yang dikenal. Aku akan mengizinkan Bill masuk."


Saya membahas lebih detail di sini, tetapi tetap menjaga hal-hal sederhana: https://jorgecolonconsulting.com/saml-sso-in-simple-terms/ .

2upmedia
sumber
33
Saya rasa percakapan kedua tidak benar .... sebaliknya seharusnya: IdP: "Hei, ini beberapa info tentang Sal, tolong biarkan dia masuk" / SP: "Oke, saya percaya kamu, saya akan membiarkannya dalam "
Jeff Olson
4
percakapan pertama juga tidak benar: pada langkah pertama SP belum tahu apa-apa tentang pengguna mana, hanya di IdP pengguna akan masuk dan mengidentifikasi dirinya sebagai "Sal"
Allie
4
Percakapan pertama seharusnya: SP: "Hei, di mana ID Anda?" IdP: "Tunggu sebentar, saya akan memeriksanya. Coba saya lihat ID Anda. Ok bro biarkan dia masuk, dia bernama Sal dan dia 21 (opsional)" SP: "Keren bung, kamu hebat! Hei kamu, ayo masuk ! "
Erdal G.
3
Saya percaya bahwa jawaban ini tidak pantas mendapatkan suara rendah yang didapatnya. Ini menjawab pertanyaan dengan cara yang kreatif, mungkin tidak seakurat seperti yang ditunjukkan beberapa orang, tetapi kreatif bukan kurang.
Aaron C
2
Menarik untuk melihat jawaban yang benar dalam format ini. Mata saya berkaca-kaca saat membaca jawaban yang dipilih dengan baik, format ini membantu menangkap konsep umum dengan sangat cepat. Saya tidak cukup tahu untuk dengan percaya diri membuat jawaban berdasarkan komentar saya sendiri.
Sean Connolly