SCIM — System for Cross-domain Identity Management nomli, foydalanuvchi va guruh ma’lumotlarini turli tizimlar o‘rtasida standart usulda yaratish, yangilash va o‘chirish uchun HTTPga asoslangan protokol. SCIM 2.0 tashkilot katalogidan bulut xizmatlariga identity lifecycle’ni avtomatlashtirishda ishlatiladi. U login yoki single sign-on protokoli emas: SAML va OpenID Connect kirishni tasdiqlasa, SCIM hisobning xizmatda mavjudligi va atributlarini boshqaradi.
Resurs modeli
Asosiy resurslar User va Groupdir. Har resurs server bergan id, tashqi tizimdagi yozuvni bog‘lovchi externalId, schema URIlar va metadata’ga ega. User resursida userName, ism, email, telefon hamda active kabi standart atributlar mavjud. Kengaytma schema tashkilotga bo‘lim, xodim raqami yoki menejer kabi qo‘shimcha atributlarni standart nomlar bilan uzatish imkonini beradi.
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"userName": "[email protected]",
"active": true,
"name": {"givenName": "Farrukh", "familyName": "Sherkulov"}
}
externalId provisioning client tomonidan beriladi va manba katalog yozuvi bilan korrelatsiya uchun ishlatiladi. Serverning ichki id qiymati o‘zgarmas va o‘sha SCIM endpoint doirasida noyob bo‘lishi kerak. Email o‘zgarishi mumkinligi sababli uni yagona bog‘lanish kaliti deb qabul qilish dublikat hisoblar yaratishi mumkin.
HTTP amallari
POST /Users yangi foydalanuvchi yaratadi, GET qidiradi, PUT resursni to‘liq almashtiradi, PATCH tanlangan atributlarni o‘zgartiradi. DELETE yozuvni o‘chirishi mumkin, lekin ko‘p identity tizimlarida active=false qilib deaktivatsiya qilish audit va qayta tiklash uchun qulayroq. PATCH operatsiyasi add, replace va remove turlariga ega.
Filter yordamida userName eq "[email protected]" kabi qidiruv bajariladi. Server sahifalashni startIndex, count va totalResults bilan ifodalaydi. Bulk endpoint ko‘p operatsiyani bitta so‘rovda jo‘natishi mumkin, ammo har bir amalning alohida natijasi tekshiriladi. /ServiceProviderConfig, /Schemas va /ResourceTypes endpointlari server imkoniyatlarini ochib beradi.
Provisioning hayot sikli
Tashkilotga yangi xodim qo‘shilganda identity platformasi kerakli xizmatlarda User yaratadi va guruh a’zoligini uzatadi. Lavozim o‘zgarsa atribut va guruhlar yangilanadi. Xodim ketganda active=false tez yuborilib, kirish to‘xtatiladi. Bu jarayon faqat davriy to‘liq sinxronizatsiyaga tayanmasdan, hodisaga yaqin ishlasa ortiqcha ruxsat oynasi qisqaradi.
SCIM orqali guruh kelishi dastur ichida aynan qanday rol berilishini service provider siyosati belgilaydi. Noma’lum guruh yuqori vakolatga xaritalanmaydi. Dastur lokal qo‘lda berilgan ruxsat bilan katalogdan boshqariladigan ruxsatni ajratishi yoki provisioning manbasini aniq “source of truth” sifatida belgilashi kerak.
Xavfsizlik va izchillik
SCIM endpoint shaxsiy ma’lumot va access boshqaruvini o‘zgartirgani sababli kuchli autentifikatsiya, TLS va minimal scope talab qiladi. Bearer token uzoq muddatli bo‘lsa, rotation va bekor qilish rejalashtiriladi. So‘rov hamda javob jurnallarida parolga o‘xshash maxfiy atributlar maskalanadi.
Retry dublikat yaratmasligi uchun client avval externalId bo‘yicha qidiradi yoki server idempotency siyosatidan foydalanadi. meta.version va HTTP ETag bir vaqtdagi yangilanishlar bir-birini sezmasdan bosib ketishini kamaytiradi. Xatolar SCIM error schema bilan qaytariladi; client faqat vaqtinchalik xatolarni boshqariladigan backoff bilan takrorlaydi.
SCIM server password atributini qabul qilishi mumkin bo‘lsa ham, ko‘p federativ muhitda parol IdPda qoladi va service providerga yuborilmaydi. Provisioning tokeni foydalanuvchi parolini “sinxronlash” vositasi sifatida ishlatilmaydi. returned, mutability va uniqueness kabi schema xususiyatlari atribut qachon yozilishi yoki javobda ko‘rinishini belgilaydi.
Bog‘liq tushunchalar
Identity provisioning, User lifecycle, SAML, OpenID Connect, Identity provider, Group, Deprovisioning