Sinkronkan pengguna dari sistem identitas on-premises Anda ke RAM melalui protokol SCIM yang diamankan oleh otorisasi OAuth 2.0.
Prasyarat
Disarankan agar administrator RAM atau pengguna RAM dengan izin manajemen OAuth melakukan operasi dalam topik ini.
Ikhtisar
-
SCIM (System for Cross-domain Identity Management) menstandarkan manajemen identitas di berbagai aplikasi cloud. SCIM 2.0 menggunakan model objek di mana semua objek mewarisi dari Resource dengan atribut
id,externalId, danmeta. RFC 7643 memperluasnya dengan User, Group, dan EnterpriseUser. Topik ini menggunakan resource User. -
OAuth (Open Authorization) memungkinkan aplikasi pihak ketiga mengakses resource pengguna tanpa mengekspos kredensial. 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 menggunakan OAuth 2-legged untuk komunikasi client-to-API, sebagaimana didefinisikan dalam spesifikasi OAuth 2.0. Ikhtisar aplikasi OAuth.
-
Titik akhir SCIM Alibaba Cloud:
https://scim.aliyun.com. -
Titik akhir OAuth Alibaba Cloud untuk mendapatkan
access_token:https://oauth.aliyun.com/v1/token.
Langkah 1: Buat dan otorisasi aplikasi OAuth
-
Masuk ke Konsol RAM menggunakan Akun Alibaba Cloud Anda.
-
Di panel navigasi sebelah kiri, klik OAuth (Preview).
-
Pada tab Enterprise Applications, klik Create Application.
Untuk Application Type, pilih Server Application. Buat aplikasi.
Setelah pembuatan, dapatkan
client_iddari halaman detail aplikasi. -
Klik nama aplikasi. Pada tab OAuth Scope, klik Add OAuth Scopes.
Untuk OAuth Scope, pilih /acs/scim. Kelola OAuth scopes.
-
Otorisasi aplikasi OAuth.
-
Pada tab OAuth Scope, klik Grants.
-
Pada halaman Third-party Application Authorization, pilih Alibaba Cloud Cross-domain Identity Management Service lalu klik Grants.
-
-
Pada tab App Secrets, klik Create Secret untuk membuat rahasia aplikasi.
PentingAppSecretValue hanya ditampilkan sekali saat pembuatan dan tidak dapat diambil kembali. Simpan dengan aman.
Langkah 2: Sinkronkan data pengguna
Anda dapat menyinkronkan data pengguna melalui client seperti One Identity atau langsung melalui API SCIM.
-
Client: Konfigurasikan pengaturan SCIM di client seperti One Identity untuk menyinkronkan data pengguna. Dokumentasi One Identity.
-
API SCIM: Petakan pengguna on-premises ke RAM user. Anda dapat membuat, menghapus, mengkueri, dan memperbarui atribut RAM user berikut.
-
id: ID RAM user, unik secara global dan dihasilkan oleh server. -
externalId: ID unik yang ditentukan client yang mengaitkan RAM user dengan pengguna di sistem on-premises Anda.CatatanRAM user yang dibuat di konsol tidak memiliki atribut
externalId. -
userName: Nama unik yang ditentukan client untuk setiap pengguna. -
displayName: Nama tampilan RAM user, sebagaimana ditentukan oleh client.
-
Untuk menyinkronkan data pengguna menggunakan API SCIM:
-
Dapatkan ID (client_id) dan nilai rahasia (AppSecretValue) dari aplikasi server yang telah diotorisasi.
-
client_id: ID aplikasi. Anda dapat memperoleh ID tersebut dari Langkah 1: Buat dan otorisasi aplikasi OAuth.
-
AppSecretValue: Rahasia aplikasi. Anda dapat memperolehnya dari Langkah 1: Buat dan otorisasi aplikasi OAuth.
-
-
Untuk mendapatkan
access_token, kirim permintaan yang berisiclient_iddanAppSecretValuekehttps://oauth.aliyun.com/v1/token.Header Authorization harus menggunakan format
"Authorization: Basic Base64Encode(client_id:AppSecretValue)". Misalnya, jika client_id=cid dan AppSecretValue=123456, header Authorization-nya harus berupa"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 tanggapan:
{ "scope": "/acs/scim", "request_id": "8dc768e0-d6fe-4f52-a788-05631dd6c584", "access_token": "eyJ***hKg", "token_type": "Bearer", "expires_in": "3599" } -
Kueri nilai
ResourceTypedanSchemayang didukung oleh SCIM Alibaba Cloud.Untuk mengkueri
ResourceTypeyang didukung:curl --location --request GET 'https://scim.aliyun.com/ResourceTypes'Untuk mengkueri
Schemayang didukung:curl --location --request GET 'https://scim.aliyun.com/Schemas' -
Buat, kueri, perbarui, dan hapus RAM user.
-
Buat RAM user.
Tentukan userName, displayName, dan externalId yang dipetakan ke pengguna di 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 tanggapan:
{ "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****" } -
Kueri RAM user tertentu.
-
Gunakan
GET /Users/{id}untuk mengkueri RAM user berdasarkanid. -
Gunakan
GET /Users?filter=externalId eq xxxuntuk mengkueri RAM user berdasarkanexternalId. -
Gunakan
GET /Users?filter=userName eq xxxuntuk mengkueri RAM user berdasarkanuserName.Contoh permintaan:
curl --location --request GET 'https://scim.aliyun.com/Users?filter=userName%20eq%20%22j2gg0screatedbyscim****%22' \ --header 'Authorization: Bearer eyJ***hKg'Contoh tanggapan:
{ "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 operasi
anddaneqpada atributid,userName, danexternalId.
-
-
Perbarui atribut RAM user.
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 tanggapan:
{ "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 RAM user.
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 mengonfirmasi penghapusan yang berhasil.
CatatanAlibaba Cloud tidak mendukung soft delete. Petakan semua operasi soft delete ke hard delete sebelum menyinkronkan data.
-