Kullanıcıları, OAuth 2.0 yetkilendirmesi ile güvence altına alınan SCIM protokolü aracılığıyla şirket içi kimlik sistemlerinizden RAM'e senkronize edin.
Önkoşullar
Bu konudaki işlemleri bir RAM yöneticisinin veya OAuth yönetimi izinlerine sahip bir RAM kullanıcısının gerçekleştirmesini öneririz.
Genel Bakış
SCIM (Sistemler Arası Kimlik Yönetimi), bulut uygulamaları arasında kimlik yönetimini standartlaştırır. SCIM 2.0, tüm nesnelerin
id,externalIdvemetaniteliklerini içeren Resource'dan türetildiği bir nesne modeli kullanır. RFC 7643 bu yapıyı User, Group ve EnterpriseUser ile genişletir. Bu konuda User kaynağı kullanılır.OAuth (Açık Yetkilendirme), üçüncü taraf uygulamaların kimlik bilgilerini açığa çıkarmadan kullanıcı kaynaklarına erişmesine olanak tanır. Alibaba Cloud üç tür OAuth uygulamasını destekler: Web Application, Native Application ve Server Application. Hem Web Application hem de Native Application 3 ayaklı OAuth kullanırken Server Application 2 ayaklı OAuth kullanır. SCIM, istemci-API iletişimi için OAuth 2.0 teknik özelliklerinde tanımlandığı gibi 2 ayaklı OAuth kullanır. OAuth uygulamalarına genel bakış.
Alibaba Cloud SCIM uç noktası:
https://scim.alibabacloud.com.Bir
access_tokenalmak için Alibaba Cloud OAuth uç noktası:https://oauth.aliyun.com/v1/token.
Adım 1: Bir OAuth uygulaması oluşturun ve yetkilendirin
Alibaba Cloud hesabınızı kullanarak RAM konsolu üzerinde oturum açın.
Sol gezinme bölmesinde OAuth (Preview) seçeneğine tıklayın.
-
Enterprise Applications sekmesinde Create Application seçeneğine tıklayın.
Application Type olarak Server Application seçeneğini belirleyin. Uygulama oluşturma.
Oluşturma işleminden sonra uygulama ayrıntıları sayfasından
client_iddeğerini alın. -
Uygulama adına tıklayın. OAuth Scope sekmesinde Add OAuth Scopes seçeneğine tıklayın.
OAuth Scope olarak /acs/scim seçeneğini belirleyin. OAuth kapsamlarını yönetme.
-
OAuth uygulamasını yetkilendirin.
OAuth Scope sekmesinde Grants seçeneğine tıklayın.
Third-party Application Authorization sayfasında Alibaba Cloud Cross-domain Identity Management Service seçeneğini belirleyin ve ardından Grants seçeneğine tıklayın.
-
App Secrets sekmesinde bir uygulama gizli anahtarı oluşturmak için Create Secret seçeneğine tıklayın.
ÖnemliAppSecretValue yalnızca oluşturma sırasında bir kez görüntülenir ve daha sonra alınamaz. Bu değeri güvenli bir şekilde saklayın.
Adım 2: Kullanıcı verilerini senkronize edin
Kullanıcı verilerini One Identity gibi bir istemci aracılığıyla veya doğrudan SCIM API'leri aracılığıyla senkronize edebilirsiniz.
İstemci: Kullanıcı verilerini senkronize etmek için One Identity gibi bir istemcide SCIM ayarlarını yapılandırın. One Identity belgeleri.
-
SCIM API: Şirket içi kullanıcıları RAM kullanıcılarıyla eşleştirin. Aşağıdaki RAM kullanıcı niteliklerini oluşturabilir, silebilir, sorgulayabilir ve güncelleyebilirsiniz.
id: RAM kullanıcısının ID'si; evrensel olarak benzersizdir ve sunucu tarafından oluşturulur.-
externalId: Bir RAM kullanıcısını şirket içi sisteminizdeki bir kullanıcıyla ilişkilendiren, istemci tarafından belirtilen benzersiz bir ID.NotKonsol üzerinden oluşturulan RAM kullanıcılarında
externalIdniteliği bulunmaz. userName: Her kullanıcı için istemci tarafından belirtilen benzersiz ad.displayName: İstemci tarafından belirtilen RAM kullanıcısının görünen adı.
SCIM API'lerini kullanarak kullanıcı verilerini senkronize etmek için:
-
Yetkilendirilmiş sunucu uygulamasının ID'sini (client_id) ve gizli anahtar değerini (AppSecretValue) alın.
client_id: Uygulama ID'si. Bu ID'yi Adım 1: Bir OAuth uygulaması oluşturun ve yetkilendirin bölümünden alabilirsiniz.
AppSecretValue: Uygulama gizli anahtarı. Bu değeri Adım 1: Bir OAuth uygulaması oluşturun ve yetkilendirin bölümünden alabilirsiniz.
-
Bir
access_tokenalmak içinclient_idveAppSecretValuedeğerlerini içeren bir isteğihttps://oauth.aliyun.com/v1/tokenadresine gönderin.Authorization başlığı
"Authorization: Basic Base64Encode(client_id:AppSecretValue)"formatını kullanmalıdır. Örneğin, client_id=cid ve AppSecretValue=123456 ise Authorization başlığı"Authorization: Basic Y2lkOjEyMzQ1Ng=="olmalıdır.Örnek istek:
curl --location --request POST --header "Authorization: Basic Y2lkOjEyMzQ1Ng==" https://oauth.aliyun.com/v1/token?grant_type=client_credentials&client_id=463790568674183****Örnek yanıt:
{ "scope": "/acs/scim", "request_id": "8dc768e0-d6fe-4f52-a788-05631dd6c584", "access_token": "eyJ***hKg", "token_type": "Bearer", "expires_in": "3599" } -
Alibaba Cloud SCIM'in desteklediği
ResourceTypeveSchemadeğerlerini sorgulayın.Desteklenen
ResourceTypedeğerlerini sorgulamak için:curl --location --request GET 'https://scim.alibabacloud.com/ResourceTypes'Desteklenen
Schemadeğerlerini sorgulamak için:curl --location --request GET 'https://scim.alibabacloud.com/Schemas' -
RAM kullanıcılarını oluşturun, sorgulayın, güncelleyin ve silin.
-
Bir RAM kullanıcısı oluşturun.
Şirket içi sisteminizdeki kullanıcıyla eşleşen userName, displayName ve externalId değerlerini belirtin.
Örnek istek:
curl --location --request POST 'https://scim.alibabacloud.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****" }'Örnek yanıt:
{ "displayName": "j2gg0s_****", "meta": { "created": "2020-02-14T03:58:59Z", "location": "https://scim.alibabacloud.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****" } -
Belirli bir RAM kullanıcısını sorgulayın.
Bir RAM kullanıcısını
idile sorgulamak içinGET /Users/{id}kullanın.Bir RAM kullanıcısını
externalIdile sorgulamak içinGET /Users?filter=externalId eq xxxkullanın.-
Bir RAM kullanıcısını
userNameile sorgulamak içinGET /Users?filter=userName eq xxxkullanın.Örnek istek:
curl --location --request GET 'https://scim.alibabacloud.com/Users?filter=userName%20eq%20%22j2gg0screatedbyscim****%22' \ --header 'Authorization: Bearer eyJ***hKg'Örnek yanıt:
{ "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.alibabacloud.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****" } ] }NotSCIM filtreleri için Alibaba Cloud yalnızca
id,userNameveexternalIdnitelikleri üzerindeandveeqişlemlerini destekler.
-
RAM kullanıcı niteliklerini güncelleyin.
Örnek istek:
curl --location --request PUT 'https://scim.alibabacloud.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****" }'Örnek yanıt:
{ "displayName": "j2gg0s_new_****", "meta": { "created": "2020-02-14T03:58:59Z", "location": "https://scim.alibabacloud.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****"} -
Bir RAM kullanıcısını silin.
Örnek istek:
curl --location --request DELETE 'https://scim.alibabacloud.com/Users/27648498165273****' \ --header 'Authorization: Bearer eyJ***hKg' \ --header 'Content-Type: application/json'HTTP 204 durum kodu başarılı bir silme işlemini onaylar.
NotAlibaba Cloud yumuşak silmeyi (soft delete) desteklemez. Verileri senkronize etmeden önce tüm yumuşak silme işlemlerini kalıcı silmeye (hard delete) eşleştirin.
-