> For the complete documentation index, see [llms.txt](https://docs.kangal.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kangal.dev/tr/consumerlar/consumers.md).

# Consumer genel bakış

Consumer, tenant'a ait API kimliğidir. Consumer'lar yönetilen credential, grup üyeliği, tag, dış sistem `custom_id` değeri ve realm taşıyabilir. Kimlik doğrulamasından sonra Kangal, consumer ve grup kimliğini ACL, rate-limit ve kapsamlı politikaların kullanımına sunar.

Consumer kimliği ile authorization ayrı kontrollerdir. Korunan trafiğe desteklenen bir kimlik doğrulama eklentisi bağlayın; erişim grup üyeliğine veya başka bir kimlik niteliğine bağlıysa ACL kuralları ekleyin.

## Consumer alanları

| Alan        | Gereksinim ve kullanım                                                           |
| ----------- | -------------------------------------------------------------------------------- |
| `tenant_id` | Zorunlu tenant sahibi. Yönetici erişimi tenant kapsamlıdır.                      |
| `username`  | Zorunludur ve tenant içinde unique olmalıdır.                                    |
| `custom_id` | İsteğe bağlı dış sistem kimliği; gönderildiğinde tenant içinde unique olmalıdır. |
| `tags`      | Filtreleme ve operasyon için isteğe bağlı etiketler.                             |
| `realm`     | Consumer'ları düzenlemek ve filtrelemek için isteğe bağlı realm.                 |
| `groups`    | ACL ve kapsamlı politikaların kullandığı grup adları.                            |

Mevcut tenant ve username ile consumer oluşturmak mevcut consumer'ı döndürür. Yönetilen grup üyeliğini değiştirmek için membership endpoint'lerini kullanın.

## Consumer oluşturma

```bash
curl -X POST "$KANGAL_ADMIN_URL/api/v1/admin/consumers" \
  -H "Authorization: Bearer $KANGAL_ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "tenant_id": "tenant-a",
    "username": "orders-client",
    "custom_id": "crm-4217",
    "tags": ["production", "orders"],
    "realm": "partners",
    "groups": ["payments"]
  }'
```

Response consumer `id` değerini içerir. Credential ve grup üyeliği işlemlerinde bu değeri kullanın.

## API key oluşturma

Onaylı secret-management süreciyle yüksek entropy'li bir key üretin. Credential oluştururken bir kez gönderin ve çağıranın secret manager'ında saklayın.

```bash
curl -X POST "$KANGAL_ADMIN_URL/api/v1/admin/consumer-credentials" \
  -H "Authorization: Bearer $KANGAL_ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "consumer_id": "CONSUMER_ID",
    "type": "api_key",
    "key": "REPLACE_WITH_A_HIGH_ENTROPY_KEY",
    "tenant_id": "tenant-a"
  }'
```

Tenant, consumer üzerinden çözümlenebilir. İki değer birlikte gönderilirse eşleşmelidir.

Yönetilen key'in zorunlu olduğu gateway veya route'a `valid_keys: []` içeren `api_key_auth` bağlayın. Client, key'i `X-API-Key` ile gönderir.

```json
{
  "name": "api_key_auth",
  "trigger": "before_request",
  "config": {
    "valid_keys": [],
    "header_name": "X-API-Key"
  }
}
```

Consumer'ın ayrıca izin verilen bir grupta olması gerekiyorsa `acl_control` ekleyin. Bkz. [Kimlik doğrulama ve güvenlik](/tr/pluginler/auth-security.md).

## Desteklenen yönetilen credential'lar

| Tür       | Zorunlu değerler                                                     | Client girdisi                           | Enforcement                                                   |
| --------- | -------------------------------------------------------------------- | ---------------------------------------- | ------------------------------------------------------------- |
| `api_key` | `consumer_id`, `type`, yüksek entropy'li `key`                       | `X-API-Key`                              | `api_key_auth` bağlayın; gerekirse grup ACL ekleyin.          |
| `basic`   | `consumer_id`, `type`, `key` içinde username, `secret` içinde parola | TLS üzerinden `Authorization: Basic ...` | Consumer'ı izin verilen gruba ekleyip `acl_control` bağlayın. |

Credential ve consumer aynı tenant'a ait olmalıdır. Süresi dolmuş credential, consumer kimlik belirlemede kullanılmaz.

## Consumer listeleme ve filtreleme

```
GET /api/v1/admin/consumers
    ?tenant_id={tenant_id}
    &search={username_substring}
    &group={group_name}
    &realm={realm_name}
    &tag={tag}
```

`search`, username üzerinde case-insensitive substring eşleşmesi yapar. Group, realm ve tag filtreleri tam değer kullanır. Normal yöneticiler yalnızca kendi tenant kaynaklarına erişebilir.

## Konsol iş akışları

Tenant **Consumer'lar** sayfasını şu işlemler için kullanın:

* consumer'ları listeleme ve filtreleme;
* consumer ve realm oluşturma;
* yönetilen API key'leri oluşturma ve kaldırma;
* consumer grup üyeliğini inceleme;
* credential temizliğinden sonra consumer silme.

Gateway'e özel Consumer'lar sayfası gateway tenant'ındaki consumer'ları listeler. Consumer'lar tenant kaynağı olarak kalır ve gateway, route, ACL, rate-limit ve eklenti kapsamı politikalarıyla seçilebilir.

## Yaşam döngüsü gereksinimleri

Consumer'ı silmeden önce credential'larını silin:

1. credential'ları `GET /api/v1/admin/consumer-credentials?consumer_id={consumer_id}` ile listeleyin;
2. her credential'ı `DELETE /api/v1/admin/consumer-credentials/{credential_id}` ile silin;
3. consumer'ı `DELETE /api/v1/admin/consumers/{consumer_id}` ile silin.

Grubu yeniden adlandırmadan veya silmeden önce üyeliklerini [Credential ve gruplar](/tr/consumerlar/credentials-groups.md) bölümündeki gibi güncelleyin.

## Sorun giderme

| Belirti                                    | Kontrol                                                                                                                |
| ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------- |
| Consumer oluşturma mevcut kayıt döndürüyor | Tenant ve username bu consumer'ı zaten tanımlar. Dönen ID'yi kullanın.                                                 |
| API key reddediliyor                       | `X-API-Key`, tenant sahipliği, tam key, expiry ve bağlı `api_key_auth` örneğini doğrulayın.                            |
| Grup ACL `403` döndürüyor                  | Kimlik doğrulamasının başarılı olduğunu ve consumer'ın yapılandırılmış grup adlarından birine ait olduğunu doğrulayın. |
| Consumer kapsamlı eklenti çalışmıyor       | Eklenti seçicilerini doğrulayın ve eşleşen consumer'ı eklenti çalışmadan önce doğrulayın.                              |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.kangal.dev/tr/consumerlar/consumers.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
