Tutorial ini menjelaskan cara mengonfigurasi Active Directory Federation Services (AD FS) dan Alibaba Cloud untuk mengaktifkan single sign-on (SSO) berbasis peran. Dalam contoh ini, AD FS dihosting pada sebuah Instance ECS yang menjalankan Windows Server 2012 R2. AD FS bertindak sebagai penyedia identitas (IdP), sedangkan Alibaba Cloud bertindak sebagai penyedia layanan (SP).
Informasi latar belakang
Sebuah perusahaan menggunakan Active Directory (AD) untuk mengelola identitas karyawan dan memanfaatkan AD FS untuk melakukan federasi dengan aplikasi perusahaan, termasuk Alibaba Cloud. Administrator AD mengelola akses karyawan ke Akun Alibaba Cloud melalui grup pengguna. Dalam contoh ini, perusahaan memiliki dua akun Alibaba Cloud, yaitu Account1 dan Account2. Seorang karyawan bernama Alice perlu mengasumsikan peran dengan izin Admin dan Reader untuk kedua akun tersebut. Alice tergabung dalam grup pengguna AD Aliyun-<account-id>-ADFS-Admin dan Aliyun-<account-id>-ADFS-Reader. Tujuannya adalah mengaktifkan SSO berbasis peran dari AD FS ke Account1 dan Account2.
<account-id> adalah ID dari Account1 atau Account2. Oleh karena itu, Alice tergabung dalam empat grup pengguna AD, masing-masing sesuai dengan izin Admin dan Reader di kedua akun tersebut.
Rincian konfigurasi Microsoft Active Directory hanya bersifat ilustratif. Langkah-langkah ini membantu Anda memahami proses konfigurasi end-to-end untuk SSO dengan Alibaba Cloud. Alibaba Cloud tidak menyediakan layanan konsultasi untuk konfigurasi Microsoft Active Directory. Untuk informasi lebih lanjut tentang cara membangun lingkungan AD FS, lihat Membangun domain AD pada Instance Windows.
Cara kerja
Diagram berikut menunjukkan alur logon federasi dasar untuk seorang karyawan.

Setelah administrator AD menyelesaikan konfigurasi logon federasi, karyawan (Alice) dapat masuk ke Konsol Alibaba Cloud dengan mengikuti proses yang ditunjukkan dalam diagram tersebut. Untuk informasi lebih lanjut, lihat Ikhtisar SSO berbasis peran SAML.
Proses ini memusatkan autentikasi melalui sistem identitas perusahaan Anda. Pengguna tidak perlu menyediakan username atau password Alibaba Cloud secara terpisah.
Langkah 1: Konfigurasikan AD FS sebagai IdP tepercaya
Di Konsol RAM, buat penyedia identitas bernama ADFS dan konfigurasikan metadata-nya. URL metadata AD FS adalah
https://<ADFS-server>/federationmetadata/2007-06/federationmetadata.xml.Catatan<ADFS-server> adalah Nama domain atau alamat IP server AD FS Anda.
Untuk informasi lebih lanjut, lihat Konfigurasikan SAML di Alibaba Cloud sebagai SP untuk SSO berbasis peran.
CatatanJika ukuran file metadata melebihi batas maksimum, Anda dapat menghapus seluruh konten di dalam elemen
<fed:ClaimTypesRequested>dan<fed:ClaimTypesOffered>.Di Account1, buat dua Peran RAM, yaitu ADFS-Admin dan ADFS-Reader. Untuk setiap peran, atur entitas tepercaya ke penyedia identitas dan pilih ADFS sebagai penyedia identitas tepercaya. Lalu, berikan izin
AdministratorAccesskepada peran ADFS-Admin dan izinReadOnlyAccesskepada peran ADFS-Reader.Untuk informasi lebih lanjut, lihat Buat Peran RAM untuk penyedia identitas tepercaya.
Di Account2, ulangi proses tersebut. Buat penyedia identitas bernama ADFS dan dua Peran RAM, yaitu ADFS-Admin dan ADFS-Reader. Berikan izin
AdministratorAccesskepada peran ADFS-Admin dan izinReadOnlyAccesskepada peran ADFS-Reader.
Setelah konfigurasi ini selesai, akun Alibaba Cloud Anda akan memercayai identitas pengguna dan informasi peran dalam Pernyataan SAML yang dikirim dari AD FS Anda.
Langkah 2: Konfigurasikan Alibaba Cloud sebagai SP tepercaya
Di AD FS, penyedia layanan (SP) SAML disebut relying party. Ikuti langkah-langkah berikut untuk mengonfigurasi Alibaba Cloud sebagai SP tepercaya di AD FS.
Di Server Manager, pada menu Tools, klik AD FS Management.
Di Konsol AD FS Management, klik Add Relying Party Trust.

Dalam wizard, masukkan URL metadata SP SAML Alibaba Cloud untuk SSO berbasis peran:
https://signin.alibabacloud.com/saml-role/sp-metadata.xml.
Selesaikan wizard dengan mengikuti petunjuk di layar.
Langkah 3: Konfigurasikan atribut Pernyataan SAML
Alibaba Cloud mengharuskan AD FS untuk menyertakan atribut NameID, Role, dan RoleSessionName dalam Pernyataan SAML. Di AD FS, Anda menggunakan aturan penerbitan transformasi untuk menyediakan atribut-atribut ini.
NameIDIkuti langkah-langkah berikut untuk memetakan nama akun Windows pengguna dari Active Directory ke atribut
NameIDdalam Pernyataan SAML.Untuk relying party yang telah Anda buat, klik Edit Claim Issuance Policy.
Pada tab Issuance Transform Rules, klik Add Rule.
CatatanAturan penerbitan transformasi mendefinisikan cara mentransformasi atribut pengguna menjadi atribut untuk Pernyataan SAML. Anda perlu menambahkan aturan baru untuk menerbitkan nama akun Windows pengguna dari AD sebagai
NameID.Untuk Claim rule template, pilih Transform an Incoming Claim.

Konfigurasikan aturan dengan pengaturan berikut dan klik Finish.
Claim rule name: NameID
Incoming claim type: Windows account name
Outgoing claim type: Name ID
Outgoing name ID format: Persistent Identifier
Pass through all claim values: Centang kotak ini.

Setelah Anda mengonfigurasi aturan tersebut, AD FS akan mengirimkan
NameIDdalam format yang dibutuhkan oleh Alibaba Cloud.<NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"> YourDomain\rolessouser </NameID>
RoleSessionNameIkuti langkah-langkah berikut untuk memetakan Nama Utama Pengguna (UPN) pengguna dari Active Directory ke atribut
RoleSessionNamedalam Pernyataan SAML.Klik Add Rule.
Untuk Claim rule template, pilih Send LDAP Attributes as Claims.

Konfigurasikan aturan dengan pengaturan berikut dan klik Finish.
Claim rule name: RoleSessionName
Attribute store: Active Directory
LDAP Attribute: User-Principal-Name. Anda juga dapat memilih atribut lain, seperti email, sesuai kebutuhan Anda.
Outgoing claim type:
https://www.aliyun.com/SAML-Role/Attributes/RoleSessionName

Setelah Anda mengonfigurasi aturan tersebut, AD FS akan mengirimkan
RoleSessionNamedalam format yang dibutuhkan oleh Alibaba Cloud.<Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/RoleSessionName"> <AttributeValue>rolessouser@example.com<AttributeValue> </Attribute>RoleIkuti langkah-langkah berikut untuk membuat aturan kustom yang mentransformasi informasi keanggotaan grup pengguna menjadi nama peran Alibaba Cloud.
Klik Add Rule.
Untuk Claim rule template, pilih Send Claims Using a Custom Rule, lalu klik Next.

Konfigurasikan aturan dengan pengaturan berikut dan klik Finish.
Claim rule name: Get AD Groups
Custom rule:
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => add(store = "Active Directory",types = ("http://temp/variable"), query = ";tokenGroups;{0}", param =c.Value);
CatatanAturan ini mengambil keanggotaan grup AD pengguna dan menyimpannya dalam variabel sementara bernama http://temp/variable.
Klik Add Rule lagi.
Buat aturan kustom lain dengan pengaturan berikut dan klik Finish.
Claim rule name: Role
Custom rule:
c:[Type == "http://temp/variable", Value =~ "(?i)^Aliyun-([\d]+)"] => issue(Type = "https://www.aliyun.com/SAML-Role/Attributes/Role",Value = RegExReplace(c.Value, "Aliyun-([\d]+)-(.+)", "acs:ram::$1:role/$2,acs:ram::$1:saml-provider/<provider-name>"));CatatanGanti <provider-name> dengan nama penyedia identitas yang telah Anda buat di Langkah 1: Konfigurasikan AD FS sebagai IdP tepercaya. Dalam contoh ini, namanya adalah ADFS.

Berdasarkan aturan ini, jika pengguna tergabung dalam grup AD bernama Aliyun-<account-id>-ADFS-Admin atau Aliyun-<account-id>-ADFS-Reader, AD FS akan menghasilkan atribut SAML yang dipetakan ke Peran RAM ADFS-Admin atau ADFS-Reader yang sesuai di Alibaba Cloud.
Setelah Anda menyelesaikan konfigurasi, IdP akan mengembalikan fragmen Pernyataan SAML yang diperlukan ke Alibaba Cloud, seperti yang ditunjukkan pada contoh berikut.
<Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/Role"> <AttributeValue>acs:ram::<account-id>:role/ADFS-Admin,acs:ram::<account-id>:saml-provider/<provider-name></AttributeValue> </Attribute>
Verifikasi hasil
Masuk ke portal logon yang diinisiasi IdP AD FS di
https://<ADFS-server>/adfs/ls/IdpInitiatedSignOn.aspx. Pilih aplikasi Alibaba Cloud dan masukkan kredensial pengguna Anda.Catatan<ADFS-server> adalah Nama domain atau alamat IP server AD FS Anda. Jika halaman web tidak tersedia, Anda dapat mengaktifkannya dengan menjalankan perintah PowerShell berikut:
Set-AdfsProperties -EnableIdpInitiatedSignonPage $True.
Pada halaman SSO berbasis peran Alibaba Cloud, pilih peran yang ingin Anda asumsikan dan klik Log On.
CatatanJika pengguna Anda hanya tergabung dalam satu grup AD yang dipetakan ke suatu peran, Anda akan langsung masuk ke konsol tanpa perlu memilih peran.
