Kimlik Bilgileri
Apinizer'da Kimlik Yönetimi ile yapılan erişim denetimi ayarı 2 farklı şekilde yapılandırılabilir:
- Kimlik bilgileri üzerinden: Kimlik bilgisinin detayına gidilir. Kimlik bilgisinin detayında erişim izni verilmiş API Proxy'ler ve ayarları görüntülenerek işlem yapılır.
- API Proxy'ler üzerinden: API Proxy'nin detayına gidilir. API Proxy'e erişim izni verilmiş kimlik bilgileri görüntülenerek işlem yapılır.
Bu sayfa, birinci seçenekteki koşulu gerçekleştirir.
Kimlik bilgisi erişim izni, API proxy'e erişim için tek başına yeterli değildir. Kimlik bilgisindeki ve erişim iznindeki ayarların geçerli olması için API Proxy üzerinde kimlik doğrulama politikalarından birisi eklenmiş olmalı ve bu politikada kimlik doğrulama şekli olarak Security Manager seçeneği seçili olmalıdır.
Kimlik Bilgisi Listesi
Kimlik bilgileri sayfası ilk açıldığında mevcut kimlik bilgilerinin listelendiği görsele aşağıda yer verilmiştir:
Ekran bileşenleri için kullanılan alanlar aşağıdaki tabloda görülmektedir.
| Alan | Açıklama |
|---|---|
| Arama Alanı (Advanced Search) | Kimlik bilgileri üzerinde detaylı arama yapmak için kullanılır. |
| Kimlik Bilgisi Listesi (Access Control List) | Kimlik bilgilerinin listelendiği ve sıralandığı tablodur. |
| Oluştur (Create) | Yeni "Kimlik Bilgisi" oluşturmak için kullanılır. |
| CSV'den İçe Aktar (Import From CSV) | Topluca kimlik bilgisi kaydedilmesi için kullanılır. |
| Veriyi Aktar (Import) | Kimlik bilgisini .json veya .zip uzantılı olarak içe aktarmak için kullanılır. |
| Kimlik Bilgileri Listesini Excel Dosyası Olarak Dışa Aktar (Export Credential List as an Excel File) | Kimlik bilgileri listesini excel dosyası olarak indirmek için kullanılır. |
| Dışa Aktar (Export) | Kimlik bilgisine ait tüm veriler, başka bir proje de tekrar kullanmak için dışa aktarılabilir. Bu süreçte, sadece genel bilgiler dışa aktarılır. Gelişmiş ayarlar, API Proxy EKL, API Proxy Grup EKL, JWK ayarları ve mTLS ayarları, proje bazında bilgiler oldukları için dışa aktarılmaz. |
CSV ile Toplu Kimlik Bilgisi Aktarımı
Hali hazırda mevcut olan kimlik bilgilerinin Apinizer'a aktarımı için CSV'den aktar özelliği kullanılabilir.
Bu özellik kullanılmak istenirse;
Mevcut kullanıcı bilgileri her bir kayıt bir satıra gelecek şekilde yazılmalıdır.
Kayıt içerisinde kullanıcı adı ve parola bilgisi beraber ve parola bilgisi açık olarak yer almak zorundadır.
kullanıcı adı ve parola bilgisi arasına ayıraç olarak # işareti koyulmalıdır.
Her bir satır Enter tuşu ile ayrılmalıdır.
Bu şekilde hazırlanan veriler açılan ekrana girilerek içe aktar tuşuna basılır.
Kimlik Bilgisini Dışa Aktarma
Kimlik Bilgisi'ni dışa aktarmak için satır sonundaki menüden Dışa Aktar (Export) seçilir.
Kimlik Bilgisini Globalleştirme
Kimlik bilgileri "Globalleştir" seçeneği ile Admin sayfasına taşınarak görünümü bu listeden kalkar, tüm projelerde kullanılabilir hale gelir ve yönetimi Admin kullanıcısına bırakılır.
Kimlik Bilgisi'ni globalleştirmek için satır sonundaki menüden Globalleştir (Move to Global) seçilir.
Kimlik Bilgisi Oluşturma
Kimlik bilgileri eklemek için Oluştur (Create) tuşuna basıldığında aşağıda görseli paylaşılan ekran gelir:
Bu görselde de görüldüğü üzere kimlik bilgilerinin üzerinde iki tür işlem yapabiliriz:
- Kimlik bilgisinin detaylarının girilmesi, oluşturulması veya güncellenmesi
- Kimlik bilgisinin erişim denetimi listesinin oluşturulması veya güncellenmesi
Kimlik bilgisi alanlarının açıklamaları şu şekildedir:
| Alan | Açıklama |
|---|---|
| Kullanıcı Adı (Client Id/Username) | Kimliği ifade edecek "kullanıcı adı" bilgisidir, yetkilendirme için kullanıcı kimliğine erişmek için bu değer kullanılır. Tüm sistemde tekil ve biricik olmak zorundadır. |
| Parola (Client Secret/Password) | Kimliğin parola bilgisidir. İstenirse yanındaki tuş ile otomatik oluşturulabilir. |
| E-Posta (E-mail) | Kimliğin sahibi istemciye erişmek için kullanılan ve istemciye ait mail bilgisidir. |
| Tam Adı (Full Name) | Kimliğin sahibi istemcinin tam adıdır. |
| Aktif (Enabled) | Kimlik bilgisinin aktif (kullanılabilir) olup olmadığını belirtir. Seçilmiş ise aktiftir. |
| Geçerliliğini Yitirme Zamanı (Expires On) | Bu tarih değerinin girilmesi durumunda Kimlik Bilgisi bu tarihten itibaren erişemez hale gelir. |
| Kurum (Organization) | Kimlik bilgisinin bağlı olduğu kurum/organizasyon bilgisi isteğe bağlı olarak seçilebilir. Raporlamanın ötesinde, bu bağlantı bu kimlik bilgisi için üretilen token'lara kurum seviyesi metadata olarak miras kalır — bkz. Kurum Seviyesi Metadata. |
| Roller (Roles) | Kimlik bilgisinin sahip olduğu rollerdir. Bu rollere göre yetkilendirme yapılır. |
| IP Listesi (IP List) | Kimlik bilgisinin sadece belli IP adreslerden gelmesi gerekiyorsa, bu kimlik bilgisinin hangi IP adreslerinden erişebileceği bilgisi buraya girilir. Boş bırakılması tüm IP'lerden isteğin kabul edileceği anlamına gelir. |
| IP Coğrafi Konum (IP Geolocation) | Kimlik bilgisinin sadece belirli ülkelerden erişim yapmasına izin vermek için kullanılır. Ülke seçimi yapılabilir. Varsayılan olarak "Countries: All" seçilidir ve tüm ülkelerden erişime izin verir. |
| Açıklama (Description) | Kimlik bilgisi hakkında açıklama girilmek istenirse bu alan doldurulabilir. |
| Gelişmiş Ayarları Aktifleştir (Enable Advanced Settings) | Kimlik bilgisinin parola ve IP listesinin ortam bazlı özelleştirilme ihtiyacı varsa, bu seçenek ile özelleştirme ayarları aktif hale gelir. Seçildiğinde her bir ortam için parola ve IP listesi girilebilir hale gelir. |
| Ortam Parolası (Environment Password) | İlgili satırdaki ortama özel olarak kullanılmak üzere parola girilebilir. |
| Ortam IP Listesi (Environment IP List) | İlgili satırdaki ortama özel olarak kullanılmak üzere IP listesi girilebilir. |
Kimlik Bilgisi Erişim Denetimi Ayarları
Kimlik bilgisinin erişim izinlerini ayarlamak için Erişim Denetimi (Access Control List) paneline geçilerek işlem yapılır.
Bu panelde erişim izni verilmek istenen API Proxy aşağıdaki görselde kırmızı ile işaretli tuşa basılarak karşımıza çıkan ekrandan seçilir.
Açılan ekrandan ayarlamak istenilen API Proxy(ler) seçilir ve aşağıda kırmızı ile işaretlenmiş Ekle (Add) tuşuna basılır.
Bu işlem ile kimlik bilgisine seçilen API Proxy'ler için erişim izni verilmiş olur. Bu işlemin canlı çalışan kurallar üzerinde aktif hale gelebilmesi için ortamlara yüklenmesi gereklidir.
Bunun için işlemler tamamlandığında sağ üst köşedeki Kaydet ve Yükle (Save and Deploy) tuşuna basılarak ayarların aktifleşmesi sağlanır.
API Proxy Bazlı Özelleştirme
API Proxy bazında kimlik bilgisinin özelleştirilmesi için ilgili API Proxy kaydındaki Düzenle (Edit) linkine basılır.
Karşımıza çıkan dialogda kimlik bilgisinin bu API Proxy'e özel ayarları yapılabilir:
API Proxy bazlı erişimi özelleştirme konfigürasyonu için kullanılan alanlar aşağıdaki tabloda görülmektedir.
| Alan | Açıklama |
|---|---|
| Geçerliliğini Yitirme Zamanı (Expires On) | Bu tarih değerinin girilmesi durumunda Kimlik Bilgisi bu tarih geldiği zamandan itibaren API Proxy'e erişemez hale gelir. |
| Ortam Listesi (Environment List) | API Proxy'nin yüklendiği ortama özel olarak Kota ve Daraltma değerlerinin girilebilmesini sağlar. |
| Ortam Kotası (Quota) | API Proxy'nin belirtilen ortama özel Kota değeridir. |
| Ortam Daraltması (Throttling) | API Proxy'nin belirtilen ortama özel Daraltma değeridir. |
| Mesaj Sayısı (Message Count) | Daraltma Aralığı ile verilen süre içinde Backend API'ye gönderilebilecek olan maksimum mesaj sayısıdır. |
| Daraltma Zaman Miktarı (Interval Time Amount) | Seçilen zaman birimi cinsinden, sınırlama penceresinin süresini belirten sayısal değer. |
| Daraltma Zaman Birimi (Interval Time Unit) | API istek sınırlaması için kullanılan zaman aralığı birimi (örneğin, saniye, dakika). |
| Periyot Tipi (Interval Window Type) | API istek sınırlaması için kullanılan zaman aralığı yöntemi (sabit veya kayan). |
| Cache Bağlantısı Zaman Aşım Süresi (Cache Connection Timeout (Second)) | Cache bağlantısı için zaman aşımı süresi belirtilir. |
| Cache Bağlantı Hatası Eylemi (Action for Cache Connection Error) | Eğer politika cache sunucusuna bağlantı sorunu yaşarsa uygulanacak eylem belirtilir. |
| İzin Verilmeyen Metodlar (Disallowed Methods) | Kimlik bilgisinin sahip olduğu rollerinden bağımsız olarak API Proxy'nin herhangi bir metoduna erişmemesi isteniyorsa, burada API Proxy'nin erişime kapatılmak istenen metodları seçilir. |
| Kaydet ve Yükle Tuşu (Save and Deploy) | Ayarların/değişikliklerin tamamlanması sonrasında Kaydet ve Yükle tuşuna basılarak ayarların aktifleşmesi sağlanır. |
Token Ayarları
Token ayarları için Token Ayarları (Token Settings) paneline geçilerek işlem yapılır.
Token ayarlarını içeren görsele aşağıda yer verilmiştir:
Token ayarları konfigürasyonu için kullanılan alanlar aşağıdaki tabloda görülmektedir.
| Alan | Açıklama |
|---|---|
| Onay Türü (Grant Type) | Buna göre token üretimi istenecek olan bilgiler değişmektedir. Client Credentials veya Password. |
| Kimlik/Yetki Doğrulama Servisi (Identity/Role/Group Service) | Grant Type password ise; gönderilecek olan username, password bilgisinin nereden doğrulanacağını belirten kimlik sağlayıcı servisidir. |
| JWT Rejeneratör API Servisi (Select to JWT Regenerator Service API) | Bu özellik yalnızca JWT token kullanımında geçerlidir. JWT token değerinin seçilen API üzerinden kimlik doğrulama olmaksızın tekrar oluşturulmasını sağlar. |
| Önceki Token'ı Sil (Delete Previous Token) | Bu özellik yalnızca OAuth2 token kullanımında geçerlidir. Yeni token alımlarında ya da yapılan yenilemelerde, önceki token'ı geçersiz hale getirir. |
| Token Ölümsüz Olsun (Token Never Expires) | Bu seçenek işaretlenirse token zamana bağlı olarak geçersiz hale gelmez, istenildiği kadar kullanılabilir. |
| Token Geçerlilik Süresi (Token Expires In) | Token'ın kullanılabilir olacağı yaşam süresini belirtir. |
| Token Yenileme Olsun (Refresh Token Allowed) | Token'ın yenilenme özelliğini etkinleştirir. |
| Token Yenileme Sayısı (Refresh Token Count) | Token'ın kaç kez yenilenebilir olacağını belirtir. |
| Yenilenmiş Token Geçerlilik Süresi (Refresh Token Expires In) | Her bir yenilemede, token'ın ne kadarlık yaşam süresine sahip olacağını belirtir. |
| JWT İmzalama Algoritması (JWT Signature Algorithm) | Bu özellik yalnızca JWT token kullanımında geçerlidir. Token üretilirken kullanılacak olan imza algoritmasını seçmek için kullanılır. |
| URL Parametrelerine İzin Ver (Allow URL Parameters) | Token Servisine token üretimi için istek gönderilirken bilgilerin URL parametresi halinde de gönderilmesine izin verir. Güvenlik açısından risk oluşturacağından kullanılmaması tavsiye edilir. |
Client Authentication — Authorization Basic Header Desteği (RFC 6749 §2.3.1)
Örnek:
- Basic Authorization Header (Yeni — 2026.04.4)
- Body Parametreleri (Geriye Dönük Uyumlu)
curl -u "my-client-id:my-secret" \
-d "grant_type=client_credentials" \
https://gateway.example.com/credential/token
curl -d "grant_type=client_credentials&client_id=my-client-id&client_secret=my-secret" \
https://gateway.example.com/credential/token
Önemli Kurallar:
- Çift gönderim yasağı: Aynı istekte hem Authorization Basic header'ı hem body'de
client_id/client_secretparametreleri gönderirseniz, sunucu HTTP 400 (invalid_request) ile reddeder (RFC 6749 §2.3.1 "MUST NOT" kuralı). - Bozuk header işlemesi: Base64-decode edilemeyen veya eksik Basic header'lar HTTP 401 (
invalid_client) ile reddedilir. - Diğer Authorization scheme'leri: Basic dışındaki yetkilendirme türleri (örn.
Bearer,Digest) görmezden gelinir; bu durumda body parametreleri kullanılır. - Şifre ve kullanıcı adı: PASSWORD grant akışında
usernamevepasswordher zaman request body'de gönderilir; Authorization header sadececlient_id/client_secretiçin kullanılır.
JWK Ayarları
JWK ayarları sekmesinde gelen kimlik bilgisinin JWK anahtarları ile ilgili verisinin decrypt edilmesi ve/veya imzasının doğrulanabilmesi için gerekli olan JWK anahtarları seçimleri yapılır.
JWK ayarlarını içeren görsele aşağıda yer verilmiştir:
JWK Ayarları etkinleştirildiğinde karşımıza çıkan dialog aşağıdaki gibidir:
JWK ayarları konfigürasyonu için kullanılan alanlar aşağıdaki tabloda görülmektedir.
| Alan | Açıklama |
|---|---|
| JOSE İmza & Doğrulama için JWK (JWK for JOSE Sign & Validation) | Kimlik bilgisinin sahip olduğu imzalama/imza doğrulama JWK anahtarıdır. JOSE Validation/Implementation politikalarında kullanıcının anahtarı kullanılsın denildiğinde imzalama/imza doğrulama için bu JWK kullanılır. |
| JOSE Encryption & Descryption için JWK (JWK for JOSE Encryption & Descryption) | Kimlik bilgisinin sahip olduğu şifreleme/şifre doğrulama JWK anahtarıdır. JOSE Validation/Implementation politikalarında kullanıcının anahtarı kullanılsın denildiğinde şifreleme/şifre doğrulama için bu JWK kullanılır. |
mTLS Ayarları
mTLS ayarları sekmesinde gelen kimlik bilgisinin mTLS Authentication Poliçesi ile sertifikasının doğrulanabilmesi için gerekli olan truststore seçimi yapılır.
mTLS ayarlarını içeren görsele aşağıda yer verilmiştir:
mTLS ayarları konfigürasyonu için kullanılan alanlar aşağıdaki tabloda görülmektedir.
| Alan | Açıklama |
|---|---|
| Truststore (Truststore) | Truststore seçilir. Eğer daha önce tanımlı değil ise yandaki + butonuna basarak yeni bir tane oluşturulabilir. |
Metadata
Her kimlik bilgisi üzerinde serbest tanımlı anahtar/değer metadata girişleri oluşturabilirsiniz. Bu girişler kimlik bilgisi ile birlikte saklanır, isteğe bağlı olarak şifrelenir ve şu kanallara aktarılabilir:
- JWT token payload — JWT'ye Ekle seçeneği aktifse, giriş token oluşturma sırasında JWT body'sine custom claim olarak eklenir. Hassas işaretli girişler bu kuralın dışındadır (aşağıdaki uyarıya bakın).
- OAuth token endpoint response body — Token Yanıtına Ekle seçeneği aktifse, giriş
/oauth/tokenJSON response'una ek bir alan olarak eklenir. - Script politikaları (Groovy / JavaScript) — script içinden
credentialMapile erişilir (bkz. aşağıdaki Script Erişimi). Script bağlamı, include seçeneklerinden bağımsız olarak tüm metadata'yı (hassas değerler dahil) görür. - APIops
GET /apiops/projects/{projectName}/credentials/{username}response'unda görünür. Hassas (secret) değerler***ile maskelenir.
Alanlar
| Alan | Açıklama |
|---|---|
| Anahtar (Key) | Metadata girişinin benzersiz tanımlayıcısı. Boş olamaz; aynı credential üzerinde tekrarlanan anahtarlar save sırasında reddedilir. |
| Değer (Value) | Serbest formda değer. Hassas aktif olduğunda şifrelenmiş olarak saklanır. ${env.X} / #{ctx.Y} placeholder'ları runtime'da çözümlenir. |
| Hassas (Secret) | Aktif olduğunda değer at-rest şifrelenir ve yönetim/APIops credential listelemelerinde *** ile maskelenir. Token endpoint response'unda ise TLS üzerinden açık (çözülmüş) olarak teslim edilir; imzalı JWT herkesçe okunabilir olduğundan JWT claim'i olarak hiçbir zaman eklenmez. Her giriş için bağımsız ayar. |
| JWT'ye Ekle (Include in JWT) | Aktif olduğunda giriş JWT claim'i olarak token'a eklenir. Hassas işaretli girişler bu seçenek açık olsa dahi JWT'ye dahil edilmez. OAuth-opaque grant tiplerinde devre dışıdır. |
| Token Yanıtına Ekle (Include in Token Response) | Aktif olduğunda giriş OAuth token endpoint response body'sine eklenir. Token Yönetim Ayarları'ndaki alan isimlendirmelerine uyar. |
| JWT Claim Adı | Opsiyonel: claim/alan adı override'ı. Boş bırakılırsa girişin Anahtar değeri kullanılır. |
Hassas işaretli alanlar, herkesçe okunabilen imzalı JWT'ye hiçbir zaman claim olarak yazılmaz — JWT'ye Ekle açık olsa bile. Hassas değerler yalnızca token endpoint response gövdesiyle (TLS üzerinden, kimliği doğrulanmış istemciye) teslim edilir. JWT içine gömülmesi gereken hassas olmayan değerler için Hassas seçeneğini kapalı tutun.
Rezerve İsimler
Aşağıdaki isimler, JWT'ye Ekle veya Token Yanıtına Ekle aktif girişlerde kullanılamaz. UI ve backend'de save reddedilir.
- JWT (RFC 7519):
iss,sub,aud,exp,nbf,iat,jti - JWT (Apinizer dahili):
X-ApplicationName,X-IssuedAt,X-ExpiresAt,X-ExpiresInMillis,scope,X-RefreshTokenExpiresAt,X-RefreshTokenExpiresInMillis,X-RefreshTokenIssuedAt,X-RefreshCount,X-MaxRefreshCount,X-ApiResponse,X-RefreshToken - OAuth response (RFC 6749):
access_token,refresh_token,token_type,expires_in,scope,state,error,error_description,error_uri - OAuth response (Apinizer dahili):
X-ApplicationName,X-IssuedAt,X-ExpiresAt,X-RefreshTokenIssuedAt,X-RefreshTokenExpiresAt,X-RefreshCount,X-ApiResponse - OAuth response (dinamik): Token Yönetim Ayarları altında OAuth yanıt alanları için tanımladığınız özel adlar (örn. access token veya scope alanı için verdiğiniz isimler) da rezerve sayılır.
Kurum Seviyesi Metadata
Kurumlar (Organization) da aynı metadata yapısını destekler. Kurum metadata'sı, o kuruma bağlı (Kurum alanı bu kurumu gösteren) tüm kimlik bilgileri için varsayılan olarak uygulanır. Token üretiminde önce kurum metadata'sı uygulanır; aynı anahtar kimlik bilgisi üzerinde de tanımlıysa kimlik bilgisinin değeri öncelik kazanır (kimlik bilgisi seviyesi, kurum seviyesini geçersiz kılar). Kurum tek başına token üretmez; kurum yalnızca bağlı kimlik bilgileri için metadata miras sağlar.
Script Erişimi
Script politikalarından (Groovy / JavaScript) metadata'ya credentialMap bağlama değişkeniyle erişilir; kullanıcı adı veya istemci kimliği ile sorgulanır:
credentialMap["kullanıcıAdı"].metadata— birleştirilmiş (kurum + kimlik bilgisi) metadatacredentialMap["kullanıcıAdı"].credentialMetadata— yalnızca kimlik bilgisi metadata'sıcredentialMap["kullanıcıAdı"].organizationMetadata— yalnızca kurum metadata'sı
credentialMap yalnızca sorgulama içindir; tüm kullanıcıların listelenmesi veya değiştirilmesi desteklenmez. Script bağlamı hassas değerleri de okuyabilir.