Share via


Temsilci erişimi anlama

Bir kullanıcı uygulamada oturum açtığında ve Microsoft Graph gibi başka bir kaynağa erişmek için bunu kullandığında, uygulamanın önce kullanıcı adına bu kaynağa erişmek için izin istemesi gerekir. Bu yaygın senaryoya temsilci erişimi adı verilir.

Temsilci erişimi neden kullanmalıyım?

Kişiler bulut hizmetlerinden verilerine erişmek için sık sık farklı uygulamalar kullanır. Örneğin, birisi OneDrive'ında depolanan dosyaları görüntülemek için sık kullanılan bir PDF okuyucu uygulaması kullanmak isteyebilir. Başka bir örnek, bir şirketin iş arkadaşları hakkında paylaşılan bilgileri alabilen iş kolu uygulaması olabilir ve böylece bir istek için gözden geçirenleri kolayca seçebilirler. Böyle durumlarda istemci uygulamasının, PDF okuyucunun veya şirketin istek onay aracının, uygulamada oturum açan kullanıcı adına bu verilere erişme yetkisine sahip olması gerekir.

Oturum açmış bir kullanıcının erişebileceği kendi kaynakları veya kaynaklarıyla çalışmasına izin vermek istediğinizde temsilci erişimi kullanın. İster kuruluşunun tamamı için ilkeleri ayarlayan bir yönetici ister gelen kutusundaki bir e-postayı silen bir kullanıcı olsun, kullanıcı eylemleriyle ilgili tüm senaryolarda temsilci erişimi kullanılmalıdır.

Diagram shows illustration of delegated access scenario.

Buna karşılık, temsilci erişimi genellikle otomasyon gibi oturum açmış bir kullanıcı olmadan çalışması gereken senaryolar için kötü bir seçimdir. Veri kaybı önleme veya yedekleme gibi birçok kullanıcının kaynağına erişmeyi içeren senaryolar için de kötü bir seçim olabilir. Bu tür işlemler için yalnızca uygulama erişimi kullanmayı göz önünde bulundurun.

Kapsamları istemci uygulaması olarak isteme

Uygulamanızın kullanıcıdan erişmek istediğiniz kaynak uygulaması için belirli bir kapsam veya kapsam kümesi vermesini istemesi gerekir. Kapsamlar, temsilci izinleri olarak da ifade edilebilir. Bu kapsamlar, uygulamanızın kullanıcı adına hangi kaynakları ve işlemleri gerçekleştirmek istediğini açıklar. Örneğin, uygulamanızın kullanıcıya son alınan posta iletilerinin ve sohbet iletilerinin listesini göstermesini istiyorsanız, kullanıcıdan Microsoft Graph'ı Mail.Read ve Chat.Read kapsamları onaylamasını isteyebilirsiniz.

Uygulamanız bir kapsam istedikten sonra, kullanıcının veya yöneticinin istenen erişimi vermesi gerekir. Outlook.com veya Xbox Live hesapları gibi Microsoft Hesaplarına sahip tüketici kullanıcılar, kapsamları her zaman kendileri için verebilir. Microsoft Entra hesapları olan kuruluş kullanıcıları, kuruluş ayarlarına bağlı olarak kapsam verebilir veya vermeyebilir. Bir kuruluş kullanıcısı kapsamları doğrudan onaylayamazsa, kuruluş yöneticisinin bu kapsamları onaylamasını istemesi gerekir.

Her zaman en az ayrıcalık ilkesini izleyin: Uygulamanızın ihtiyaç duymadığı kapsamları asla istememelisiniz. Bu ilke, uygulamanızın güvenliği ihlal edilirse güvenlik riskini sınırlamaya yardımcı olur ve yöneticilerin uygulamanıza erişim izni vermelerini kolaylaştırır. Örneğin, uygulamanızın yalnızca kullanıcının ait olduğu sohbetleri listelemesi gerekiyorsa ancak sohbet iletilerinin kendisini göstermesi gerekmiyorsa, yerine Chat.Readdaha sınırlı bir Microsoft Graph Chat.ReadBasic kapsamı istemeniz gerekir. openID kapsamları hakkında daha fazla bilgi için bkz . OpenID kapsamları.

Kaynak hizmeti için kapsamları tasarlama ve yayımlama

API oluşturuyorsanız ve kullanıcılar adına temsilci erişimine izin vermek istiyorsanız, diğer uygulamaların isteyebileceği kapsamlar oluşturmanız gerekir. Bu kapsamlar, istemcinin kullanabileceği eylemleri veya kaynakları açıklamalıdır. Kapsamlarınızı tasarlarken geliştirici senaryolarını göz önünde bulundurmalısınız.

Temsilci erişimi nasıl çalışır?

Temsilci erişimi hakkında hatırlamanız gereken en önemli şey, hem istemci uygulamanızın hem de oturum açmış kullanıcının düzgün yetkilendirilmiş olması gerektiğidir. Kapsam vermek yeterli değildir. İstemci uygulamasının doğru kapsamı yoksa veya kullanıcı kaynağı okumak veya değiştirmek için yeterli haklara sahip değilse, çağrı başarısız olur.

  • İstemci uygulama yetkilendirmesi - İstemci uygulamaları kapsamlar vererek yetkilendirilmiştir. Bir istemci uygulamasına bir kullanıcı veya yönetici tarafından bazı kaynaklara erişmesi için bir kapsam verildiğinde, bu izin Microsoft Entra Id'ye kaydedilir. İstemci tarafından ilgili kullanıcı adına kaynağa erişmesi istenen tüm temsilci erişim belirteçleri bu kapsamların talep değerlerini talepte scp içerir. Kaynak uygulaması, istemci uygulamaya çağrı için doğru kapsamın verilip verilmediğini belirlemek için bu talebi denetler.
  • Kullanıcı yetkilendirmesi - Kullanıcılar, çağırdığınız kaynak tarafından yetkilendirilmiştir. Kaynak uygulamaları rol tabanlı erişim denetimi, sahiplik/üyelik ilişkileri, erişim denetimi listeleri veya diğer denetimler gibi kullanıcı yetkilendirmesi için bir veya daha fazla sistem kullanabilir. Örneğin, Microsoft Entra Id bir kullanıcının bir kuruluşun uygulamalarını silmesine izin vermeden önce bir uygulama yönetimine veya genel yönetici rolüne atandığını denetler, ancak tüm kullanıcıların sahip oldukları uygulamaları silmesine de izin verir. Benzer şekilde, SharePoint Online hizmeti kullanıcının dosyayı açmasına izin vermeden önce dosya üzerinde uygun sahip veya okuyucu haklarına sahip olup olmadığını denetler.

Temsilci erişimi örneği – Microsoft Graph aracılığıyla OneDrive

Aşağıdaki örneği inceleyin:

Alice, microsoft graph adlı kaynak API'si tarafından korunan bir dosyayı açmak için bir istemci uygulaması kullanmak istiyor. Kullanıcı yetkilendirmesi için OneDrive hizmeti dosyanın Alice'in sürücüsünde depolanıp depolanmadığını denetler. Başka bir kullanıcının sürücüsünde depolanıyorsa, Alice'in diğer kullanıcıların sürücülerini okuma hakkı olmadığından OneDrive, Alice'in isteğini yetkisiz olarak reddeder.

İstemci uygulama yetkilendirmesi için OneDrive, çağrıyı yapan istemciye oturum açmış kullanıcı adına kapsamın Files.Read verilip verilmediğini denetler. Bu durumda oturum açan kullanıcı Alice'tir. Alice için uygulamaya verilmemişse Files.Read OneDrive da istekte başarısız olur.

GET /drives/{id}/files/{id} Alice için verilen Files.Read istemci uygulaması kapsamı Alice için istemci uygulamasına kapsam verilmedi Files.Read
Belge Alice'in OneDrive'ındadır. 200 – Erişim verildi. 403 - Yetkisiz. Alice (veya yöneticisi) bu istemcinin dosyalarını okumasına izin vermedi.
Belge başka bir kullanıcının OneDrive'ında*. 403 - Yetkisiz. Alice'in bu dosyayı okuma hakkı yok. İstemciye izin verilmiş Files.Read olsa da Alice adına hareket ederken reddedilmelidir. 403 – Yetkisiz. Alice'in bu dosyayı okuma hakkı yok ve istemcinin de erişimi olan dosyaları okumasına izin verilmiyor.

Verilen örnek, temsilci yetkilendirmesini göstermek için basitleştirilmiştir. Üretim OneDrive hizmeti, paylaşılan dosyalar gibi diğer birçok erişim senaryosunu destekler.

Ayrıca bkz.