# SCIM 2.0

> Okta, Microsoft Entra ID, OneLogin ya da JumpCloud'dan kullanıcıları otomatik açın, güncelleyin ve kapatın.

SCIM (System for Cross-domain Identity Management), kimlik sağlayıcınızdaki kullanıcı değişikliklerini CRM'e otomatik taşır: işe başlayan kişi CRM kullanıcısı olur, ayrılan kişinin erişimi kapanır.

| | |
|---|---|
| Taban adres | `https://<firma>.solk.app/api/scim/v2` |
| Kimlik | `Authorization: Bearer <SCIM anahtarı>` |
| Kaynaklar | `Users` (gruplar eşitlenmez) |
| Süzgeç | `userName eq "…"`, `id eq "…"` |
| İçerik türü | `application/scim+json` |

## Kurulum

:::steps
### SCIM anahtarı alın

CRM'de **Ayarlar → Uygulamalar → Okta / Entra ID (SCIM)** kartını bağlayın. Kart taban adresi ve SCIM anahtarını gösterir. Anahtar yalnız SCIM uçlarında geçerlidir; REST API'de kullanılamaz.

### Kimlik sağlayıcıyı ayarlayın

**Okta:** Applications → uygulamanız → Provisioning → Integration → *SCIM connector base URL* = taban adres, *Unique identifier field* = `userName`, *Authentication Mode* = HTTP Header, *Authorization* = anahtar. **To App** bölümünde *Create Users*, *Update User Attributes*, *Deactivate Users*'ı açın.

**Microsoft Entra ID:** Enterprise applications → uygulamanız → Provisioning → Automatic → *Tenant URL* = taban adres, *Secret Token* = anahtar → **Test Connection**.

### Kullanıcıları atayın

Kimlik sağlayıcıda uygulamaya atadığınız kullanıcılar CRM'de açılır.
:::

## Davranış

| Kimlik sağlayıcıda | CRM'de |
|---|---|
| Kullanıcı atandı | Kullanıcı **satış** rolüyle açılır, e-postasına şifre belirleme daveti gider. |
| Ad, e-posta, departman, telefon değişti | Kullanıcı güncellenir. |
| Kullanıcı askıya alındı / atama kaldırıldı (`active: false`) | Kullanıcı kapatılır: giriş yapamaz, mobil oturumları ve API anahtarları düşer. Kayıtları kalır. |
| Kullanıcı silindi (`DELETE`) | Kapatılır (silinmez). |
| Yeniden etkinleştirildi | Kullanıcı açılır (lisansta boş koltuk gerekir). |

- `userName` CRM'de e-posta adresi olarak kullanılır; aynı e-postayla ikinci kullanıcı açılmaz (`409 uniqueness`).
- Rol (yönetici / satış) ve modül izinleri CRM'de atanır; SCIM bunları değiştirmez.
- Son etkin yönetici SCIM ile kapatılamaz.
- Departman, SCIM kurumsal uzantısındaki `department` alanından gelir ve [takım görünürlüğünde](/users-and-roles#visibility) kullanılır.

## Örnek: kullanıcı açma

```bash
curl https://ornek.solk.app/api/scim/v2/Users \
  -H "Authorization: Bearer $SCIM_TOKEN" \
  -H "Content-Type: application/scim+json" \
  -d '{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
    "userName": "ayse.demir@ornekkimya.com.tr",
    "name": { "givenName": "Ayşe", "familyName": "Demir" },
    "emails": [{ "value": "ayse.demir@ornekkimya.com.tr", "primary": true }],
    "active": true,
    "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { "department": "Satış" }
  }'
```

Tüm SCIM uçları ve gerçek yanıtları başvuru bölümünde: [Kullanıcıları listele](/rest-api/scim/users-list), [Kullanıcı aç](/rest-api/scim/users-create), [Kullanıcıyı güncelle](/rest-api/scim/users-update), [Kullanıcıyı kapat](/rest-api/scim/users-delete).

## Hatalar

SCIM hataları SCIM biçimindedir:

```json
{ "schemas": ["urn:ietf:params:scim:api:messages:2.0:Error"], "status": "401", "detail": "Geçersiz ya da eksik SCIM anahtarı." }
```