İş aynı kaldı; zaman değişti
Bir çalışan ajanın hazırladığı malzeme talebini onayladı. İş kuyruğa alındı, fakat araç yoğun olduğu için birkaç dakika bekledi. İşlem sonunda başlayabildiğinde onayın süresi dolmuştu. İçerik değişmemiş olabilir, çalışan hâlâ aynı rolde olabilir; yine de süresi sınırlanmış bir onayın hangi anda kontrol edildiği sonucu belirler. Kuyruğa girişte yapılan kontrol tek başına yeterli bir kayıt değildir.
Bu yazıda beş dakikalık özgün bir onay sözleşmesi kullanıyoruz. Gerçek bir tedarik veya ödeme işlemi yapılmıyor; malzeme talebi ve bütün olaylar sentetiktir. Beş dakika herhangi bir hizmetin varsayılanı veya genel güvenlik standardı değildir. Eğitim örneğinin sınırlarını kolayca hesaplamak için seçilmiştir. Kurumda uygun süre, işin bekleme davranışı ve yetkilendirme tasarımıyla belirlenmelidir.
Onay: O8 İş: J8 / içerik sürümü V2 Başlangıç: 10:00:00 dahil Bitiş: 10:05:00 hariç Kapsam: J8 V2 için tek yeni işlem Yetki iptal edilmemiş ve güvenilir sunucu saati mevcut olmalı. Tamamlanmış işlemin makbuzunu sorgulamak yeni işlem değildir.
Geçerlilik koşulunu başlangıç ≤ işlem zamanı < bitiş biçiminde yazıyoruz. Bitiş anının hariç olması, 10:05:00 için yoruma açık bir boşluk bırakmaz. İstemcinin ekranda gösterdiği zaman yerine işlem tarafında doğrulanan saat kullanılır. Saat bilgisi güvenilir değilse bu örneğin kuralı yeni işlem yapmamaktır. Zamanı tahmin ederek geçerli saymak veya kuyruğa giriş saatini işlem saati yerine koymak sözleşmeyi değiştirir.
Onay kontrolünü etki doğuran işleme bağlayın
OWASP işlem yetkilendirme rehberi, işlemden önce son bir yetkilendirme kontrolü bulunmasını ve yetkilendirme bilgilerinin sınırlı süreyle geçerli olmasını önerir. Rehberdeki bu ilkeleri, insan onaylı ajan akışımıza bir tasarım örneği olarak uyguluyoruz. Buradaki saat sınırı, iş kimliği ve karar tablosu OWASP tarafından verilmiş hazır bir ajan protokolü değildir.Kaynak: OWASP — Transaction Authorization Cheat Sheet
Son kontrol yalnızca ajanın yazdığı “onay geçerli” cümlesi olamaz. Etki doğuran araç veya işlem katmanı, onayın ilgili işe bağlı olduğunu ve o anda geçerli kaldığını doğrulamalıdır. Kontrolle gerçek etki arasına uzun bir bekleme girerse yeni bir boşluk doğar. Entegrasyonunuz bu kontrolü etkiden hemen önce yapamıyorsa, kabul edilen geçerlilik anını ve kalan riski açıkça tarif etmeden geçişi tamamlanmış saymayın.
O8 onayı J8/V2 için 10:00:00 dahil ve 10:05:00 hariç geçerli. Bütün zamanlar UTC, aynı gün. Yetki ve içerik koşulları aksi belirtilmedikçe sağlanmış. Altı olayı değerlendir: 09:59:59 yeni işlem; 10:04:59 yeni işlem; 10:05:00 yeni işlem; kuyruğa 10:04:00 girmiş ama 10:06:00 çalışacak yeni işlem; 10:04:59 tamamlanmış işin 10:06:00 makbuz sorgusu; işlem anında güvenilir saat yok. Yeni etki, makbuz döndürme ve yeniden onay ihtiyacını ayır. Bekleme süresini onaya ekleme.
| Olay | Kontrol zamanı | Yeni etki? | Beklenen davranış |
|---|---|---|---|
| E1 · Başlamadan önce | 09:59:59 | Hayır | Pencere açılmadı |
| E2 · Bitişten bir saniye önce | 10:04:59 | Evet | Diğer koşullar da sağlanırsa işle |
| E3 · Tam sınır | 10:05:00 | Hayır | Süre doldu; yeniden onay |
| E4 · Kuyruk gecikmesi | 10:06:00 | Hayır | Giriş 10:04 olsa da yeniden onay |
| E5 · Önceden tamamlanmış iş | 10:06:00 | Hayır | Yetkili durum sorgusunda mevcut makbuzu döndür |
| E6 · Saat doğrulanamıyor | Bilinmiyor | Hayır | İşlemi beklet; saat sorununu çöz |
Süreyi sessizce uzatmayın
E4 örneğinde işin kuyruğa zamanında girmesi, beş dakikalık pencereyi dondurmaz. Yeni onay gerekiyorsa kullanıcıya bekleme nedeniyle işlem yapılmadığı ve onaylanan kapsamın ne olduğu gösterilmelidir. Ajan eski onay kaydındaki bitişi kendisi ileri almamalıdır. Yeni onay ayrı bir kimlikle, yeni zaman penceresiyle ve güncel iş içeriğiyle kaydedilir. Bu kayıt, önceki isteğin hangi nedenle durduğunu da korur.
E5 farklıdır: iş zaten geçerli zamanda tamamlanmıştır. Sürenin sonradan dolması, yapılmış işi hiç olmamış hale getirmez. Yetkili kullanıcıya mevcut makbuzu göstermek için aynı işi yeniden başlatmaya gerek yoktur. Bununla birlikte makbuz okuma erişimi kendi güncel yetki kontrolünden geçer. Eski işlem onayını, herkesin sonuca erişebileceği kalıcı bir izin olarak kullanmayın.
Senaryo E4: J8/V2 kuyruk girişi 10:04:00. Son kontrol 10:06:00. O8 süresi dolmuş. Araçta yeni talep oluşturulmadı. Durum: yeniden onay bekliyor. Eski O8 değişmedi. Yeni onay alınırsa güncel içerik ve yetki koşulları tekrar değerlendirilecek.
Kontrol kaydında yalnızca “ret” yazmak incelemeyi zorlaştırır. İş kimliği, onay kimliği, geçerlilik sınırları, doğrulanan işlem zamanı ve yeni etki oluşup oluşmadığı ayrı alanlar olsun. Hassas form içeriğini bu kayıt için gereksiz yere çoğaltmayın. Kayıt, hangi koşulun işlemi durdurduğunu açıklamalı ve farklı hata türlerini birbirine karıştırmamalıdır.
- Başlangıçtan önce, tam başlangıçta, bitişten önce ve tam bitişte sınayın.
- Kuyruğa giriş geçerliyken işlem anı geçersiz olan bir vaka ekleyin.
- Saat bilinmiyor durumunu süresi doldu durumundan ayrı kaydedin.
- Tamamlanmış iş sorgusunda yeni araç etkisi oluşmadığını kontrol edin.
10:07’de gelen onay için üç karar
Alıştırmada kullanıcı J8’in güncel V2 içeriğini yeniden görüp O9 onayını versin. Yeni pencere 10:07:00 dahil, 10:09:00 hariç olsun. Üç bağımsız deneme düşünün: işlem 10:06:59, 10:07:00 ve 10:09:00’da başlıyor. Her biri için karar verin. Onay metni aynı olsa bile yeni zaman sınırlarını eski O8 penceresiyle birleştirmeyin.
10:06:59: O9 henüz başlamadı, yeni etki yok. 10:07:00: başlangıç dahil; diğer koşullar sağlanıyorsa geçer. 10:09:00: bitiş hariç; süre doldu, yeni etki yok. Üçü bağımsız testtir; tek kullanımlık onayın üç kez harcanmasına izin vermez.
Kendi akışınızda önce onay ile etki arasındaki gerçek bekleme noktalarını çıkarın. Sonra bu noktalardan birini seçip aynı sınır tablosunu kurun. Teslimatınız bir onay düğmesi eklemekten daha somut olsun: hangi anda hangi kaydın kontrol edildiği, gecikmede ne olduğu ve tekrar sorgusunda yeni etki oluşmadığı testle gösterilsin.
Kaynaklar ve doğrulama
- OWASP — Transaction Authorization Cheat Sheet
İşlem öncesi son yetkilendirme kapısı ve sınırlı geçerlilik süresi; örneğin beş dakikası özgün tasarımdır.
Erişim ve kontrol:
AI Ajanları ve İş Akışı Otomasyonu
AI Ajanları ve İş Akışı Otomasyonu eğitimi için kendi sürecinizde onayla işlem arasında bekleyen işleri seçebilirsiniz. Talep formunda bu bekleme noktasını belirtmeniz, uygulama kapsamını somutlaştırır.
- Kuruma özel planlanır