AppModelV2: cara membuat pengguna masuk secara otomatis menggunakan Azure

Saya mencoba model baru untuk autentikasi aplikasi terpadu menggunakan paspor-azurea-ad dari referensi ini https://docs.microsoft.com/en-us/azure/active-directory/active-directory-v2-devquickstarts-node-web

Integrasi berhasil, tetapi setiap kali saya login, saya diarahkan ke halaman tempat saya dapat memilih akun Microsoft yang ada atau menambahkan akun baru. Mengapa sesi atau akun tidak diambil secara otomatis, jika pengguna sudah masuk ke akun Azure atau Microsoft miliknya? Persyaratan saya adalah sesi pengguna harus diambil secara otomatis (bukan untuk pertama kalinya ketika dia memberikan persetujuan) jika dia masuk ke akun Azure atau akun mikrososftnyamasukkan deskripsi gambar di sini

halaman ini perlu dihindari, jika dia sudah masuk


person Shakthi    schedule 28.11.2016    source sumber


Jawaban (1)


Alasannya adalah keterbatasan teknis. Izinkan saya melihat apakah saya dapat menjelaskan secara singkat:

  • Ketika permintaan datang ke titik akhir v2 (login.microsoftonline.com), titik akhir v2 tidak dapat mendeteksi keberadaan sesi akun konsumen yang ada (login.live.com).
  • Oleh karena itu, titik akhir v2 harus membuat kueri (melalui iframe yang dihosting di halaman login.microsoftonline.com) ke login.live.com untuk mendeteksi apakah sesi konsumen ada atau tidak.
  • Jika ada sesi konsumen, titik akhir v2 akan menampilkan layar 'pemilihan akun' kepada pengguna, seperti yang Anda gambarkan dalam pertanyaan.
  • Jika sesi konsumen tidak ada, dan pengguna hanya memiliki satu sesi bisnis, pengguna dapat login otomatis dengan akun bisnis tersebut. Namun, saat ini pengguna mungkin sudah menunggu sekitar satu detik hingga kueri login.live.com selesai. Ini mungkin merupakan pengalaman pengguna yang aneh jika halaman selesai secara otomatis setelah satu detik.

Titik akhir v2 pasti dapat menampilkan pemutar pemuatan atau sesuatu yang menahan pengguna hingga keputusan dapat dibuat, namun diputuskan bahwa meminta pengguna mengeklik ubin adalah alternatif yang dapat diterima.

person dstrockis    schedule 28.11.2016
comment
@dstrockis Aplikasi yang memerlukan autentikasi dapat mengirimkan nama pengguna terakhir yang diketahui ke titik akhir v2 sebagai param (meskipun itu akun konsumen atau bukan) dan titik akhir dapat terlebih dahulu mencoba menentukan apakah pengguna tersebut memiliki sesi aktif dan masuk otomatis. Apakah ini merupakan alternatif yang layak? - person Sameera; 29.11.2016
comment
Ya! Coba gunakan parameter kueri &login_hint=. Itu harus memiliki perilaku yang persis seperti yang Anda gambarkan - person dstrockis; 29.11.2016
comment
Saya juga harus menambahkan bahwa jika Anda menggunakan titik akhir /consumers atau /organizations, SSO akan otomatis terjadi ketika satu akun masuk. - person dstrockis; 29.11.2016
comment
@dstockis - jika pemahaman saya benar login_hint hanya akan mengisi email terlebih dahulu tetapi tidak mengambil akun dan login otomatis bukan? dan untuk login otomatis jika saya menggunakan parameter kueri prompt: tidak ada, masih menampilkan halaman pilihan untuk berbagai akun. Bisakah Anda menjelaskan hal ini. Berdasarkan docs.microsoft. com/en-us/azure/active-directory/ - person Shakthi; 30.11.2016