Mencantumkan elemen wajib dan opsional dalam respons dan pernyataan SAML untuk SSO berbasis peran.
Informasi latar belakang
Dalam alur SSO berbasis SAML 2.0, setelah pengguna perusahaan masuk ke IdP, IdP menghasilkan respons otentikasi yang berisi pernyataan SAML sesuai dengan binding HTTP-POST SAML 2.0. Browser atau aplikasi secara otomatis meneruskan respons ini ke Alibaba Cloud, yang kemudian memverifikasi status masuk pengguna dan mengekstrak subjek yang masuk berdasarkan pernyataan tersebut. Pernyataan tersebut harus mencakup semua elemen yang dipersyaratkan oleh Alibaba Cloud; jika tidak, SSO akan gagal.
Respons SAML
IdP Anda harus mengirim respons SAML ke Alibaba Cloud yang mencakup semua elemen wajib berikut. Jika salah satu elemen tidak tersedia, 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 pernyataan SAML
Standard SAML 2.0 elements
Elemen-elemen ini mengikuti spesifikasi protokol SAML 2.0.
Element
Description
IssuerNilai
Issuerharus sesuai denganEntityIDdalam file metadata IdP yang Anda unggah saat membuat entitas IdP di Alibaba Cloud.SignatureAlibaba Cloud mengharuskan pernyataan SAML yang ditandatangani untuk mencegah manipulasi. Elemen
Signaturedan elemen anaknya harus berisi informasi seperti nilai signature dan algoritma penandatanganan.SubjectElemen
Subjectharus berisi elemen-elemen berikut:Tepat satu elemen
NameID. Tetapkan nilaiNameIDsesuai protokol SAML 2.0, biasanya ke identifier pengguna di IdP. Alibaba Cloud tidak menggunakan nilai ini untuk mengidentifikasi subjek yang masuk.Tepat satu elemen
SubjectConfirmationyang berisi elemenSubjectConfirmationData. ElemenSubjectConfirmationDatamemerlukan atribut-atribut berikut:NotOnOrAfter: Menentukan waktu kedaluwarsa pernyataan SAML.Recipient: Alibaba Cloud memeriksa nilai atribut ini untuk memverifikasi bahwa pernyataan tersebut ditujukan untuk Alibaba Cloud. Nilainya harushttps://signin.alibabacloud.com/saml-role/sso.
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 mencakup elemenAudienceRestrictiondengan setidaknya satu elemenAudience. Salah satu elemenAudienceharus memiliki nilaiurn:alibaba:cloudcomputing:international.CatatanJika Anda mengonfigurasi beberapa aplikasi SAML di IdP Anda yang mengarah ke RAM Alibaba Cloud dan menggunakan Entity ID dengan parameter (misalnya,
urn:alibaba:cloudcomputing:international#abc.123), elemenAudienceharus persis sesuai dengan Entity ID, termasuk sufiks parameternya.Contoh elemen
Conditions:<Conditions> <AudienceRestriction> <Audience>urn:alibaba:cloudcomputing:international</Audience> </AudienceRestriction> </Conditions>Alibaba Cloud custom elements
Elemen
AttributeStatementharus mencakup elemenAttributeberikut yang spesifik untuk Alibaba Cloud:Elemen
Attributedengan atributNamebernilaihttps://www.aliyun.com/SAML-Role/Attributes/RoleElemen ini wajib dan mendukung beberapa nilai. Setiap
AttributeValuemenentukan peran yang dapat diasumsikan pengguna, diformat sebagai ARN peran RAM dan ARN IdP yang dipisahkan tanda koma (,). Dapatkan kedua ARN tersebut dari Konsol:ARN peran RAM: Di halaman Roles, klik nama peran RAM, lalu temukan ARN di bagian Basic Information.
ARN IdP: Di halaman SSO, pada tab Role-based SSO, klik nama IdP, lalu temukan ARN di bagian Details.
CatatanJika diberikan beberapa nilai, pengguna yang masuk ke Konsol dapat memilih peran dari daftar yang ditampilkan.
Contoh elemen 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>Catatan$account_idadalah ID Akun Alibaba Cloud yang memiliki peran RAM dan IdP tersebut.Elemen
Attributedengan atributNamebernilaihttps://www.aliyun.com/SAML-Role/Attributes/RoleSessionNameElemen ini wajib dan hanya menerima satu nilai.
AttributeValuemuncul di informasi pengguna Konsol dan log ActionTrail. GunakanRoleSessionNameyang unik untuk setiap pengguna (misalnya ID karyawan atau email) agar dapat membedakan pengguna yang mengasumsikan peran yang sama.AttributeValueharus terdiri dari 2 hingga 64 karakter dan dapat berisi huruf, angka, serta karakter khusus berikut:-_.@=.Contoh elemen
AttributeRoleSessionName:<Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/RoleSessionName"> <AttributeValue>user_id</AttributeValue> </Attribute>Elemen
Attributedengan atributNamebernilaihttps://www.aliyun.com/SAML-Role/Attributes/SessionDurationElemen ini opsional dan menerima paling banyak satu nilai.
AttributeValueharus berupa bilangan bulat yang merepresentasikan durasi sesi dalam detik. Nilai minimum adalah 900, dan nilai maksimum tidak boleh melebihi durasi sesi maksimum yang dikonfigurasi untuk peran RAM yang ditentukan dalam atributRole.Contoh elemen
AttributeSessionDuration:<Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/SessionDuration"> <AttributeValue>1800</AttributeValue> </Attribute>
Session duration
Untuk masuk ke Konsol, durasi sesi ditentukan berdasarkan nilai
SessionDurationdalam pernyataan SAML. Jika elemenAuthnStatementjuga menetapkanSessionNotOnOrAfter, maka durasi sesi yang berlaku adalah nilai yang lebih pendek antaraSessionDurationdanSessionNotOnOrAfter. Jika keduanya tidak ditentukan, durasi sesi mengacu pada pengaturan Maximum Session Duration untuk peran tersebut, dengan batas maksimum sesuai pengaturan Login session duration. Kelola pengaturan keamanan pengguna RAM. Atur durasi sesi maksimum untuk peran RAM.Untuk masuk secara programatik, jika Anda menentukan
DurationSecondssaat memanggil AssumeRoleWithSAML dan juga menentukanSessionNotOnOrAfterdalam elemenAuthnStatement, masa berlaku token STS adalah yang lebih pendek antaraDurationSecondsdanSessionNotOnOrAfter. Jika keduanya tidak ditentukan, masa berlaku default adalah 3.600 detik.