Autoryzacji w Reporting Services

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.Rozszerzenia zabezpieczeń dla Reporting Services zawierać implementacji składnika autoryzacja, który jest używany do udzielania dostępu użytkownikom po uwierzytelniania serwer raportów.Autoryzacja jest wywoływana, gdy użytkownik usiłuje wykonać operację na system lub serwer raportów element, za pośrednictwem interfejsu API SOAP i via do adresów URL.Jest to możliwe za pośrednictwem interfejs rozszerzenie zabezpieczeń IAuthorizationExtension.Jak wspomniano wcześniej, dziedziczy wszystkie rozszerzenia IExtension interfejs podstawowy dla rozszerzenia, które można wdrożyć.IExtension i IAuthorizationExtension są członkami Microsoft.ReportingServices.Interfaces obszaru nazw.

Sprawdzania dostępu

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.CheckAccess Nadmiernie metoda dla każdego typu operacji.Dla operacji folderu przykład sprawdzania dostępu może wyglądać następująco:

// 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;
}

serwer raportów Wywołania CheckAccess metoda poprzez przepuszczanie w imieniu użytkownika zalogowanego, token użytkownika, deskryptora zabezpieczeń dla towaru i żądanej operacji.W tym miejscu podczas sprawdzania deskryptora zabezpieczeń dla nazwy użytkownika i odpowiednich uprawnień do wykonania żądania, a następnie powróć true wyznaczać udzielić dostępu lub false wyznaczać odmowa dostępu.

Deskryptory zabezpieczeń

Przy ustawianiu zasad autoryzacja w elementach baza danych serwera raportów, aplikacja klient (takich jak Menedżer raportów) przesyła informacje użytkownika do rozszerzenie zabezpieczeń wraz z zasady zabezpieczeń dla towaru.Te informacje użytkownikiem i zasad zabezpieczeń są określane zbiorczo jako deskryptora zabezpieczeń.Deskryptor zabezpieczeń zawiera następujące informacje dla element baza danych serwera raportów:

  • Grupy lub użytkownika, typie uprawnień do wykonywania operacji na element.

  • Typ element.

  • Listy arbitralnej kontroli dostępu kontrolowanie dostępu do element.

Deskryptory zabezpieczeń są tworzone przy użyciu usługa sieci Web SetPolicies i SetSystemPolicies metody.

Przepływ autoryzacji

Reporting Services autoryzacja jest kontrolowane przez rozszerzenie zabezpieczeń aktualnie skonfigurowana do uruchamiania na serwerze.Autoryzacja jest oparte na rolach i ograniczone uprawnienia i operacje dostarczonych przez Reporting Services architektury zabezpieczeń.Poniższy diagram przedstawia proces autoryzowania użytkowników do działania w elementach baza danych serwera raportów:

Przepływ autoryzacji zabezpieczeń usług Reporting Services

Jak pokazano w tym diagramie, autoryzacja przebiega w następującej kolejności:

  1. Po uwierzytelnieniu klient aplikacji tworzenie żądania serwer raportów za pośrednictwem metod usługa Reporting Services Web.uwierzytelnianie Bilet jest przekazywana do serwer raportów w formie plików cookie w nagłówku HTTP każdego żądania sieci Web.

  2. Plik cookie jest sprawdzana przed do wszelkich kontroli dostępu.

  3. Po sprawdzeniu poprawności pliku cookie serwer raportów wywołuje GetUserInfo , użytkownik jest tożsamość.

  4. Użytkownik próbuje operację za pośrednictwem usługa Reporting Services Web.

  5. serwer raportów Wywołania CheckAccess metoda.

  6. Deskryptor zabezpieczeń jest pobierany i przekazany do niestandardowego rozszerzenie zabezpieczeń wykonania CheckAccess.W tym momencie użytkownika, grupy lub komputera jest porównywany z deskryptora zabezpieczeń element uzyskiwany i jest upoważniony do wykonania żądanej operacji.

  7. Jeśli użytkownik jest autoryzowany, wykonuje operację usługa sieci Web i zwraca odpowiedź do aplikacji wywołującej.