COMPUTER ENGINEER

Örneklere git
Blog
HTTP / HTTPS / TLS6 dk çalışma
41/ 70

Authorization · Yetkilendirme

Scopes, roles ve audience: üç farklı sınır

Doğru API’ye verilen token, doğru işlem yetkisini yine gerektirir.

AnlaÖrneği inceleKendin uygula

Kavramı anlayalım

Audience token’ın hangi hedef için verildiğini, scope yetkilendirme akışında izin verilen erişim kapsamını, rol ise kullanıcı veya uygulama kategorisini ifade edebilir. Bu alanların isimleri ve biçimi sağlayıcıya göre değişebilir. orders.read scope’u ödeme iptali yetkisi değildir; Admin rolü de yanlış audience token’ını geçerli yapmaz.

Delegated token kullanıcı adına, application token ise uygulamanın kendi kimliğiyle çalışabilir. Client credentials akışında gerçek bir kullanıcının kimliği bulunduğunu varsayma. Aynı endpoint iki modeli kabul ediyorsa actor ve permission kurallarını açık tanımla. Kapsamın varlığını string contains ile aramak, orders.read-extra gibi değerleri yanlış kabul edebilir; sağlayıcının tanımladığı ayrıştırma ve claim mapping kullanılır.

Geniş scope istemek kullanıcı onayını ve riskini büyütür. Yetkinin gereken işlemle en düşük kapsamda eşleşmesini hedefle. Token’daki scope resource ownership’ini otomatik kaldırmaz. /orders/42 için hem API hedefi, hem operation, hem kaynağın kapsamı denetlenir. Bu farklı sınırları hata loglarında ayırmak teşhisi kolaylaştırır; dış yanıtta gereksiz iç ayrıntı verme.

NERESİNDE KULLANIRSIN?

Birden fazla API ve entegrasyon permission modelinde.

SIK YAPILAN HATA

Audience, role ve scope değerlerini birbirinin yerine geçirmek.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

HTTP / temsili örnek
aud=orders-api; scope=orders.read

Hedef doğru olabilir; yazma yetkisi hâlâ yoktur.

Bu sayfa dış sunuculara istek göndermez. HTTP mesajları temsili, HTTP/1.1 biçiminde okunabilir gösterimlerdir; HTTP/2 ve HTTP/3 wire formatı değildir. example.test ayrılmış öğretim alan adıdır. Komut ve JavaScript örneklerini yalnız kendi test ortamında uygula; gerçek token veya cookie yayımlama.

02 / SIRA SENDE

Önce kendin dene.

orders.read ile DELETE /orders/42 çağrıldı. Kimlik doğrulaması başarılıysa izin verilir mi?

Çözümü ve açıklamasını göster
Açıklamalı çözüm
No: require the operation permission and resource policy.

Hayır. Okuma kapsamı silme yetkisi vermez.