Portal Uygulamaları
Portal Uygulaması, API Portal'dan bir hesap/geliştirici tarafından oluşturulan ve API ürünlerine abone olmak, API anahtarı almak için kullanılan kayıttır. Bu sayfa, Portal Uygulamalarının Kimlik menüsünden yönetilmesini anlatır.
Portal Uygulamaları iki farklı menüden erişilebilir:
- Kimlik > Uygulamalar: Uygulamaların kimlik bilgisi/API anahtarı tarafına odaklanan görünüm. Bu görünümde API ürünü/plan bilgileri gösterilmez.
- Portal > Uygulamalar: Aynı kayıtların Portal yönetimi bağlamındaki görünümü; API ürünü abonelikleri de burada yer alır.
Her iki menüden de aynı uygulama kayıtlarına ulaşılır; aşağıda anlatılan oluşturma, düzenleme, silme ve ek bilgi (metadata) işlemleri her iki görünümde de geçerlidir.
Uygulama Türleri
Her uygulama, sahipliğini ve nerede görüneceğini belirleyen bir Tür bilgisi taşır:
| Tür | Açıklama |
|---|---|
| Portal | Olağan tüketici uygulamasıdır. Bir portala aittir, Portal hesabı/geliştiricisi tarafından ya da yönetici tarafından onun adına oluşturulur ve portalda görünür. |
| Dahili (Internal) | Kuruluşun kendi kullanımı için yönetici tarafından oluşturulan uygulamadır. Bir portala ait değildir ve hiçbir portal ekranında listelenmez: Portal kullanıcısı bu uygulamayı göremez, oluşturamaz ve düzenleyemez; uygulama üretime de yükseltilemez. |
Tür, uygulama oluşturulurken seçilir ve sonradan değiştirilemez. Türü görünmeyen bir uygulama, bu ayrım tanımlanmadan önce oluşturulmuş bir Portal uygulamasıdır.
Bir kuruluş için tanımlanan uygulama kotası yalnızca Portal uygulamaları için geçerlidir; Dahili uygulamalar bu kotadan düşülmez. Halihazırda dahili uygulaması olan bir kuruluşun yeni portal uygulaması açma hakkı bu sürümden itibaren artmış olur.
Uygulama Listesi
Listede uygulama adı, türü, bağlı olduğu hesap/geliştirici, kuruluş, oluşturulma tarihi ve referans numarası (Reference Id) görüntülenir. Listenin üstündeki Tür: Tümü filtresi listeyi tek bir türe indirger; hiçbir seçim yapılmadığında iki tür de listelenir. Listedeki bir uygulamaya tıklandığında uygulamanın detay sayfası açılır.
Listenin içeriği nereden açıldığına bağlıdır. Bir proje seçiliyken Identity → Applications menüsünden açıldığında yalnızca o projeye ait uygulamalar listelenir (projesi olmayan bir uygulama her projede görünür). Administration → Identity → Applications menüsünden açıldığında ise tüm projelerdeki uygulamalar listelenir ve her satırın hangi projeye ait olduğu Proje sütununda gösterilir.
Uygulama Oluşturma / Düzenleme
Yeni bir uygulama oluşturmak için listenin üstündeki Oluştur düğmesi kullanılır. Var olan bir uygulamayı düzenlemek için işlemler menüsündeki Düzenle seçeneği kullanılır.
| Alan | Açıklama |
|---|---|
| App Adı (Name) | Uygulamanın adıdır. Zorunlu alandır. |
| Tür (Type) | Portal ya da Dahili. Yalnızca uygulama oluşturulurken seçilebilir; var olan bir uygulamada salt okunur olarak gösterilir. Bkz. Uygulama Türleri. |
| Uygulama Anahtarı (Application Key) | Uygulama oluşturulurken sunucu tarafından üretilen kalıcı ve okunabilir kimliktir. Değiştirilemez; düzenleme ve detay ekranlarında kopyalama düğmesiyle birlikte gösterilir. |
| Reference Id | Uygulamayı dış sistemlerde tekil olarak tanımlamak için kullanılan referans değeridir. Uygulama oluşturulurken otomatik olarak üretilir, gerekirse elle değiştirilebilir. Zorunlu alandır. |
| Açıklama (Description) | Uygulama ile ilgili açıklama bilgisidir. |
| Hesap/Geliştirici (Account) | Uygulamanın bağlı olduğu Portal hesabı/geliştiricisidir. Zorunlu alandır. |
| Trafiği loglama (Do not log traffic) | Bu uygulamaya bağlı tüm tüketicilerin API trafiğinin trafik log konnektörlerine yazılmasını durdurur. Varsayılanı kapalıdır. Yalnızca oluşturma anında değil, Düzenle ekranından sonradan da değiştirilebilir; değişikliği kaydetmek uygulamanın tüketicilerini otomatik olarak yeniden dağıtır (elle redeploy gerekmez). Güncel değer detay ekranında rozet olarak görünür. Bkz. Bir Uygulamanın Trafik Logunu Kapatma. |
Düzenle ekranı, uygulamanın detay/Görüntüle sayfasındaki aynı salt-okunur Detaylar ve Bağlı Kaynaklar panellerini de gösterir — kuruluş, proje, oluşturulma tarihi, tür, trafik log durumu, uygulama anahtarı, referans id ve Consumer'lar/API Ürünleri sayıları — böylece Görüntüle'den Düzenle'ye geçildiğinde bu bağlam kaybolmaz. Burada düzenlediğiniz üç alan (ad, açıklama, trafiği loglama) yalnızca aşağıda canlı kontrol olarak gösterilir, salt-okunur panelde tekrarlanmaz.
Uygulama anahtarı uygulamayı kalıcı olarak tanımladığı için başka bir kayda taşınmaz: kopyalanarak ya da bir paket içe aktarılarak oluşturulan uygulama kendine ait yeni bir anahtar alır. Aynı kural kimlik bilgisi tüketici anahtarı için de geçerlidir.
Uygulama Detayı
Uygulama detay sayfasında Genel Bakış, API İstemcileri, Erişim ve Ek Bilgiler olmak üzere dört sekme yer alır.
Genel Bakış
Bu sekmede uygulamanın adı, türü, uygulama anahtarı, referans numarası, bağlı olduğu hesap/geliştirici, kuruluş ve oluşturulma tarihi görüntülenir. Ayrıca uygulamaya tanımlı API anahtarları listelenir: anahtarın kendisi, aktif/pasif durumu, oluşturulma ve (varsa) geçerlilik bitiş tarihi. Düzenleme ekranından uygulama için yeni bir API anahtarı üretilebilir veya var olan bir anahtar iptal edilebilir.
Düzenleme ekranındaki Üret düğmesi, yeni anahtarı üretmeden önce anahtarın ne kadar süre yaşayacağını soran küçük bir pencere açar. Varsayılan seçenek Süresiz'dir; bu seçenek açıkken üretilen anahtarın son kullanma tarihi olmaz. Kapatılırsa bir tarih/saat seçilir ve anahtar o tarihte kendiliğinden sona erer — geçmiş bir tarih seçilemez. Pencere İptal ile kapatılırsa hiçbir anahtar üretilmez.
Portal menüsünden açılan görünümde ayrıca uygulamanın abone olduğu API Ürünleri ve bunlara ait plan/onay durumu listelenir. Kimlik menüsünden açılan görünümde bu bilgi gösterilmez.
API İstemcileri
Bir uygulama kendi API istemcilerini taşıyabilir: kendi client kimliği ve kendi sürümlü client secret'ları olan, altındaki tek bir kimlik bilgisi adına değil uygulamanın kendisi adına token alan makine kimlikleri. Sekme, kimlik bilgisi ekranındakiyle birebir aynı çalışır — taslak oluştur, client secret üret, sonra etkinleştir. Client secret seremonisi, gösterim kuralları ve yetkilendirme modları için Kimlik Bilgileri sayfasına bakın.
Bir uygulamaya ait istemci Tümünü reddet modunda başlar. Yetkilendirme alt sekmesinde bir hedef adlandırılana kadar hiçbir şeye erişemez — ve yalnızca uygulamanın aşağıdaki Erişim sekmesinde zaten sahip olduğu bir hedef adlandırılabilir. Bu bir operatörü şaşırtabilir: canlı trafik API istemcilerine açık olduğundan (aşağıya bakın), yeni oluşturulmuş, uygulamaya ait bir istemci, bu ayar yapılana kadar her isteği reddeder — uygulamanın kendisi zaten geniş bir erişime sahip olsa bile.
Bir API istemcisi token alabilir ve bunu kullanarak doğrudan bir API Proxy'yi çağırabilir; bu, API İstemcisinin Yetkilendirilmesi ve Sahip ve İstemci Yaşam Döngüsü tarafından yönetilir. Bunlardan ikincisi uygulamanın kendisi için de geçerlidir: uygulamayı askıya almak, sahip olduğu her API istemcisi için hem canlı trafiği hem yeni token verilmesini — kendi kimlik bilgileriyle birlikte — anında keser; sahibi askıdayken istemcinin kendi durumu ve yetkilendirmesi önemsizdir. Aynı kesinti, uygulamanın bağlı olduğu kurum askıya alındığında da uygulanır.
Erişim
Bir uygulama kendi erişim yetkilerinin sahibidir. Bu yetkiler, altındaki kimlik bilgilerinin erişim listelerinden türetilmez: yeni oluşturulmuş bir uygulama, bu sekmede bir yetki yazılana kadar hiçbir şeye erişemez.
Her satır bir hedef adlandırır — bir API Proxy, bir API Proxy grubu, bir API ürünü ya da tek bir ortama daraltılmış bir API Proxy — ve bir geçerlilik penceresi, bir durum ve bir kaynak taşır.
- Geçerlilik penceresi yarı açıktır: başlangıç anı dahil, bitiş anı hariçtir. Böylece kendisinden sonrakinin başladığı anda biten bir yetki onunla asla çakışmaz. Açık uçlu bırakmak için alanı boş bırakın.
- Yetki taslak olarak oluşturulur ve Etkinleştir ile yürürlüğe girer. Satırın şekli o anda yeniden doğrulanır, çünkü bir taslak aradan geçen sürede değiştirilmiş olabilir.
- Bir yetkiyi sonlandırmak satırı silmez. Satır sonlandırılmış olarak işaretlenir ve tarihçenin parçası olarak kalır; böylece "bu uygulama geçen ay nelere erişebiliyordu" sorusunun cevabı korunur.
Bir yetki sonlandırıldığında, o hedefi gösteren API istemci kısıtları onunla birlikte kaldırılmaz, olduğu gibi bırakılır; sekme bu tür kaç kısıt olduğunu bildirir. Çalışma zamanı kararı, sahibin yetkileri ile istemcinin kısıtının kesişimi olduğundan, sahipsiz kalmış bir kısıt tek başına hiçbir erişim vermez — oysa veri silmek geri alınamaz.
Ek Bilgiler (Metadata)
Bu sekmede uygulamaya özel anahtar/değer (key-value) çiftleri tanımlanabilir. Karmaşık veri tipleri desteklenmez; yalnızca düz metin değerler girilebilir.
| Alan | Açıklama |
|---|---|
| Anahtar (Key) | Ek bilgi kaydının anahtarıdır. Zorunlu ve uygulama içinde tekildir; aynı anahtar birden fazla kez kullanılamaz. |
| Değer (Value) | Anahtara karşılık gelen değerdir. |
| Gizli (Secret) | Etkinleştirildiğinde değer şifreli olarak saklanır ve listelerde maskelenerek gösterilir. |
Yeni bir kayıt eklemek için satır başındaki + düğmesi, bir kaydı kaldırmak için satır sonundaki silme düğmesi kullanılır. Değişiklikler Kaydet düğmesiyle uygulanır.
Bir Uygulamanın Trafik Logunu Kapatma
Bazı müşteriler, gizlilik veya kişisel verilerin korunması gerekçesiyle API trafiklerinin saklanmamasını ister. Trafiği loglama seçeneği bu talebi uygulama seviyesinde karşılar: açıkken, uygulamaya bağlı her tüketicinin — hem klasik tüketicilerin hem API İstemcilerinin — trafiği hiçbir trafik log konnektörüne (Elasticsearch, Kafka, Syslog, Veritabanı ve diğerleri) gönderilmez.
Seçeneği açık olan uygulamalar, uygulama listesinde Trafik logu kapalı rozetiyle görünür; böylece susturulmuş bir müşteri her kaydı tek tek açmadan fark edilir.
Kapsam bilinçli olarak dardır. Bu seçeneği açmak şunları durdurmaz:
- İz kayıtları ve OpenTelemetry span'ları — bir olayı teşhis etmek için kullanılan operasyonel iz
- Prometheus metrikleri — mesaj içeriği taşımayan istek sayıları ve süreler
- Güvenlik ve erişim olayları — kota, anomali ve güvenlik incelemelerinin dayandığı denetim izi
- Kimlik doğrulaması başarısız olan istekler — bir istek, ancak gateway sunulan kimliği gerçekten doğruladıktan sonra susturulur. Susturulmuş bir tüketicinin kullanıcı adını yanlış parolayla, geçersiz bir API anahtarıyla ya da reddedilen bir token'la gönderen çağrıcı, bu anahtar açısından o tüketici değildir; engellenen istek trafik log konnektörlerine her zamanki gibi yazılır. Başarısız kimlik doğrulama trafiği, sonraki bir incelemenin tam olarak ihtiyaç duyduğu şeydir; bu yüzden doğrulanmamış bir çağrıcının onu bastırabilmesi mümkün değildir.
Bir gizlilik tercihinin güvenlik veya denetim izini silebiliyor olması doğru değildir; bu yüzden o hatlar açık kalır. Kurulum gerçekten sıfır saklama istiyorsa doğru araç bu anahtar değil, No Persist veri saklama profilidir.
Bu anahtar, yönetici yetkisi olan biri tarafından Manager ekranlarından (ya da APIops üzerinden) ayarlanır. API Portal'da bilinçli olarak sunulmaz: kendi kaydını ya da kendi uygulamasını düzenleyen bir portal müşterisi bunu açıp kapatamaz; portalden gelen bir istek gövdesinde bu alan gönderilse bile uygulanmaz, yok sayılır. Gerekçesi şudur: anahtarın açılması, bir müşterinin trafiğini güvenlik ve dolandırıcılık izlemesinin dayandığı SIEM/Elasticsearch/Kafka beslemelerinden çıkarır — bunun bir operatör kararı olarak kalması gerekir.
Aynı anahtar tek tek tüketicilerde de bulunur (Kimlik Bilgileri). İkisi birbirinden bağımsızdır ve herhangi biri yeterlidir şeklinde birleşir: bir tüketici, ya kendisi kapatılmışsa ya da uygulaması kapatılmışsa susturulmuş olur.
Kaydetmek yeterlidir. Uygulamanın tüketicileri ve API İstemcileri çalışan ortamlara otomatik olarak yeniden dağıtılır; elle yeniden dağıtım (redeploy) GEREKMEZ ve değişiklik bir sonraki istekte geçerlidir.
Uygulama Silme
Yalnızca hiç üretime çıkmamış bir uygulama kalıcı olarak silinebilir: silme işlemi, uygulama Test yükseltme durumundayken kullanılabilir. Silme işlemi onay penceresi ile teyit edilir.
Yükseltmesi Beklemede olan, yükseltme talebi Reddedilmiş olan ya da halihazırda Üretim durumundaki bir uygulama üretim erişimi veya açık bir yükseltme kararı taşıdığından silinemez. Bu uygulamalarda listedeki Sil işlemi gösterilmez; trafiği durdurmak için tüm kayıtları koruyan Askıya Al işlemi kullanılır.
Test durumundaki bir uygulama, kendisine bağlı en az bir API anahtarı, erişim yetkisi (ACL), API ürünü aboneliği veya iptal edilmemiş bir API istemcisi olduğu sürece artık silinemez — silme isteği, bağlı kayıtları Silme Engelleri olarak bildirerek reddedilir ve uygulamaya dokunulmaz. Önceki sürümlerde böyle bir uygulama silindiğinde bağlı API anahtarları ve abonelik kayıtları da birlikte kaldırılıyordu; bu davranış kaldırılmıştır. Uygulama silinmeden önce bağlı kayıtların iptal edilmesi/kaldırılması, ya da uygulamanın aşağıda anlatılan Arşivle seçeneğiyle emekliye ayrılması gerekir. Portal üzerinden kendi uygulamasını kaldırmak isteyen bir geliştirici de aynı kısıtla karşılaşır.
Aynı kural portal tarafından iletilen silme talebinin kararı için de geçerlidir; buradaki onay akışı ayrıca varsayılan olarak arşivlemeyi öne çıkarır:
- Arşivle — listedeki onay menüsünün ilk ve ek onay istemeyen seçeneğidir. Uygulama tüketim ve denetim geçmişini koruyarak emekliye ayrılır: API anahtarları zaten devre dışı kalır, abonelikleri iptal edilir (silinmez), uygulama portalda görünmez olur.
- Sil — kalıcı ve geri alınamaz olduğu için ayrı bir onay penceresi ister. Talep onaylandığında normal silme kuralı aynen uygulanır: uygulamanın hâlâ bağlı bir API anahtarı, erişim yetkisi, aboneliği veya iptal edilmemiş bir API istemcisi varsa istek 409 ile reddedilir — silme talebini onaylamak bu ilişkileri otomatik olarak temizlemez. Pratikte bu durumdaki neredeyse her talep Arşivle ile kapatılır.
- Reddet — talebi reddeder, uygulama önceki durumuna döner.
Yükseltme talebi reddedilmiş bir uygulama da silinemez. Reddedilen talep tüketici tarafından tamamlanıp yeniden gönderilebildiği için uygulama ve geçmişi korunur. Uygulama artık kullanılmayacaksa arşivlenmeli ya da askıya alınmalıdır.
Kural yalnızca arayüzde değil sunucu tarafında da uygulanır ve tüm yüzeylerde (ekran, Management API, portal) aynıdır: üretime yükseltilmiş ya da hâlâ bağlı kaydı olan bir Test uygulaması için gönderilen silme isteği HTTP 409 yanıtıyla reddedilir ve uygulamaya dokunulmaz.
Aynı kural taşınmış olduğu için bir portalın toplu silinmesi de artık her uygulamayı kaldırmaz: hâlâ üretimde olan ya da bağlı kaydı bulunan uygulamalar bu işlem sırasında atlanır ve portal silindikten sonra da listede kalmaya devam eder. Bkz. Portal Silme.
Aynı kayıt için hâlihazırda başka bir silme işlemi sürüyorsa istek 409 ile reddedilir; bkz. Eş Zamanlı Silme.
Uygulama oluşturma, düzenleme ve silme işlemleri sistem yöneticisi ile portal yönetimi/geliştirici yetkisine sahip roller tarafından yapılabilir.
Uygulamayı Başka Bir Kuruma Taşıma
Bir uygulama, detay görüntüleme ekranının başlık eylemleri arasındaki Taşı düğmesiyle aynı projedeki başka bir kuruma taşınabilir; düğme hedef kurumun seçildiği bir pencere açar. Taşıma, uygulamanın sahip olduğu her şeyi birlikte götürür: uygulamanın sahip olduğu tüketiciler — kendi API istemcileri, erişim yetkileri ve token'larıyla birlikte — ile uygulamanın kendi API istemcileri ve ürün abonelikleri aynı işlemde yeni kuruma bağlanır, uygulamanın API istemcileri de değişikliğin hemen etkili olması için yeniden gönderilir. Kota kullanım rakamları taşıma sırasında yeniden yazılmaz — bir sonraki düzenli senkronizasyonda kendiliğinden düzelir.
Hedef kurum askıya alınmışsa, taşımadan hemen sonra uygulamanın ve sahip olduğu tüketicilerin trafiği durur. Trafiğin yeniden akması için hedef kurumu devam ettirin.
Aşağıdaki durumlarda taşıma reddedilir ve hiçbir şey değişmez:
- uygulama silinmekteyse ya da zaten ar şivlenmişse;
- uygulama için, ya da ayrılınan veya katılınan kurum için hâlihazırda bir silme işlemi sürüyorsa;
- hedef kurum çözümlenemiyorsa, uygulamayla aynı projeye ait değilse ya da başka bir kurumla birleştirilmişse;
- hedef kurum, uygulamanın zaten bağlı olduğu kurumsa.
Kural yalnızca ekranda değil sunucu tarafında da uygulanır. Management API'ye doğrudan gönderilen bir taşıma isteği; silinmekte ya da arşivlenmiş bir uygulama için, çözümlenemeyen ya da başka bir projeye ait bir hedef için, ya da uygulama veya kurumlardan biri için bir silme işlemi sürerken aynı şekilde reddedilir.
Denetim Kayıtları
Bir uygulamada yapılan her değişiklik denetim kaydına yazılır. Bir projeye bağlı olan uygulama artık o projenin kapsamında denetlenir; denetim ekranı ait olduğu projeye göre filtrelendiğinde kayıtları listelenir. Portaldan oluşturulan uygulamaya, portal tek bir projeye bağlıysa o proje atanır; portal birden fazla projeyi kapsıyorsa — ya da hiçbirini — proje tahmin edilmez ve uygulama eskiden olduğu gibi ortak (admin) kapsamda denetlenmeye devam eder.
Bu sürümden önce yazılmış denetim kayıtları geriye dönük olarak düzeltilmez. Kayıtları bugüne kadar ortak (admin) kapsamda listelenen bir uygulamanın önceki geçmişi orada kalır; bu sürümden sonra yazılan kayıtlar ise uygulamanın kendi projesinde görünür. Veri kaybı yoktur — böyle bir uygulamanın geçmişi yalnızca iki kapsamdan okunur.
İlgili Sayfalar
Uygulamaya erişim izni verilen kimlik bilgileri ve bunların API Proxy bazlı erişim ayarları için Erişim Kontrolü sayfasını, uygulamanın bağlı olduğu hesabın kimlik bilgisi kayıtları için Kimlik Bilgileri sayfasını inceleyebilirsiniz.