Penyedia sesi akses menyeluruh di Azure Active Directory B2C
Dalam artikel Konfigurasikan perilaku sesi di Azure Active Directory B2C, kami menjelaskan manajemen sesi untuk kebijakan kustom B2C Azure AD Anda. Artikel ini menjelaskan cara mengonfigurasi lebih lanjut akses menyeluruh (SSO) dari setiap profil teknis individual dalam kebijakan kustom Anda.
Misalnya, Anda mengonfigurasi kebijakan untuk SSO di seluruh penyewa, tetapi Anda ingin selalu melakukan langkah multifaktor terlepas dari sesi SSO yang aktif. Anda dapat mencapai perilaku ini dengan mengonfigurasi penyedia sesi profil teknis multifaktor.
Anda dapat menerapkan penyedia sesi ke dua alur:
- Masuk dari awal
- Saat pengguna masuk untuk pertama kalinya, tidak ada sesi. Setiap profil teknis yang menggunakan penyedia sesi menjadi peserta sesi.
- Penyedia sesi dapat menulis klaim ke cookie sesi.
- Masuk berikutnya
- Ketika pengguna memiliki sesi aktif, klaim yang merupakan bagian dari cookie sesi dibacakan ke dalam tas klaim.
- Klaim yang merupakan bagian dari cookie sesi tidak dapat diperbarui.
- Penyedia sesi dapat mengeluarkan klaim tambahan ke dalam tas klaim, menunjukkan bahwa profil teknis ini dijalankan dalam kondisi SSO.
- Profil teknis dapat dilewati.
Bergantung pada penyedia manajemen sesi yang dipilih untuk profil teknis tertentu, perilaku sesi dapat aktif atau ditekan. Daftar berikut menyajikan beberapa dari banyak contoh yang mungkin menggunakan penyedia sesi:
- Mencegah atau melaksanakan interupsi antarmuka pengguna selama masuk berikutnya (SSO).
- Harap ingat penyedia identitas yang dipilih selama logon berikutnya (SSO).
- Kurangi jumlah operasi baca ke direktori selama logon berikutnya (SSO).
- Lacak sesi penyedia identitas sosial untuk keluar dari penyedia identitas.
- Lacak aplikasi pihak yang mengandalkan login untuk sign-out tunggal.
Penyedia sesi
Ada lima penyedia sesi yang tersedia untuk mengelola bagaimana profil teknis menangani sesi SSO. Anda harus memilih penyedia sesi yang paling tepat saat mengonfigurasi profil teknis Anda.
Tabel berikut menunjukkan penyedia sesi mana yang akan digunakan tergantung pada jenis profil teknis yang ingin Anda kelola. Beberapa penyedia sesi mengizinkan klaim membaca dan menulis untuk cookie sesi.
Penyedia sesi | Jenis profil teknis yang berlaku | Tujuan | Tulis klaim | Baca klaim |
---|---|---|---|---|
DefaultSSOSessionProvider | Dinyatakan sendiri, ID Microsoft Entra, autentikasi multifaktor Microsoft Entra, Transformasi klaim | Lewati eksekusi profil teknis. | Ya | Ya |
ExternalLoginSSOSessionProvider | Penyedia identitas OAuth1, Penyedia identitas Oauth2, Penyedia identitas Koneksi OpenID, penyedia identitas SAML | Percepat halaman pemilihan penyedia identitas. Melakukan single-logout. | Ya | Ya |
OAuthSSOSessionProvider | Penerbit token JWT | Mengelola sesi antara OAuth2 atau OpenId Koneksi mengandalkan pihak dan Azure AD B2C. Melakukan single-logout. | Tidak | Tidak |
SamlSSOSessionProvider | Penerbit token SAML | Mengelola sesi antara pihak yang mengandalkan SAML dan Azure AD B2C. Melakukan single-logout. | Tidak | Tidak |
NoopSSOSessionProvider | Mana pun | Tekan profil teknis apa pun agar tidak menjadi bagian dari sesi. | Tidak | Tidak |
Diagram berikut menunjukkan jenis sesi yang digunakan oleh Azure AD B2C.
Mereferensikan penyedia sesi
Untuk menggunakan penyedia sesi di profil teknis Anda:
Buat profil teknis manajemen sesi yang sesuai. Perhatikan, paket awal Azure AD B2C menyertakan profil teknis manajemen sesi yang paling umum. Anda dapat mereferensikan profil teknis manajemen sesi yang ada jika berlaku.
Cuplikan XML berikut menunjukkan profil teknis manajemen sesi paket awal
SM-AAD
. Sesi yang disediakan adalah jenisDefaultSSOSessionProvider
.<TechnicalProfile Id="SM-AAD"> <DisplayName>Session Mananagement Provider</DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.DefaultSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> <PersistedClaims> <PersistedClaim ClaimTypeReferenceId="objectId" /> <PersistedClaim ClaimTypeReferenceId="signInName" /> <PersistedClaim ClaimTypeReferenceId="authenticationSource" /> <PersistedClaim ClaimTypeReferenceId="identityProvider" /> <PersistedClaim ClaimTypeReferenceId="newUser" /> <PersistedClaim ClaimTypeReferenceId="executed-SelfAsserted-Input" /> </PersistedClaims> <OutputClaims> <OutputClaim ClaimTypeReferenceId="objectIdFromSession" DefaultValue="true" /> </OutputClaims> </TechnicalProfile>
Referensikan profil teknis manajemen sesi dalam profil teknis Anda. Dengan demikian, Anda mengontrol perilaku profil teknis itu selama masuk berikutnya (SSO).
Untuk mereferensikan profil teknis manajemen sesi dari profil teknis Anda, tambahkan elemen
UseTechnicalProfileForSessionManagement
. Contoh berikut menunjukkan penggunaanSM-AAD
profil teknis manajemen sesi. UbahReferenceId
ke ID profil teknis manajemen sesi Anda.<TechnicalProfile Id="{Technical-profile-ID}"> ... <UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" /> </TechnicalProfile>
Penting
Ketika profil teknis tidak mereferensikan penyedia manajemen sesi apa pun, penyedia sesi DefaultSSOSessionProvider diterapkan, yang dapat menyebabkan perilaku tak terduga.
Catatan
Selama penyegaran aliran token, penyedia manajemen sesi tidak dipanggil. Semua upaya untuk mengeluarkan token akses baru adalah salinan dari klaim asli yang dikeluarkan.
Mengelola klaim sesi
Kontrol profil teknis manajemen sesi yang mengklaim dapat dibaca, ditulis atau dikeluarkan selama eksekusi kebijakan kustom.
Dalam profil teknis manajemen sesi, gunakan PersistedClaims
dan OutputClaims
elemen untuk mengelola klaim.
- Klaim yang bertahan - Klaim yang dapat ditulis ke cookie sesi.
- Untuk klaim yang akan ditulis ke dalam cookie sesi, harus menjadi bagian dari tas klaim saat ini.
- Semua klaim yang ditulis secara otomatis kembali selama masuk berikutnya (akses menyeluruh). Anda tidak perlu menentukan klaim output.
- Klaim output - Klaim tambahan yang dapat output ke tas klaim selama masuk berikutnya (akses menyeluruh). Karena klaim output tidak dikembalikan dari sesi, Anda harus menetapkan nilai default.
Elemen klaim yang bertahan dan output ditunjukkan dalam cuplikan XML berikut:
<TechnicalProfile Id="SM-AAD">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.DefaultSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="objectId" />
</PersistedClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="objectIdFromSession" DefaultValue="true"/>
</OutputClaims>
</TechnicalProfile>
Penyedia pengelolaan sesi DefaultSSOSessionProvider
dan ExternalLoginSSOSessionProvider
dapat dikonfigurasi untuk mengelola klaim, sehingga selama:
- Masuk dari awal
- Elemen
PersistedClaims
akan menulis klaim ke dalam cookie sesi. Klaim yang bertahan tidak dapat ditulis ulang.
- Elemen
- Masuk berikutnya
- Setiap klaim yang ditulis ke cookie sesi, akan dihasilkan ke dalam tas klaim, tersedia untuk digunakan dalam langkah orkestrasi berikutnya.
- Elemen
OutputClaims
akan mengeluarkan klaim statis ke dalam tas klaim. Gunakan atributDefaultValue
untuk mengatur nilai klaim output.
DefaultSSOSessionProvider
Penyedia sesi DefaultSSOSessionProvider
dapat dikonfigurasi untuk mengelola klaim selama masuk berikutnya (akses menyeluruh), dan memungkinkan profil teknis untuk dilewati. DefaultSSOSessionProvider
harus digunakan untuk bertahan dan mengeluarkan klaim yang diperlukan oleh langkah orkestrasi berikutnya yang tidak akan diperoleh sebaliknya selama masuk berikutnya (akses menyeluruh). Misalnya, klaim yang mungkin diperoleh dari membaca objek pengguna dari direktori.
Profil teknis berikut SM-AAD
adalah jenis DefaultSSOSessionProvider
penyedia sesi. Profil SM-AAD
teknis dapat ditemukan di paket kebijakan pemula .
<TechnicalProfile Id="SM-AAD">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.DefaultSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="objectId" />
<PersistedClaim ClaimTypeReferenceId="signInName" />
<PersistedClaim ClaimTypeReferenceId="authenticationSource" />
<PersistedClaim ClaimTypeReferenceId="identityProvider" />
<PersistedClaim ClaimTypeReferenceId="newUser" />
<PersistedClaim ClaimTypeReferenceId="executed-SelfAsserted-Input" />
</PersistedClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="objectIdFromSession" DefaultValue="true"/>
</OutputClaims>
</TechnicalProfile>
Misalnya, SM-AAD
profil teknis manajemen sesi menggunakan DefaultSSOSessionProvider
penyedia sesi. Ini akan berlaku sebagai berikut bila diterapkan pada SelfAsserted-LocalAccountSignin-Email
profil teknis dari paket kebijakan pemula :
- Masuk dari awal
signInName
akan ditulis ke dalam cookie sesi, karena profil teknis manajemen sesi (SM-AAD) dikonfigurasi dengansignInName
untuk dipertahankan, dan profil teknis yang merujuk SM-AAD berisiOutputClaim
untuksignInName
. Perilaku ini berlaku untuk semua klaim yang memenuhi pola ini.
- Masuk berikutnya
- Profil teknis dilewati dan pengguna tidak akan melihat halaman masuk.
- Tas klaim akan berisi
signInName
nilai dari cookie sesi, yang bertahan pada masuk baru, dan klaim lain yang memenuhi pola untuk bertahan ke dalam cookie sesi. - Profil teknis manajemen sesi mengembalikan
objectIdFromSession
klaim karenaOutput
klaim penyedia sesi diproses selama logon berikutnya (akses menyeluruh). Dalam hal ini,objectIdFromSession
klaim yang ada di tas klaim, menunjukkan bahwa klaim pengguna berasal dari cookie sesi karena akses menyeluruh.
ExternalLoginSSOSessionProvider
Penyedia sesi ExternalLoginSSOSessionProvider
digunakan untuk melompati layar "pilihan penyedia identitas" dan keluar dari penyedia identitas gabungan. Biasanya dirujuk dalam profil teknis yang dikonfigurasi untuk idP federasi, seperti Facebook atau ID Microsoft Entra.
- Masuk dari awal
- Elemen
PersistedClaims
akan menulis klaim ke dalam cookie sesi. Klaim yang bertahan tidak dapat ditulis ulang.
- Elemen
- Masuk berikutnya
- Setiap klaim yang ditulis untuk cookie sesi, akan dihasilkan ke dalam tas klaim, tersedia untuk digunakan dalam langkah orkestrasi berikutnya.
- Elemen
OutputClaims
akan mengeluarkan klaim statis ke dalam tas klaim. Gunakan atributDefaultValue
yang mengatur nilai klaim. - Ketika profil teknis, yang mereferensikan profil teknis manajemen sesi, berisi
OutputClaim
, yang telah dipertahankan ke dalam cookie sesi, maka profil teknis ini akan dilewati.
Profil teknis berikut SM-SocialLogin
adalah jenis ExternalLoginSSOSessionProvider
penyedia sesi. Profil SM-SocialLogin
teknis dapat ditemukan di paket kebijakan pemula .
<TechnicalProfile Id="SM-SocialLogin">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.ExternalLoginSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="AlternativeSecurityId" />
</PersistedClaims>
</TechnicalProfile>
Klaim AlternativeSecurityId
dihasilkan saat pengguna masuk dengan penyedia identitas eksternal. Mewakili pengenal unik pengguna penyedia identitas eksternal. Klaim AlternativeSecurityId
tersebut tetap demikian sehingga pada tanda tunggal dalam perjalanan, profil pengguna dapat dibaca dari direktori tanpa interaksi dengan penyedia identitas federasi.
Untuk konfigurasikan penyedia sesi eksternal, tambahkan referensi ke SM-SocialLogin
dari profil teknis OAuth1, OAuth2, atau OpenID Connect Anda. Misalnya, Facebook-OAUTH
menggunakan SM-SocialLogin
profil teknis pengelolaan sesi. Untuk informasi selengkapnya, lihat paket kebijakan pemula.
<TechnicalProfile Id="Facebook-OAUTH">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
</TechnicalProfile>
OAuthSSOSessionProvider
Penyedia sesi OAuthSSOSessionProvider
digunakan untuk mengelola sesi Azure AD B2C antara pihak yang mengandalkan OAuth2 atau OpenId Connect dan Azure AD B2C. Azure AD B2C mendukung Single sign-out, juga dikenal sebagai Single Log-Out (SLO). Saat pengguna keluar melalui titik akhir keluar Azure AD B2C, Azure AD B2C akan menghapus cookie sesi pengguna dari browser. Namun, pengguna mungkin masih masuk ke aplikasi lain yang menggunakan Azure AD B2C untuk autentikasi.
Jenis penyedia sesi ini memungkinkan Azure AD B2C melacak semua aplikasi OAuth2 atau OpenId Connect yang digunakan pengguna untuk masuk. Selama keluar dari satu aplikasi, Azure AD B2C akan mencoba memanggil logout
titik akhir dari semua aplikasi masuk lainnya yang diketahui. Fungsi ini dibangun untuk penyedia sesi. Tidak ada klaim bertahan atau output yang tersedia untuk dikonfigurasi. Profil teknis berikut SM-jwt-issuer
adalah jenis OAuthSSOSessionProvider
penyedia sesi.
<TechnicalProfile Id="SM-jwt-issuer">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.OAuthSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</TechnicalProfile>
Profil teknis SM-jwt-issuer
dirujuk dari JwtIssuer
profil teknis:
<TechnicalProfile Id="JwtIssuer">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-jwt-issuer" />
</TechnicalProfile>
SamlSSOSessionProvider
Penyedia sesi SamlSSOSessionProvider
digunakan untuk mengelola perilaku sesi dengan penyedia identitas SAML gabungan atau aplikasi pihak yang mengandalkan SAML dan Azure AD B2C.
Manajemen sesi penyedia identitas SAML
Saat Anda mereferensikan penyedia sesi SamlSSOSessionProvider
dari sesi penyedia identitas SAML, RegisterServiceProviders
harus diatur ke false
.
Profil teknis SM-Saml-idp
berikut adalah jenis SamlSSOSessionProvider
penyedia sesi:
<TechnicalProfile Id="SM-Saml-idp">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="RegisterServiceProviders">false</Item>
</Metadata>
</TechnicalProfile>
Untuk menggunakan SM-Saml-idp
profil teknis pengelolaan sesi, tambahkan referensi ke profil teknis penyedia identitas SAML Anda. Misalnya, IdP Contoso-SAML2
SAML AD-FS menggunakan SM-Saml-idp
profil teknis manajemen sesi.
<TechnicalProfile Id="Contoso-SAML2">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-idp" />
</TechnicalProfile>
Manajemen sesi penyedia layanan SAML
Saat mereferensikan penyedia sesi SamlSSOSessionProvider
untuk mengelola sesi pihak yang mengandalkan SAML, RegisterServiceProviders
harus disetel ke true
. Keluar dari sesi SAML memerlukan SessionIndex
dan NameID
untuk diselesaikan.
Profil teknis SM-Saml-issuer
berikut adalah jenis SamlSSOSessionProvider
penyedia sesi:
<TechnicalProfile Id="SM-Saml-issuer">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</TechnicalProfile>
Untuk menggunakan SM-Saml-issuer
profil teknis pengelolaan sesi, tambahkan referensi ke profil teknis penerbit token SAML Anda. Misalnya, Saml2AssertionIssuer
profil teknis manajemen sesi menggunakan SM-Saml-issuer
penyedia sesi.
<TechnicalProfile Id="Saml2AssertionIssuer">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-issuer" />
</TechnicalProfile>
Metadata
Atribut | Wajib | Deskripsi |
---|---|---|
IncludeSessionIndex | No | Saat ini tidak digunakan, dapat diabaikan. |
RegisterServiceProviders | No | Menunjukkan bahwa penyedia harus mendaftarkan semua penyedia layanan SAML yang telah mengeluarkan pernyataan. Nilai yang mungkin: true (default), atau false . |
NoopSSOSessionProvider
Penyedia sesi NoopSSOSessionProvider
digunakan untuk menekan perilaku akses menyeluruh. Profil teknis yang menggunakan jenis penyedia sesi ini akan selalu diproses, bahkan saat pengguna memiliki sesi yang aktif. Jenis penyedia sesi ini dapat berguna untuk memaksa profil teknis tertentu untuk selalu berjalan, misalnya:
- Transformasi klaim - Untuk membuat, atau mengubah klaim yang nantinya digunakan untuk menentukan langkah orkestrasi mana yang akan diproses atau dilewati.
- Restful - Ambil data yang diperbarui dari layanan Restful setiap kali kebijakan dijalankan. Anda juga dapat menggunakan Restful untuk logging dan audit yang diperpanjang.
- Self-asserted - Memaksa pengguna untuk memberikan data setiap kali kebijakan berjalan. Misalnya, verifikasi email dengan kode sandi satu kali, atau minta persetujuan pengguna.
- Phonefactor - Memaksa pengguna untuk melakukan autentikasi multifaktor sebagai bagian dari "meningkatkan autentikasi" bahkan selama masuk berikutnya (akses menyeluruh).
Jenis penyedia sesi ini tidak mempertahankan klaim ke cookie sesi pengguna. Profil teknis berikut SM-Noop
adalah jenis NoopSSOSessionProvider
penyedia sesi. Profil SM-Noop
teknis dapat ditemukan di paket kebijakan pemula .
<TechnicalProfile Id="SM-Noop">
<DisplayName>Noop Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.NoopSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</TechnicalProfile>
Untuk menekan tanda tunggal pada perilaku profil teknis, tambahkan referensi ke SM-Noop
profil teknis. Misalnya, AAD-Common
menggunakan SM-Noop
profil teknis pengelolaan sesi. Untuk informasi selengkapnya, lihat paket kebijakan pemula.
<TechnicalProfile Id="AAD-Common">
...
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
Langkah berikutnya
Pelajari bagaimana cara mengonfigurasi perilaku sesi.