Share via


Reporting Services de, kimlik kimlik doğrulamasısısı

kimlik doğrulaması kullanıcı için doğru kimlik oluşturma işlemidir.Bir kullanıcının kimliğini doğrulamak için kullanabileceğiniz birçok teknikler vardır.En yaygın yolu, parolaları kullanmaktır.Örneğin, form kimlik bilgileri doğrulaması uygulamak, kullanıcılar için kimlik bilgileri bilgilerini (bir oturum açma adı ve parola isteyen genellikle bazı arabirim tarafından) sorgulayan uygulaması istediğiniz ve daha sonra kullanıcılar, bir veritabanı tablosu veya yapılandırma dosyası gibi bir veri depolamaya doğrular.Kimlik bilgileri doğrulanamıyor, kimlik doğrulaması işlemi başarısız olur ve kullanıcı Anonim kimlik varsayar.

Reporting Services, özel kimlik doğrulaması

Içinde Reporting Services, Windows işletim sisteminin kullanıcı tümleşik güvenlik veya açık alma yoluyla kimlik bilgileri doğrulaması ve kullanıcı kimlik bilgileri doğrulaması gerçekleştirir. Özel kimlik doğrulaması, geliştirilmiş Reporting Services ek kimlik doğrulaması düzenleri desteği için . Bu güvenlik uzantısı arabiriminden olası yapılır IAuthenticationExtension. Gelen tüm uzantıları devralmak IExtension uzantıyı dağıtılan ve rapor sunucusu tarafından kullanılan temel arabirim. IExtension, yaný sýra IAuthenticationExtension, üye Microsoft.ReportingServices.Interfaces ad alanı.

Bir rapor sunucusunda kimlik doğrulaması için bir birincil yol Reporting Services olan LogonUser(String, String, String) yöntem. Reporting Services Web hizmet bu üye, kullanıcı kimlik bilgileri doğrulama için bir rapor sunucusu geçirmek için kullanılabilir.Bilgisayarınızın temel güvenlik uzantısı uygular IAuthenticationExtension.LogonUser özel kimlik doğrulaması kodunuzu içeren. Form kimlik bilgileri doğrulaması örnek LogonUserbir veritabanında sağlanan kimlik bilgileri bilgilerini ve özel bir kullanıcı deposu karşı kimlik bilgileri doğrulama denetimi gerçekleştiren. Uygulaması örneği LogonUser şöyle görünür:

public bool LogonUser(string userName, string password, string authority)
{
   return AuthenticationUtilities.VerifyPassword(userName, password);
}

Aşağıdaki örnek işlev, sağlanan kimlik bilgileri bilgilerini doğrulamak için kullanılır:

internal static bool VerifyPassword(string suppliedUserName,
   string suppliedPassword)
{ 
   bool passwordMatch = false;
   // Get the salt and pwd from the database based on the user name.
   // See "How To: Use DPAPI (Machine Store) from ASP.NET," "How To:
   // Use DPAPI (User Store) from Enterprise Services," and "How To:
   // Create a DPAPI Library" for more information about how to use
   // DPAPI to securely store connection strings.
   SqlConnection conn = new SqlConnection(
      "Server=localhost;" + 
      "Integrated Security=SSPI;" +
      "database=UserAccounts");
   SqlCommand cmd = new SqlCommand("LookupUser", conn);
   cmd.CommandType = CommandType.StoredProcedure;

   SqlParameter sqlParam = cmd.Parameters.Add("@userName",
       SqlDbType.VarChar,
       255);
   sqlParam.Value = suppliedUserName;
   try
   {
      conn.Open();
      SqlDataReader reader = cmd.ExecuteReader();
      reader.Read(); // Advance to the one and only row
      // Return output parameters from returned data stream
      string dbPasswordHash = reader.GetString(0);
      string salt = reader.GetString(1);
      reader.Close();
      // Now take the salt and the password entered by the user
      // and concatenate them together.
      string passwordAndSalt = String.Concat(suppliedPassword, salt);
      // Now hash them
      string hashedPasswordAndSalt =
         FormsAuthentication.HashPasswordForStoringInConfigFile(
         passwordAndSalt,
         "SHA1");
      // Now verify them. Returns true if they are equal.
      passwordMatch = hashedPasswordAndSalt.Equals(dbPasswordHash);
   }
   catch (Exception ex)
   {
       throw new Exception("Exception verifying password. " +
          ex.Message);
   }
   finally
   {
       conn.Close();
   }
   return passwordMatch;
}

kimlik doğrulaması akışı

Reporting Services Web hizmet tarafından Rapor Yöneticisi ve rapor sunucusu form kimlik doğrulaması'nı etkinleştirmek için özel kimlik doğrulama uzantıları sağlar.

The LogonUser(String, String, String) yöntem of the Reporting Services Web hizmet is used to submit kimlik bilgileri to the rapor sunucusu for kimlik bilgileri doğrulaması. Web hizmet HTTP üstbilgileri ("tanımlama bilgisi" olarak bilinir) bir kimlik doğrulaması bileti geçirilecek sunucudan istemciye doğrulanmış bir oturum açma istekleri kullanır.

Aşağıdaki resimde, uygulamanızın bir özel kimlik doğrulaması uzantısını kullanacak biçimde yapılandırılmış rapor sunucusu ile dağıtıldığında Web hizmet için kullanıcı kimlik doğrulaması yöntem gösterilmiştir.

Reporting Services security authentication flow

Şekil 2'de gösterildiği gibi kimlik doğrulaması işlemi aşağıdaki gibidir:

  1. Bir istemci uygulaması, Web hizmet çağrıları LogonUser(String, String, String) bir kullanıcının kimliğini doğrulamak için yöntem.

  2. Web hizmetinin bir çağrı yapar LogonUser(String, String, String) güvenlik uzantısı yöntem özellikle uygulayan sınıfı IAuthenticationExtension.

  3. Uygulamanız LogonUser(String, String, String) Kullanıcı adı ve parola kullanıcı deposunda veya güvenlik yetkilisinde doğrular.

  4. Kurulduğunda, başarılı kimlik doğrulaması Web hizmet bir çerez oluşturur ve bu oturum için yönetir.

  5. Web hizmet kimlik doğrulaması bileti, çağrıyı yapan uygulamaya HTTP üstbilgisinde döndürür.

Web hizmet başarıyla güvenlik uzantısı bir kullanıcıyı doğruladığında, izleyen isteklerde için kullanılan bir tanımlama bilgisi oluşturur.rapor sunucusu güvenlik yetkilisine sahip olduğundan tanımlama bilgisi içinde özel bir güvenlik yetkilisi edebilir değil.Tanımlama bilgisi tarafından döndürülen LogonUser(String, String, String) hizmet yöntemi web ve sonraki Web hizmet yöntem çağrılarının ve URL erişim için kullanılır.

Not

Tanımlama bilgisi, iletim sırasında bozmasını önlemek için gelen kimlik doğrulaması tanımlama bilgisi döndürdü... LogonUser(String, String, String) Güvenli Güvenli Yuva Katmanı (SSL) şifrelemesini kullanarak aktarılması.

Bir özel güvenlik uzantısı yüklendiğinde, rapor sunucusu URL erişim erişiyorsanız ınternet ınformation Services (IIS) ve ASP.NET otomatik olarak kimlik doğrulaması bileti aktarımını yönetir. rapor sunucusu SOAP API erişiyorsanız, uygulamanız proxy sınıfının kimlik doğrulaması bileti yönetmek için ek destek eklemeniz gerekir.SOAP API ve kimlik doğrulaması bileti, bkz: "Web hizmet ile özel güvenlik kullanarak" yönetme hakkında daha fazla bilgi için

Form kimlik doğrulaması

Form kimlik doğrulaması türüdür ASP.NET kimlik doğrulaması, kimliği doğrulanmamış bir kullanıcı bir HTML formuna yeniden yönlendirildiği. Sistem, kullanıcı kimlik bilgileri bilgilerini sağlar, sonra kimlik bilgileri doğrulaması bileti içeren bir tanımlama bilgisi verir.Daha sonraki isteklerinde sistem ilk tanımlama bilgisi kullanıcı tarafından zaten doğrulandı, görmek için denetler rapor sunucusu.

Reporting Services Reporting Services API kullanılabilen güvenlik genişletilebilirlik arabirimlerini kullanarak form kimlik doğrulaması'nı desteklemek üzere genişletilebilir.Genişletirseniz Reporting Services Form kimlik doğrulaması kullanmak için , Güvenli Yuva Katmanı (SSL) rapor sunucusu ile tüm iletişimler için kötü amaçlı kullanıcıların başka bir kullanıcının tanımlama bilgisi erişim sağlamasını engellemek için kullanın. SSL, istemciler ve rapor sunucusu birbirlerinin kimliğini ve diğer bir bilgisayar yok iki bilgisayar arasındaki iletişimi içeriğini okuyabilir emin olmak için etkinleştirir.Böylece, kötü niyetli kullanıcılar, parola ya da bir rapor sunucusu gönderilen verileri müdahale edemez bir istemciden bir SSL bağlantısı üzerinden gönderilen tüm veriler şifrelenir.

Form kimlik doğrulaması, genellikle farklı Windows platformlar için hesapları ve kimlik doğrulamayı desteklemek için kullanılır.Bir grafik arabirim erişim istekleri bir kullanıcıya sunulan bir rapor sunucusu, ve girilen kimlik bilgileri kimlik doğrulaması için güvenlik yetkilisine gönderilir.

Bir kişinin kimlik bilgileri bilgilerini girebileceği bulunduğunu form kimlik bilgileri doğrulaması gerektirir.Reporting Services Web hizmet ile iletişim katılımsız uygulamalar için form kimlik doğrulaması bir özel kimlik doğrulama düzeni ile birleştirilmiş gerekir.

Form kimlik doğrulaması için uygundur Reporting Services zaman:

  • Saklamak ve yüklü olan kullanıcıların kimliklerini doğrulamak gerekir Microsoft Windows hesaplarını ve

  • Kendi kullanıcı arabirim formunuzu bir Web sitesindeki farklı sayfalar arasında oturum açma sayfa vermeniz gerekir.

Form kimlik doğrulaması'nı destekleyen bir özel güvenlik uzantısı yazarken, aşağıdaki noktaları dikkate alın:

  • Form kimlik doğrulaması kullanıyorsanız, anonim erişimi rapor sunucusu sanal dizini ınternet ınformation Services (IIS) etkinleştirilmesi gerekir.

  • ASP.NET kimlik doğrulaması formlar olarak küme olması gerekir.Yapılandırma ASP.NET Web.config dosyasında rapor sunucusu için kimlik doğrulaması.

  • Reporting Services can authenticate and authorize users with either Windows Authentication or custom authentication, but not both.Reporting Services does not support simultaneous use of multiple security extensions.