# TD-028 · Erişimi tek adımda geri aldır

Kullanıcı AI'a bağladığı hesabı kaldırmak istediğinde yolu bulamıyor ve izin aylarca geçerli kalıyor. Bağlantıyı bağlandığı yerden tek adımda kesmek, izni hizmette iptal etmek ve geride kalanı söylemek bu boşluğu kapatır.

- Adres: https://tandem.komunite.com.tr/desen/erisimi-tek-adimda-geri-aldir
- Yer: Başlarken > Erişim
- Seviye: Temel. Her AI özelliğinde olmalı.
- Son inceleme: 27 Ekim 2026, Komünite editörlüğü

## 30 saniyede dene

1. Ürününe bir hizmet bağla, takvim ya da e-posta gibi. Bağlarken kaç tıklama yaptığını say.
2. Şimdi aynı bağlantıyı kaldırmayı dene. Bağladığın ekrandan başla ve kaç tıklama sürdüğünü say. Bağlamaktan uzun sürüyorsa desen eksik.
3. Kaldırdıktan sonra hizmetin kendi güvenlik sayfasına bak, Google hesabındaki bağlı uygulamalar listesi gibi. Ürünün orada hâlâ görünüyorsa izin iptal edilmemiş.
4. Bağlantıya dayanan zamanlanmış bir iş varsa bir sonraki çalışma saatini bekle. İş hâlâ çalışıyorsa geri alma yarım kalmış.

## Sorun

Kullanıcı üç ay önce asistana e-postasını bağladı. Bağlamak iki tıklamaydı: “Bağlan” düğmesi, hizmetin izin ekranı, onay. Şimdi işini değiştirdi ve o hesabın asistana açık durmasını istemiyor. Ayarlara giriyor, e-postanın yanında bir anahtar buluyor ve kapatıyor. İçi rahatlıyor.

Anahtar yalnız sohbetteki kullanımı kapattı. Hizmetin verdiği izin yerinde duruyor, ürünün veritabanında geçerli bir yenileme token'ı saklı, gece çalışan özet işi e-postayı okumaya devam ediyor. Kullanıcı bunu fark edip bağlantıyı tamamen kaldırmak isterse ürün onu hizmetin kendi güvenlik sayfasına yolluyor. Orada adını tanımadığı iki uygulama görüyor, hangisinin hangisi olduğunu çıkaramıyor ve vazgeçiyor.

Kullanıcının aklında bağlantı bitti, sistemde sürüyor. Bir veri sızıntısında, hesabın ele geçirilmesinde ya da ürün el değiştirdiğinde bu unutulmuş izin kimsenin bakmadığı açık bir kapıya dönüşür. Bağlamak iki tıklamaysa kaldırmak da iki tıklama sürmeli.

## Neden atlanıyor

Bağlantı sayısı büyüme panosunda yukarı gitmesi istenen bir çizgi. Bağlama akışı her sürümde kısalır, deneye girer, ilk ekrana taşınır. Kaldırma akışı kimsenin hedefinde durmaz ve ayarların dibinde, çoğu zaman hiç yazılmadan kalır.

İkinci neden teknik. İzin ürünün içinde durmaz, sağlayıcıda durur. Arayüzdeki bir anahtarı kapatmak kolaydır ve yalnız ürünün o hizmeti kullanmasını durdurur. İzni gerçekten geri almak için sağlayıcının iptal ucunu çağırmak, saklanan token'ları silmek, bağlantıya dayanan zamanlanmış işleri ve webhook aboneliklerini bulup durdurmak gerekir. Ekipler kolay olanı yapar, anahtarı da “bağlantı” diye adlandırır.

Üçüncüsü ölçüm. Unutulmuş izin hiçbir hata günlüğüne düşmez, destek talebi açtırmaz. Kimse onu sorun olarak görmez, ta ki bir sızıntı olana kadar. OAuth'un token iptalini tanımlayan RFC 7009 bu durumu 2013'te adıyla yazdı: iptal, belli bir uygulama için [son kullanıcının farkında olmadığı geçerli bir iznin](https://www.rfc-editor.org/rfc/rfc7009) kalmasını önler.

## Desen

Bir bağlantının ömrü kullanıcının elinde durur. Geri almak vermek kadar kısa sürer ve vermekle aynı yerde yapılır.

1. **Bağlandığı yerden kaldır.** Bağlantıların listesi bağlama düğmesinin durduğu ekranda durur. Her satırda hizmet, verilen erişim ve son kullanım zamanı yazar, yanında tek bir “Bağlantıyı kes” eylemi bulunur.
2. **İzni sağlayıcıda iptal et.** Kesmek ürünün içindeki bir bayrağı değiştirmekle bitmez. Ürün sağlayıcının iptal ucunu çağırır, sakladığı erişim ve yenileme token'larını siler.
3. **Bağlantıya dayanan her işi durdur.** Zamanlanmış özetler, webhook abonelikleri, senkron işleri ve ajanın açık oturumları aynı işlemde durur.
4. **Sonucu oku, sonra söyle.** Ürün sağlayıcının yanıtını okur. İptal başarısızsa ekran “kesildi” yazmaz, kullanıcıya izni hizmetin kendi sayfasından kaldırmanın yolunu gösterir.
5. **Geride kalanı göster.** Bağlantı kesilince bağlantıyla gelmiş veri kendiliğinden silinmez. Ürün indeks, özet ve bellek kayıtlarını ayrıca listeler, yanına silme seçeneği koyar.
6. **Kapatmakla kesmeyi ayır.** “Bu sohbette kullanma” anahtarı ile bağlantıyı kesmek iki ayrı eylem. Arayüz ikisine farklı ad verir.

Altı kural birlikte çalışınca kullanıcının ekranda gördüğü durum ile sağlayıcıdaki durum aynı olur.

## Önce ve sonra

Aynı bağlantı ekranı, iki hâliyle. Soldaki ekranda e-posta anahtarı kapalı görünüyor ama yalnız sohbetteki kullanımı kapatıyor, gece işi okumaya devam ediyor. Sağdaki tek düğmeyle izni hizmette iptal ediyor, arka plan işini durduruyor ve bağlantıdan geride kalan notları gösteriyor.

Örnek ekran (kurgusal): Kullanıcı üç ay önce takvimini ve e-postasını asistana bağladı. İşini değiştirdi, e-posta bağlantısını kaldırmak istiyor.

### Önce: Ayarlar · bağlantılar

- Ayar (açık): Takvim · Toplantılarını okur
- Ayar (kapalı): E-posta · Sohbetlerde kullanılmaz
- Bilgi: Bağlantıyı tamamen kaldırmak için hizmetin kendi güvenlik ayarlarına git.
- Adım (tamam): Gece e-posta özeti hazırlandı · bugün 03.00 · 41 ileti okundu

1. Anahtar kapalı görünüyor ama yalnız sohbetteki kullanımı kapatıyor. Hizmetin verdiği izin ve ürünün sakladığı token geçerli kalıyor.
2. Kaldırmanın yolu başka bir sitede ve hangi adımla yapılacağı yazmıyor. Gece çalışan özet işi e-postayı okumaya devam ediyor.

### Sonra: Ayarlar · bağlantılar

- Ayar (açık): Takvim · Toplantılarını okur · son kullanım dün
- Ayar (kapalı): E-posta · Bağlantı kesildi · bugün 14.32
- Adım (tamam): İzin hizmette iptal edildi · iptal isteği → 200 · saklanan token'lar silindi
- Adım (tamam): Gece e-posta özeti durduruldu · zamanlanmış iş kaldırıldı · webhook aboneliği silindi
- Bilgi: E-postalardan çıkan 3 not bellekte duruyor.
- Düğmeler: Notları da sil · Yeniden bağla

1. Tek düğme bağlantıyı kesiyor. Ürün izni hizmetin kendisinde iptal ediyor ve bunu sağlayıcının yanıtıyla gösteriyor.
2. Kesilen bağlantıyla çalışan arka plan işi de duruyor. Bağlantıdan geride kalan veri ayrıca gösteriliyor, silme seçeneği yanında.

## Piyasada

Google hesabındaki bağlı uygulamalar sayfası her uygulamanın erişimini tek listede topluyor ve “Remove access” ile kaldırıyor. Yardım sayfası sonucu tek cümleyle söylüyor: erişim kaldırılınca [uygulama hesaba erişemiyor](https://support.google.com/accounts/answer/13533235). Aynı sayfa katmanları da ayırıyor. “Sign in with Google” bağını silmek uygulamadaki verini silmiyor, Gemini ve Google ajanlarının bir uygulamaya erişimini kaldırmak da uygulamanın hesapla bağını koparmıyor. Kullanıcı hangi katmanı kestiğini okuyarak seçiyor.

GitHub'ın yetkili OAuth uygulamaları sayfası her uygulamanın yanında [“Revoke”, hepsi için “Revoke all”](https://docs.github.com/en/apps/oauth-apps/using-oauth-apps/reviewing-your-authorized-oauth-apps) seçeneği sunuyor ve kullanıcıya tanımadığı ya da eskimiş izinleri kaldırmasını söylüyor.

Claude bağlayıcıları ayarlarda tek bölümde gösteriyor ve her hizmet için [bağlantıyı kesme, ayarları değiştirme ve izinleri inceleme](https://support.claude.com/en/articles/11176164-use-connectors-to-extend-claude-s-capabilities) seçeneği veriyor. Özel bağlayıcı belgesi izni iki yerden geri almayı tarif ediyor: [Claude'un ayarlarından ya da üçüncü taraf hizmetin güvenlik ayarlarından](https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp). İkinci yol, ürüne erişemeyen kullanıcının da izni geri alabilmesini sağlıyor.

## Kanıt

Bu desenin dayanağı yaygın uygulama ve iki standart. Kamuya mal olmuş bir AI olayı yerine, iznin neden kendiliğinden kapanmadığını gösteren kurallar ve bir platformun geriye dönük temizliği var.

RFC 7009 (Ağustos 2013) OAuth 2.0'a token iptal ucunu ekledi. Belge iptalin gerektiği anları sayıyor: son kullanıcı [oturumu kapattığında, kimlik değiştirdiğinde ya da uygulamayı kaldırdığında](https://www.rfc-editor.org/rfc/rfc7009). Bir iptal isteği o token'ı ve, uygulanabildiği yerde, aynı izne dayanan öteki token'ları ve iznin kendisini geçersiz kılıyor. Standart bu işi ürüne bırakıyor. Ürün iptal ucunu çağırmazsa izin kendiliğinden kapanmaz.

Avrupa Birliği'nin Genel Veri Koruma Tüzüğü rızaya dayanan işleme için ölçüyü koyuyor. Madde 7(3)'e göre rızayı geri çekmek [rıza vermek kadar kolay](https://eur-lex.europa.eu/eli/reg/2016/679/oj) olmalı. Her AI bağlantısı hukuken rızaya dayanmayabilir, ama ölçü tasarımda doğrudan kullanılabilir: bağlama akışının adım sayısı kaldırma akışının da üst sınırı.

Facebook Nisan 2018'de, bilgileri Cambridge Analytica'yla uygunsuz biçimde paylaşılmış olabilecek kişilere haber vereceğini açıkladığı yazıda iki adım daha sıraladı. Kullanıcının son üç ayda kullanmadığı uygulamaların [kullanıcıdan veri isteme yetkisini kaldıracağını](https://about.fb.com/news/2018/04/restricting-data-access/) ve haber akışının en üstüne kişinin [hangi uygulamaları kullandığını gösteren ve istemediklerini kaldırmasını sağlayan](https://about.fb.com/news/2018/04/restricting-data-access/) bir bağlantı koyacağını duyurdu. İki adım da kullanıcının unuttuğu izinleri hedefliyordu.

Bu kaynaklar kaç iznin unutulduğunu ölçmüyor. Elimizde bir oran yok. Var olan, standartların ve platformların aynı boşluğu tekrar tekrar kapatmaya çalıştığının kaydı.

## Ölçüm

- **Kaldırma ile bağlama arasındaki adım farkı.** İki akışın tıklamalarını say. Kaldırma bağlamadan uzun sürmemeli.
- **Sağlayıcıda kalan izin.** Kesilen bağlantılardan bir örneklem al, sağlayıcının yetkili uygulamalar listesinde ürünün hâlâ görünüp görünmediğine bak. Hedef sıfır.
- **Kesimden sonra yapılan istek.** Bağlantı kesildikten sonra o bağlantının token'ıyla yapılan istekleri günlükten say. Hedef sıfır.
- **Bayat izin payı.** Uzun süredir kullanılmayan bağlantıların bütün bağlantılara oranı. Yükseliyorsa kullanıcılar izni unutuyor. Son kullanım zamanını görünür yap ya da bir sona erme süresi koy.
- **“Nasıl kaldırırım” soruları.** Destek kayıtlarında ve asistana sorulan sorularda bağlantı kaldırmayla ilgili olanların sayısı. Yol görünür olunca bu sayı düşer.

## Ajanına ver

Üç metin var. Denetim promptu deponda bağlantıların kurulduğu ve kaldırıldığı yerleri bulur, kaldırmanın bir bayrak değişikliği mi yoksa sağlayıcıda gerçek iptal mi olduğunu ve hangi arka plan işlerinin çalışmaya devam ettiğini raporlar, hiçbir dosyayı değiştirmez. Uygulama promptu tek adımlık kesme işlevini kurar. Önce planı gösterir, onayınla uygular ve eski token'ın reddedildiğini doğrulayan bir test ekler. Kural kodlama ajanının kendisi için. Yeni bir entegrasyon yazarken kaldırma yolunu da aynı işte yazar.

## Sınır

Ürün kullanıcının hiçbir hesabına bağlanmıyorsa, örneğin yalnız yüklenen dosyayla çalışıyorsa, bu desenin işi yok. Orada geri alınacak şey dosyanın kendisi ve onun yolu ayrı bir desen.

İptal her yerde anında gerçekleşmez. RFC 7009'a göre sağlayıcı erişim token'ı iptalini desteklemiyorsa yenileme token'ı iptal edilse bile [erişim token'ları hemen geçersiz olmaz](https://www.rfc-editor.org/rfc/rfc7009), süreleri dolana kadar çalışır. Ekran bunu bilmeli. “Kesildi” ile “en geç bir saat içinde kapanacak” iki ayrı cümle.

Kesmek veriyi silmez. Bağlantı süresince ürüne gelen veri ürünün kendi deposunda kalır. İkisini tek düğmeye bağlamak cazip görünür, ama kullanıcı bağlantıyı kesip notlarını tutmak isteyebilir. İki eylemi ayrı tut, ikisini de görünür yap.

Ortak bağlantılarda kesme yetkisi ayrı düşünülmeli. Claude'un belgesine göre ekip planlarında ortak kimlik bilgisiyle kurulan bir bağlayıcıda [her üye hizmete aynı kimlik bilgisiyle ulaşıyor](https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp). Böyle bir bağlantıyı bir üyenin kesmesi herkesi etkiler. Orada kesme yetkisi kurana ve yöneticiye kalır, öteki üyeler kendi kullanımlarını kapatır.

## Promptlar

### Denetim promptu

```
Bu depoda kullanıcının AI özelliğine dış bir hizmet bağladığı bir akış var: OAuth bağlantısı, API anahtarı, MCP bağlayıcısı ya da başka bir entegrasyon. Görevin, bu bağlantıların tek adımda ve gerçekten geri alınıp alınamadığını denetlemek. Hiçbir dosyayı değiştirme, yalnız rapor yaz.

1. Bağlantıların kurulduğu yerleri bul: OAuth geri dönüş uçları, token ve anahtar saklayan tablolar, bağlayıcı ve entegrasyon modelleri, kurulum ekranları.
2. Her bağlantı türü için kaldırma yolunu bul. Arayüzde bir düğme var mı, hangi ekranda, bağlandığı ekranla aynı yerde mi? Kaldırmak kaç adım sürüyor, bağlamak kaç adım sürüyor?
3. Kaldırma kodu ne yapıyor? Yalnız bir bayrağı mı değiştiriyor (enabled=false, gizleme), yoksa sağlayıcının iptal ucunu (OAuth için RFC 7009 revocation endpoint ya da sağlayıcının eşdeğeri) çağırıyor mu? Saklanan erişim ve yenileme token'larını siliyor mu?
4. Bağlantıya dayanan arka plan işlerini bul: zamanlanmış görevler, webhook abonelikleri, senkron işleri, önbellekler, açık ajan oturumları. Kaldırmadan sonra duruyorlar mı?
5. Bağlantıyla gelen veriye ne oluyor: indekslenmiş belgeler, gömme vektörleri, bellek kayıtları, özetler. Kullanıcıya bunların kaldığı ya da silindiği söyleniyor mu?
6. Kaldırmanın sonucu doğrulanıyor mu? İptal ucunun yanıtı okunuyor mu, hata olursa kullanıcıya söyleniyor mu, iptal başarısız olduğunda bağlantı yine de "kaldırıldı" diye mi görünüyor?
7. Sohbet içindeki "bu konuşmada kullanma" anahtarı ile bağlantıyı kesmek kodda ve arayüzde ayrı mı, yoksa ikisi aynı adla mı görünüyor?
8. Kullanıcı hesabını sildiğinde bağlantılar sağlayıcıda iptal ediliyor mu?

Rapor biçimi: her bağlantı türü için bir satır: kaldırma yolu ve adım sayısı, kaldırmanın gerçekte yaptığı (bayrak, token silme, sağlayıcıda iptal), duran ve durmayan arka plan işleri, geride kalan veri. Ardından bulguları, kullanıcının haberi olmadan geçerli kalan izinden başlayarak sırala ve her biri için dosya ve satır ver.

```

### Uygulama promptu

```
Bu üründe "erişimi tek adımda geri aldır" desenini uygula. Önce planı göster, onayımı aldıktan sonra kodu değiştir.

Hedef davranış:
1. Kullanıcının bağladığı her hizmet tek bir listede, bağlama düğmesinin bulunduğu ekranda durur. Her satırda hizmetin adı, verilen erişim (okuma, yazma, gönderme) ve son kullanım zamanı görünür.
2. Her satırda tek bir "Bağlantıyı kes" eylemi vardır. Onay penceresi tek cümleyle neyin duracağını ve neyin kalacağını söyler.
3. Bağlantıyı kesmek sağlayıcıda izni iptal eder (OAuth için token iptal ucu), saklanan erişim ve yenileme token'larını siler, bağlantıya dayanan zamanlanmış işleri, webhook aboneliklerini, senkronu ve açık ajan oturumlarını durdurur.
4. Sağlayıcının yanıtı okunur. İptal başarısızsa bağlantı "kesildi" diye gösterilmez. Kullanıcıya hata ve izni sağlayıcının kendi sayfasından kaldırma yolu söylenir.
5. Bağlantıyla gelmiş ve üründe kalan veri (indeks, özet, bellek) ayrıca listelenir, yanında silme seçeneği durur.
6. "Bu konuşmada kullanma" anahtarı ile bağlantıyı kesmek iki ayrı eylemdir ve arayüzde farklı adlarla görünür.

Uygularken:
- Kesme işini tek bir sunucu işlevinde topla. Arayüz, ajan ve hesap silme akışı aynı işlevi çağırsın.
- Sağlayıcı erişim token'ı iptalini desteklemiyorsa ekranda bunu söyle: erişim, token'ın süresi dolana kadar açık kalabilir.
- Kesilen her bağlantının kaydını tut: ne zaman, kim kesti, sağlayıcının yanıtı.
- Bir test ekle: sahte bir sağlayıcıyla bağlantı kur, kes, sonra eski token'la istek at. İsteğin reddedildiğini ve zamanlanmış işin bir daha çalışmadığını doğrula.

```

### AGENTS.md kuralı

```
## Erişimi tek adımda geri aldır
- Kullanıcının bağladığı her hizmet için bağlandığı ekranda tek adımlık bir "bağlantıyı kes" yolu yaz. Bağlantıyı ekleyen işte kaldırma yolunu da yaz.
- Bağlantıyı kesmeyi bir bayrağı değiştirerek bitirme. Sağlayıcıda izni iptal et, saklanan token'ları sil.
- Bağlantıya dayanan zamanlanmış işleri, webhook'ları ve senkronu aynı işlemde durdur.
- İptalin sonucunu sağlayıcının yanıtından oku. Başarısızsa "kesildi" deme.
- Geride kalan veriyi (indeks, özet, bellek) kullanıcıya söyle ve silme yolunu göster.

```

## Kaynaklar

1. [OAuth 2.0 Token Revocation (RFC 7009)](https://www.rfc-editor.org/rfc/rfc7009), IETF, Ağustos 2013
2. [Manage links between your Google Account & apps from other developers](https://support.google.com/accounts/answer/13533235), Google Account Help
3. [Reviewing your authorized OAuth apps](https://docs.github.com/en/apps/oauth-apps/using-oauth-apps/reviewing-your-authorized-oauth-apps), GitHub Docs
4. [Use connectors to extend Claude's capabilities](https://support.claude.com/en/articles/11176164-use-connectors-to-extend-claude-s-capabilities), Claude Help Center
5. [Get started with custom connectors using remote MCP](https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp), Claude Help Center
6. [Regulation (EU) 2016/679 (General Data Protection Regulation)](https://eur-lex.europa.eu/eli/reg/2016/679/oj), EUR-Lex, Avrupa Birliği, 27 Nisan 2016
7. [An Update on Our Plans to Restrict Data Access on Facebook](https://about.fb.com/news/2018/04/restricting-data-access/), Meta (Mike Schroepfer), 4 Nisan 2018

---

Kaynak: https://tandem.komunite.com.tr · Metin CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/deed.tr), promptlar ve kural MIT-0 (https://opensource.org/license/mit-0).
