Topik ini menjelaskan sintaks respons Security Assertion Markup Language (SAML) untuk single sign-on (SSO) berbasis peran serta elemen-elemen dalam pernyataan SAML yang terdapat pada 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 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:AttributeStatement>
<saml2:Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/RoleSessionName">
...
</saml2:Attribute>
<saml2:Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/Role">
...
</saml2:Attribute>
</saml2:AttributeStatement>
</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 memverifikasi bahwa pernyataan SAML yang ditandatangani tidak diubah setelah tanda tangan dibuat.SubjectElemen
Subjectharus berisi sub-elemen berikut:Hanya satu sub-elemen
NameID. Anda harus menentukan nilaiNameIDberdasarkan SAML 2.0. Namun, Alibaba Cloud tidak menentukan identitas logon berdasarkan nilai NameID.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.alibabacloud.com/saml-role/sso.
Skrip berikut memberikan contoh elemen
Subject:<Subject> <NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">administrator</NameID> <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <SubjectConfirmationData NotOnOrAfter="2019-01-01T00:01:00.000Z" Recipient="https://signin.alibabacloud.com/saml-role/sso"/> </SubjectConfirmation> </Subject>
ConditionsElemen
Conditionsharus berisi sub-elemenAudienceRestriction. Sub-elemen AudienceRestriction dapat berisi satu atau beberapa sub-elemenAudience. Nilai sub-elemenAudienceharus berupaurn:alibaba:cloudcomputing:international.Skrip berikut memberikan contoh elemen
Conditions:<Conditions> <AudienceRestriction> <Audience>urn:alibaba:cloudcomputing:international</Audience> </AudienceRestriction> </Conditions>Custom elements required by Alibaba Cloud
Alibaba Cloud mengharuskan elemen
AttributeStatementdalam pernyataan SAML berisi sub-elemenAttributeberikut:Atribut Role: elemen
Attributedengan atributNamediatur kehttps://www.aliyun.com/SAML-Role/Attributes/Role.Sub-elemen ini wajib dan berisi satu atau beberapa sub-elemen
AttributeValue. AttributeValue mencantumkan role yang dapat diasumsikan oleh pengguna di IdP Anda. Nilai sub-elemen AttributeValue adalah pasangan ARN (Alibaba Cloud Resource Name) role dan ARN IdP yang dipisahkan koma. Anda dapat melihat ARN role dan ARN IdP di konsol RAM.Untuk melihat ARN role, buka halaman Roles dan klik nama Peran RAM. Di halaman yang muncul, Anda dapat melihat ARN role di bagian Basic Information.
Untuk melihat ARN IdP, buka halaman SSO. Di tab Role-based SSO, klik nama IdP. Anda dapat melihat ARN IdP di bagian IdP Information.
CatatanJika atribut role berisi beberapa sub-elemen AttributeValue, pengguna harus memilih role yang akan diasumsikan saat login ke Konsol Manajemen Alibaba Cloud.
Skrip berikut memberikan contoh atribut Role
attribute:<Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/Role"> <AttributeValue>acs:ram::$account_id:role/role1,acs:ram::$account_id:saml-provider/provider1</AttributeValue> <AttributeValue>acs:ram::$account_id:role/role2,acs:ram::$account_id:saml-provider/provider1</AttributeValue> </Attribute>CatatanNilai
$account_idadalah ID Akun Alibaba Cloud yang mendefinisikan Peran RAM dan IdP.Atribut peran adalah elemen
Attributeyang memiliki atributNamebernilaihttps://www.aliyun.com/SAML-Role/Attributes/RoleSessionName.Sub-elemen ini wajib dan hanya berisi satu sub-elemen
AttributeValueyang menentukan informasi pengguna yang akan ditampilkan di konsol RAM dan log ActionTrail. Jika beberapa pengguna mengasumsikan role yang sama, tentukan nilaiRoleSessionNameyang berbeda untuk setiap pengguna agar setiap nilai secara unik mengidentifikasi pengguna tersebut. Misalnya, Anda dapat menggunakan ID karyawan atau alamat email.Nilai dalam sub-elemen
AttributeValueharus terdiri dari 2 hingga 64 karakter dan hanya boleh berisi huruf, angka, serta karakter khusus berikut:- _ . @ =.Skrip berikut memberikan contoh atribut RoleSessionName
attribute:<Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/RoleSessionName"> <AttributeValue>user_id</AttributeValue> </Attribute>Atribut SessionDuration: sub-elemen
Attributedengan atributNamediatur kehttps://www.aliyun.com/SAML-Role/Attributes/SessionDuration.Elemen ini opsional dan hanya berisi satu sub-elemen
AttributeValueyang menentukan durasi maksimum setiap sesi. Nilai sub-elemen ini adalah bilangan bulat dalam satuan detik, dengan nilai minimum 900 detik dan tidak boleh melebihi durasi sesi maksimum yang ditentukan untuk atribut Role.Skrip berikut memberikan contoh atribut SessionDuration
attribute:<Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/SessionDuration"> <AttributeValue>1800</AttributeValue> </Attribute>
Maximum role session duration
Jika Anda menggunakan konsol untuk mengasumsikan role, durasi sesi maksimum ditentukan oleh nilai atribut
SessionDurationdalam pernyataan SAML. Jika atributSessionNotOnOrAfterpada elemenAuthnStatementjuga ditentukan, durasi sesi maksimum adalah nilai yang lebih kecil antaraSessionDurationdanSessionNotOnOrAfter. Jika baik SessionDuration maupun SessionNotOnOrAfter tidak ditentukan, durasi sesi maksimum adalah nilai yang lebih kecil antara parameter Maximum Session Duration role dan parameter Logon Session Valid For. Untuk informasi lebih lanjut, lihat Mengelola pengaturan keamanan Pengguna RAM dan Menentukan durasi sesi maksimum untuk Peran RAM.Jika Anda telah menentukan parameter
DurationSecondssaat memanggil operasi AssumeRoleWithSAML dan telah menentukan atributSessionNotOnOrAfterdalam elemenAuthnStatement, durasi sesi maksimum adalah nilai yang lebih kecil antaraDurationSecondsdanSessionNotOnOrAfter. Untuk informasi lebih lanjut, lihat AssumeRoleWithSAML. Jika baik SessionDuration maupun SessionNotOnOrAfter tidak ditentukan, durasi sesi maksimum secara default adalah 3.600 detik.