SCIM ve Kullanıcı Yaşam Döngüsü
SCIM & User Lifecycle
Bu derste neler öğreneceksin
- SCIM'in ne olduğunu ve SAML SSO'dan farkını açıklamak
- SCIM ile otomatik kullanıcı provision/deprovision sürecini anlamak
- SCIM yapılandırmasında dikkat edilecek kritik noktaları bilmek
SCIM (System for Cross-domain Identity Management), kullanıcıların IdP’deki durumuna göre GitHub’da otomatik olarak oluşturulmasını (provisioning) ve kaldırılmasını (deprovisioning) sağlayan standarttır.
SAML vs SCIM Farkı
| SAML SSO | SCIM | |
|---|---|---|
| Amaç | Kimlik doğrulama | Kullanıcı yönetimi |
| Ne zaman çalışır? | Her giriş denemesinde | IdP’deki değişikliklerde |
| Kullanıcı oluşturma | Hayır (JIT) | Evet |
| Kullanıcı silme | Hayır | Evet (deprovision) |
| Grup sync | Hayır | Evet |
SAML SSO olmadan SCIM çalışmaz — ikisi birlikte yapılandırılmalıdır.
SCIM Provisioning Akışı
- IdP’de yeni çalışan oluşturulur veya GitHub App’e atanır
- IdP, GitHub SCIM endpoint’ine
POST /scim/v2/Usersgönderir - GitHub kullanıcıyı oluşturur, org’a ekler
- Çalışan işten ayrıldığında: IdP
PATCHileactive: falsegönderir - GitHub kullanıcıyı suspend eder (siler değil — suspend önemli!)
Kritik: SCIM ile deprovisioned kullanıcılar silinmez, suspend edilir. Bu ayrım sınav sorularında sıkça çıkar. Suspend edilen kullanıcının repositoryleri ve commit geçmişi korunur.
GitHub SCIM Endpoint
https://api.github.com/scim/v2/organizations/{org}/
Her SCIM isteği Authorization: Bearer <PAT> ile doğrulanır. Bu PAT admin:org scope’una sahip olmalıdır.
Grup Sync
SCIM ile IdP grupları, GitHub teams’e eşlenebilir:
- IdP grubuna üye ekleme → GitHub team’e otomatik ekleme
- IdP grubundan üye çıkarma → GitHub team’den otomatik çıkarma
Bu özellik özellikle büyük organizasyonlarda manuel kullanıcı yönetimini ortadan kaldırır.
Desteklenen IdP’ler
GitHub SCIM’i resmi olarak destekleyen IdP’ler:
- Okta (en yaygın)
- Azure Active Directory / Microsoft Entra ID
- OneLogin
- SCIM 2.0 uyumlu diğer IdP’ler (test gerektirir)