Saat perusahaan bermigrasi ke cloud, sinkronisasi akun on-premises sangat penting untuk mengurangi biaya pemeliharaan. Alibaba Cloud memungkinkan Anda menyinkronkan data akun dari sistem on-premises ke Resource Access Management (RAM) menggunakan protokol System for Cross-domain Identity Management (SCIM), yang diamankan dengan Open Authorization (OAuth).
Prasyarat
Kami menyarankan agar semua operasi di Konsol RAM yang dijelaskan dalam topik ini dilakukan oleh administrator RAM atau Pengguna RAM dengan izin manajemen OAuth.
Informasi latar belakang
System for Cross-domain Identity Management (SCIM) adalah protokol untuk mengelola identitas pengguna dalam aplikasi cloud multi-tenant. SCIM 2.0 dibangun berdasarkan model objek di mana semua objek SCIM didasarkan pada
Resourceinti.Resourceini memiliki atributid,externalId, danmeta. RFC 7643 mendefinisikan ekstensi sepertiUser,Group, danEnterpriseUser. Topik ini menggunakan objekUseruntuk menyinkronkan informasi pengguna.Open Authorization (OAuth) adalah standar terbuka untuk delegasi akses. Protokol ini memungkinkan aplikasi pihak ketiga mengakses resource pengguna tanpa mengekspos kredensial pengguna. Alibaba Cloud mendukung tiga jenis aplikasi OAuth: web application, native application, dan server application. Baik web application maupun native application menggunakan OAuth 3-legged, sedangkan server application menggunakan OAuth 2-legged. SCIM terutama menggunakan mekanisme OAuth 2-legged untuk mengotorisasi komunikasi antara aplikasi client dan penyedia layanan API guna mengaktifkan sinkronisasi data. Untuk informasi lebih lanjut tentang OAuth, lihat OAuth 2.0 dan OAuth application overview.
Titik akhir SCIM Alibaba Cloud:
https://scim.aliyun.com.Titik akhir OAuth Alibaba Cloud untuk mendapatkan token akses:
https://oauth.aliyun.com/v1/token.
Langkah 1: Buat dan otorisasi aplikasi OAuth
Masuk ke Konsol RAM dengan Akun Alibaba Cloud Anda.
Di panel navigasi sebelah kiri, klik OAuth Preview.
Pada tab Enterprise Application, klik Create Application.
Atur Application Type menjadi Server Application. Untuk informasi selengkapnya, lihat Create an OAuth application.
Setelah membuat server application, temukan ID aplikasi (client_id) di halaman detail aplikasi tersebut.
Klik nama aplikasi. Pada tab OAuth Scope, klik Add OAuth Scope.
Untuk OAuth Scope, pilih /acs/scim. Untuk informasi selengkapnya, lihat Manage OAuth scopes.
Otorisasi aplikasi OAuth.
Pada tab OAuth Scope, klik Authorize.
Pada halaman Third-party Application Authorization, pilih Accesses Cross-Domain Identity Management, lalu klik Authorize.
Pada tab Application Secret, klik Create Secret untuk membuat rahasia aplikasi.
PentingRahasia aplikasi (AppSecretValue) hanya terlihat saat pembuatan. Simpan di lokasi yang aman.
Langkah 2: Sinkronisasi data akun
Anda dapat menyinkronkan data akun dengan menggunakan client, seperti One Identity, atau dengan menggunakan API SCIM.
Client: Anda dapat mengonfigurasi pengaturan SCIM di client Anda (misalnya, One Identity), lalu menggunakannya untuk menyinkronkan data akun. Untuk informasi cara mengonfigurasi One Identity, lihat dokumentasi One Identity.
SCIM API: Gunakan API SCIM untuk memetakan akun on-premises ke Pengguna RAM. API ini mendukung operasi create, query, modify, dan delete pada atribut Pengguna RAM berikut:
id: ID Pengguna RAM. ID ini bersifat unik secara global dan dihasilkan oleh server.externalId: Kunci asing untuk Pengguna RAM. Client menentukan ID ini untuk menghubungkan Pengguna RAM di Alibaba Cloud dengan pengguna di sistem on-premises Anda.CatatanPengguna RAM yang dibuat di Konsol RAM tidak memiliki atribut
externalId.userName: Username RAM. Nama ini unik di tingkat pengguna dan ditentukan oleh client.displayName: Nama tampilan Pengguna RAM. Nama ini ditentukan oleh client.
Langkah-langkah berikut menjelaskan cara menyinkronkan data akun menggunakan API SCIM Alibaba Cloud.
Dapatkan ID aplikasi (
client_id) dan rahasia aplikasi (AppSecretValue) dari server application yang telah diotorisasi.client_id: ID aplikasi. Dapatkan dari prosedur di Langkah 1: Buat dan otorisasi aplikasi OAuth.
AppSecretValue: Rahasia aplikasi. Dapatkan dari prosedur di Langkah 1: Buat dan otorisasi aplikasi OAuth.
Akses
https://oauth.aliyun.com/v1/tokendengan menggunakanclient_iddanAppSecretValueuntuk mendapatkanaccess token.Header
Authorizationharus dalam format"Authorization: Basic Base64Encode(client_id:AppSecretValue)". Misalnya, jikaclient_idadalahciddanAppSecretValueadalah123456, header-nya adalah"Authorization: Basic Y2lkOjEyMzQ1Ng==".Contoh permintaan:
curl --location --request POST --header "Authorization: Basic Y2lkOjEyMzQ1Ng==" https://oauth.aliyun.com/v1/token?grant_type=client_credentials&client_id=463790568674183****Contoh respons:
{ "scope": "/acs/scim", "request_id": "8dc768e0-d6fe-4f52-a788-05631dd6c584", "access_token": "eyJ***hKg", "token_type": "Bearer", "expires_in": "3599" }Kueri
ResourceTypedanSchemayang didukung oleh SCIM Alibaba Cloud.Kueri
ResourceTypeyang didukung:curl --location --request GET 'https://scim.aliyun.com/ResourceTypes'Kueri
Schemayang didukung:curl --location --request GET 'https://scim.aliyun.com/Schemas'Buat, kueri, modifikasi, dan hapus Pengguna RAM.
Buat Pengguna RAM.
Untuk membuat Pengguna RAM, tentukan username RAM (
userName), nama tampilan (displayName), dan kunci asing (externalId) menggunakan informasi akun dari sistem on-premises Anda.Contoh permintaan:
curl --location --request POST 'https://scim.aliyun.com/Users' \ --header 'Authorization: Bearer eyJ***hKg' \ --header 'Content-Type: application/json' \ --data-raw '{ "displayName": "j2gg0s_****", "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "6e74eec4-ddb5-4e74-bd12-5e7b99b2****", "userName": "j2gg0screatedbyscim_exa****" }'Contoh respons:
{ "displayName": "j2gg0s_****", "meta": { "created": "2020-02-14T03:58:59Z", "location": "https://scim.aliyun.com/Users/27648498165273****", "lastModified": "2020-02-14T03:58:59Z", "resourceType": "User" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "6e74eec4-ddb5-4e74-bd12-5e7b99b2****", "id": "27648498165273****", "userName": "j2gg0screatedbyscim_exa****" }Mencari pengguna RAM tertentu.
Gunakan
GET /Users/{id}untuk mengkueri Pengguna RAM berdasarkanid.Gunakan
GET /Users?filter=externalId eq xxxuntuk mengkueri Pengguna RAM berdasarkanexternalId.Gunakan
GET /Users?filter=userName eq xxxuntuk mengkueri Pengguna RAM berdasarkanuserName. Kode berikut memberikan contoh permintaan dan respons.Contoh permintaan:
curl --location --request GET 'https://scim.aliyun.com/Users?filter=userName%20eq%20%22j2gg0screatedbyscim****%22' \ --header 'Authorization: Bearer eyJ***hKg'Contoh respons:
{ "startIndex": 1, "totalResults": 1, "itemsPerPage": 30, "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "Resources": [ { "displayName": "j2gg0screatedbyscim****", "meta": { "created": "2019-12-11T01:53:19Z", "location": "https://scim.aliyun.com/Users/27769827602919****", "lastModified": "2019-12-11T02:10:39Z", "resourceType": "User" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "6e74eec4-ddb5-4e74-bd12-5e7b99b2****", "id": "27769827602919****", "userName": "j2gg0screatedbyscim****" } ] }CatatanUntuk filter SCIM, Alibaba Cloud hanya mendukung operator
anddanequntuk atributid,userName, danexternalId.
Modifikasi atribut Pengguna RAM.
Contoh permintaan:
curl --location --request PUT 'https://scim.aliyun.com/Users/27648498165273****' \ --header 'Authorization: Bearer eyJ***hKg' \ --header 'Content-Type: application/json' \ --data-raw '{ "displayName": "j2gg0s_new_****", "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "6e74eec4-ddb5-4e74-bd12-5e7b99b2****", "userName": "j2gg0screatedbyscim_new_exa****" }'Contoh respons:
{ "displayName": "j2gg0s_new_****", "meta": { "created": "2020-02-14T03:58:59Z", "location": "https://scim.aliyun.com/Users/27648498165273****", "lastModified": "2020-02-14T04:03:55Z", "resourceType": "User" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "6e74eec4-ddb5-4e74-bd12-5e7b99b2****", "id": "27648498165273****", "userName": "j2gg0screatedbyscim_new_exa****"}Hapus Pengguna RAM.
Contoh permintaan:
curl --location --request DELETE 'https://scim.aliyun.com/Users/27648498165273****' \ --header 'Authorization: Bearer eyJ***hKg' \ --header 'Content-Type: application/json'Kode status HTTP 204 menunjukkan bahwa Pengguna RAM berhasil dihapus.
CatatanAlibaba Cloud saat ini tidak mendukung soft deletion. Jika sistem Anda mendukung soft deletion, petakan soft deletion ke hard deletion sebelum menyinkronkan data ke Alibaba Cloud.