Topik ini menjelaskan sintaksis respons Security Assertion Markup Language (SAML) untuk single sign-on (SSO) berbasis pengguna serta elemen-elemen dalam pernyataan SAML yang terdapat dalam respons tersebut.
Informasi latar belakang
Dalam proses SSO berbasis SAML 2.0, setelah identitas pengguna diverifikasi, penyedia identitas (IdP) menghasilkan respons otentikasi dan mengirimkannya ke Alibaba Cloud melalui browser atau program. Respons ini berisi pernyataan SAML yang mematuhi spesifikasi HTTP POST binding dalam SAML 2.0. Alibaba Cloud menggunakan pernyataan SAML tersebut untuk menentukan status logon dan identitas pengguna. Oleh karena itu, pernyataan SAML harus mencakup elemen-elemen yang diperlukan oleh Alibaba Cloud; jika tidak, SSO akan gagal.
Respons SAML
Pastikan setiap respons SAML yang dikirim oleh IdP Anda ke Alibaba Cloud mencakup elemen-elemen berikut. Jika tidak, SSO akan gagal.
<saml2p:Response>
<saml2:Issuer>...</saml2:Issuer>
<saml2p:Status>
...
</saml2p:Status>
<saml2:Assertion>
<saml2:Issuer>...</saml2:Issuer>
<ds:Signature>
...
</ds:Signature>
<saml2:Subject>
<saml2:NameID>${NameID}</saml2:NameID>
<saml2:SubjectConfirmation>
...
</saml2:SubjectConfirmation>
</saml2:Subject>
<saml2:Conditions>
<saml2:AudienceRestriction>
<saml2:Audience>${Audience}</saml2:Audience>
</saml2:AudienceRestriction>
</saml2:Conditions>
<saml2:AuthnStatement>
...
</saml2:AuthnStatement>
</saml2:Assertion>
</saml2p:Response>Elemen dalam pernyataan SAML
Common elements in SAML 2.0
Untuk informasi lebih lanjut tentang SAML 2.0, lihat SAML 2.0.
Elemen
Deskripsi
IssuerNilai elemen
Issuerharus sesuai denganEntityIDdalam file metadata yang Anda unggah untuk IdP di Konsol Manajemen Alibaba Cloud.SignaturePernyataan SAML harus ditandatangani. Elemen
Signatureharus berisi informasi seperti nilai signature dan algoritma signature. Signature digunakan untuk memastikan bahwa pernyataan SAML yang ditandatangani tidak diubah setelah tanda tangan dibuat.SubjectElemen
Subjectharus berisi sub-elemen berikut:Hanya satu sub-elemen
NameID. Sub-elemen ini digunakan untuk mengidentifikasi RAM user dalam Akun Alibaba Cloud Anda. Untuk informasi lebih lanjut, lihat deskripsi dan contoh NameID dalam topik ini.Hanya satu sub-elemen
SubjectConfirmationyang berisi sub-elemenSubjectConfirmationData. Sub-elemenSubjectConfirmationDataharus berisi atribut berikut:NotOnOrAfter: periode validitas pernyataan SAML.Recipient: penerima pernyataan SAML. Alibaba Cloud memeriksa penerima pernyataan SAML berdasarkan nilai atribut ini. Oleh karena itu, Anda harus mengatur atribut ini kehttps://signin-intl.aliyun.com/saml/SSO.
Skrip berikut memberikan contoh elemen
Subject:<Subject> <NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">Alice@example.onaliyun.com</NameID> <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <SubjectConfirmationData NotOnOrAfter="2019-01-01T00:01:00.000Z" Recipient="https://signin-intl.aliyun.com/saml/SSO"/> </SubjectConfirmation> </Subject>
ConditionsElemen
Conditionsharus berisi sub-elemenAudienceRestriction. Sub-elemen AudienceRestriction dapat berisi satu atau beberapa sub-elemenAudience. Nilai sub-elemenAudienceharus berupahttps://signin-intl.aliyun.com/${accountId}/saml/SSO.${accountId}menentukan ID Akun Alibaba Cloud.Skrip berikut memberikan contoh elemen
Conditions:<Conditions> <AudienceRestriction> <Audience>https://signin-intl.aliyun.com/${accountId}/saml/SSO</Audience> </AudienceRestriction> </Conditions>NameID element
Alibaba Cloud menggunakan User Principal Name (UPN) untuk menemukan RAM user. Oleh karena itu, pernyataan SAML yang dihasilkan oleh IdP Anda harus mencakup UPN dari RAM user tersebut. Untuk menerapkan SSO berbasis pengguna, Alibaba Cloud menguraikan elemen
NameIDdalam pernyataan SAML dan memetakan elemen ini ke UPN dari RAM user yang sesuai.Saat mengonfigurasi pernyataan SAML yang dikeluarkan oleh IdP Anda, pastikan UPN dari RAM user dipetakan ke elemen
NameIDdalam pernyataan SAML.Nilai elemen
NameIDharus diakhiri dengan salah satu akhiran berikut:domain alias Akun Alibaba Cloud Anda:
<username>@<domain_alias>.<username>menentukan username RAM user, sedangkan<domain_alias>menentukan alias domain. Untuk informasi lebih lanjut tentang cara mengonfigurasi alias domain, lihat Buat dan verifikasi alias domain.auxiliary domain name:
<username>@<auxiliary_domain>.<username>menentukan username RAM user, sedangkan<auxiliary_domain>menentukan nama domain tambahan. Untuk informasi tentang cara mengonfigurasi nama domain tambahan, lihat Konfigurasi pengaturan SAML Alibaba Cloud untuk SSO berbasis role.CatatanJika Anda mengonfigurasi baik alias domain maupun nama domain tambahan, nilai elemen
NameIDakan diakhiri dengan alias domain.default domain name dari Akun Alibaba Cloud Anda adalah:
<username>@<default_domain>.<username>menunjukkan nama pengguna dari Pengguna RAM, sedangkan<default_domain>menunjukkan nama domain default. Untuk informasi selengkapnya tentang cara mengonfigurasi nama domain default, lihat Melihat dan memodifikasi nama domain default.CatatanAnda dapat menggunakan nama domain default Akun Alibaba Cloud Anda sebagai akhiran elemen
NameIDmeskipun telah mengonfigurasi alias domain atau nama domain tambahan.
NameID example
Dalam contoh ini, RAM user bernama
Alicedibuat untuk Akun Alibaba Cloud Anda, dan nama domain default Akun Alibaba Cloud Anda adalahexample.onaliyun.com.Jika Anda mengatur alias domain Akun Alibaba Cloud Anda menjadi
example.com, nilai elemenNameIDdalam pernyataan SAML adalahAlice@example.onaliyun.comatauAlice@example.com.Jika Anda telah mengatur nama domain tambahan menjadi
example.netdan tidak ada alias domain yang dikonfigurasi, nilai elemenNameIDdalam pernyataan SAML adalahAlice@example.onaliyun.comatauAlice@example.net.Jika Anda mengatur alias domain Akun Alibaba Cloud Anda menjadi
example.comdan nama domain tambahan menjadiexample.net, nilai elemenNameIDdalam pernyataan SAML adalahAlice@example.onaliyun.comatauAlice@example.com. Nama domain tambahan tidak dapat digunakan.