Share via


Raporlama Servisleri içinde yetkilendirme

Authorization is the process of determining whether an identity should be granted the requested type of access to a given resource in the report server database.Reporting Services uses a role-based authorization architecture that grants a user access to a given resource based on the user's role assignment for the application.Güvenlik uzantıları için Reporting Services uygulaması üzerinde kimlik doğrulaması yapıldıktan sonra kullanıcılara erişim vermek için kullanılan bir yetkilendirme bileşen içeren rapor sunucusu.Yetkilendirme, kullanıcı sistemi ya da soap API aracılığıyla ve url erişim aracılığıyla rapor sunucusu öğe üzerinde bir işlem gerçekleştirmeye çalıştığında çağrılır.Bu güvenlik uzantısı arabirim üzerinden yapılabilecek IAuthorizationExtension.Yukarıda belirtildiği gibi tüm uzantıları devralmıyor IExtension base, sizin için herhangi bir uzantısı arabirim dağıtmak.IExtension ve IAuthorizationExtension üye Microsoft.ReportingServices.Interfaces ad.

Erişim denetimi

In authorization, the key to any custom security implementation is the access check, which is implemented in the CheckAccess method.CheckAccess is called each time a user attempts an operation on the report server.The CheckAccess method is overloaded for each operation type.Klasör işlemleri için bir erişim denetimi örneği aşağıdaki gibi görünebilir:

// Overload for Folder operations
public bool CheckAccess(
   string userName, 
   IntPtr userToken, 
   byte[] secDesc, 
   FolderOperation requiredOperation)
{
   // If the user is the administrator, allow unrestricted access.
   if (userName == m_adminUserName) 
      return true;

   AceCollection acl = DeserializeAcl(secDesc);
   foreach(AceStruct ace in acl)
   {
         if (userName == ace.PrincipalName)
         {
            foreach(FolderOperation aclOperation in 
               ace.FolderOperations)
            {
               if (aclOperation == requiredOperation)
                     return true;
            }
         }
   }
   return false;
}

rapor sunucusu Aramalar CheckAccess yöntemine aktararak adını oturum açan kullanıcının, kullanıcı belirteci, güvenlik tanımlayıcısı, öğe ve istenen işlemi.Güvenlik tanımlayıcısı kullanıcı adı ve isteği tamamlamak, sonra geri dönmek için uygun izinlere burayı true için erişim izni verilir bitişini işaret eder veya false için erişim engellendi bitişini işaret eder.

Güvenlik tanımlayıcıları

Yetkilendirme İlkeleri öğelerinde ayarlarken rapor sunucusu veritabanı, bir istemci uygulaması (gibi Rapor Yöneticisi) öğe için bir güvenlik ilkesi ile birlikte Güvenlik uzantısı için kullanıcı bilgilerini gönderir.Bu güvenlik ilkesini ve kullanıcı bilgilerini bilinen topluca bir güvenlik tanımlayıcısı olarak.Güvenlik tanımlayıcısı için rapor sunucusu veritabanı içindeki öğe aşağıdaki bilgileri içerir:

  • Bazı tür öğe işlemleri gerçekleştirmek için izne sahip bir kullanıcı veya grup.

  • öğe'S yazın.

  • İsteğe bağlı erişim denetim listesi erişimi denetleme öğe.

Güvenlik tanımlayıcıları, Web'i kullanarak oluşturulur hizmet SetPolicies ve SetSystemPolicies yöntemleri.

Yetkilendirme akışı

Reporting Services Yetkilendirme sunucu üzerinde çalıştırmak üzere yapılandırılmış güvenlik uzantısı tarafından denetlenir.Sınırlı izinleri ve işlemleri tarafından sağlanan ve rol tabanlı yetkilendirme Reporting Services Güvenlik mimarisi.Aşağıdaki diyagram rapor sunucusu veritabanı içindeki öğeler üzerinde çalışması için Kullanıcıları yetkilendirmek işlemi gösterir:

Reporting Services güvenlik yetkilendirme akışı

Bu diyagramda gösterildiği gibi yetkilendirme şu sırayı izler:

  1. Kimlik doğrulaması yapıldıktan sonra istemci uygulamaları Reporting Services Web hizmet yöntemleri rapor sunucusu isteği yapmak.kimlik doğrulaması bileti rapor sunucusu şeklinde bir tanımlama bilgisi her Web isteği http üstbilgisinde geçirilir.

  2. Tanımlama bilgisi, önce herhangi bir erişim denetimi doğrulanır.

  3. Rapor sunucusu tanımlama bilgisi doğrulanır kez çağırır GetUserInfo ve kullanıcı verilen bir kimlik.

  4. Kullanıcı bir işlem Reporting Services Web hizmet yoluyla çalışır.

  5. rapor sunucusu Aramalar CheckAccess yöntem.

  6. Güvenlik tanımlayıcısı alınır ve bir özel güvenlik uzantısı uygulaması için geçirilen CheckAccess.Bu noktada, kullanıcı, Grup veya bilgisayar için güvenlik tanımlayıcısını karşılaştırılır öğe erişilen ve istenen işlemi gerçekleştirmek için yetkili.

  7. Kullanıcı yetkilendirilirse, Web hizmet işlemi gerçekleştirir ve çağıran uygulama yanıt verir.