Topik ini menjelaskan sintaks respons Security Assertion Markup Language (SAML) untuk Single Sign-On (SSO) berbasis pengguna dan elemen-elemen dalam asersi SAML yang terkandung dalam respons tersebut.
Informasi latar belakang
Selama 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 mencakup asersi SAML yang sesuai dengan spesifikasi pengikatan HTTP POST dalam SAML 2.0. Alibaba Cloud menggunakan asersi SAML untuk menentukan status login dan identitas pengguna. Oleh karena itu, asersi SAML harus memuat elemen-elemen yang diperlukan oleh Alibaba Cloud. Jika elemen-elemen tersebut tidak ada, SSO akan gagal.
Respons SAML
Pastikan bahwa setiap respons SAML yang dikirim oleh IdP Anda ke Alibaba Cloud memuat 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 asersi SAML
Common elements in SAML 2.0
Untuk informasi lebih lanjut tentang SAML 2.0, lihat SAML 2.0.
Elemen
Deskripsi
IssuerNilai elemen
Issuerharus cocok denganEntityIDdalam file metadata yang Anda unggah untuk IdP di Konsol Manajemen Alibaba Cloud.SignatureAsersi SAML harus ditandatangani. Elemen
Signatureharus berisi informasi seperti nilai tanda tangan dan algoritma tanda tangan. Tanda tangan digunakan untuk memastikan bahwa asersi SAML yang telah ditandatangani tidak dimodifikasi setelah tanda tangan dibuat.SubjectElemen
Subjectharus berisi sub-elemen berikut:Hanya satu sub-elemen
NameID. Sub-elemen ini digunakan untuk mengidentifikasi pengguna RAM 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 asersi SAML.Recipient: penerima asersi SAML. Alibaba Cloud memeriksa penerima asersi SAML berdasarkan nilai atribut ini. Oleh karena itu, Anda harus mengatur atribut ini menjadihttps://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 lebih sub-elemenAudience. Nilai sub-elemenAudienceharushttps://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 pengguna RAM. Oleh karena itu, asersi SAML yang dihasilkan oleh IdP Anda harus memuat UPN dari pengguna RAM. Untuk menerapkan SSO berbasis pengguna, Alibaba Cloud menyelesaikan elemen
NameIDdalam asersi SAML dan memetakan elemen ini ke UPN pengguna RAM yang sesuai.Ketika mengonfigurasi asersi SAML yang dikeluarkan oleh IdP Anda, Anda harus memetakan UPN pengguna RAM ke elemen
NameIDdalam asersi SAML.Nilai elemen
NameIDharus mencakup salah satu akhiran berikut:domain alias akun Alibaba Cloud Anda:
<username>@<domain_alias>.<username>menentukan nama pengguna pengguna RAM.<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 nama pengguna pengguna RAM.<auxiliary_domain>menentukan nama domain tambahan. Untuk informasi tentang cara mengonfigurasi nama domain tambahan, lihat Konfigurasikan pengaturan SAML Alibaba Cloud untuk SSO berbasis peran.CatatanJika Anda mengonfigurasi alias domain dan nama domain tambahan, nilai elemen
NameIDakan memiliki akhiran alias domain.default domain name akun Alibaba Cloud Anda:
<username>@<default_domain>.<username>menentukan nama pengguna pengguna RAM.<default_domain>menentukan nama domain default. Untuk informasi lebih lanjut tentang cara mengonfigurasi nama domain default, lihat Lihat dan modifikasi nama domain default.CatatanAnda dapat menggunakan nama domain default akun Alibaba Cloud Anda sebagai akhiran elemen
NameIDmeskipun Anda telah mengonfigurasi alias domain atau nama domain tambahan.
NameID example
Dalam contoh ini, pengguna RAM 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 asersi 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 asersi 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 asersi SAML adalahAlice@example.onaliyun.comatauAlice@example.com. Nama domain tambahan tidak dapat digunakan.