Raporlama Servisleri içinde kod erişimi güvenliği
Kod erişim güvenliği merkezleri bu temel kavramlar: kanıt, kod grupları ve adlandırılmış izin kümeleri. De Reporting Services, rapor Yöneticisi ve Rapor Tasarımcısı rapor sunucusu bileşenlerini yapılandırır veri, dağıtım, işleme ve güvenlik uzantıları yanı sıra özel derlemeler için kod erişim güvenliği ilke dosyası var. Aşağıdaki bölümlerde, kod erişimi güvenliği'ne genel bakış. Bu bölümdeki konular hakkında daha ayrıntılı bilgi için bkz: "Güvenlik ilke modeli" de Microsoft .NET Frameworksdk belgelerine.
Reporting Servicesçünkü kod erişimi güvenliğini kullanır, ancak rapor sunucusu üzerine kurulmuştur ASP.NETteknolojisi, tipik bir arasında önemli bir fark ASP.NETuygulama ve rapor sunucusu. Tipik bir ASP.NETuygulama kullanıcı kodu yürütmek değil. Buna karşılık, Reporting Servicesbırakmak kullanıcı-e karşı rapor tanım dosyaları kullanarak program açık ve genişletilebilir bir mimari kullanır kod öğe rapor tanımlama dili ve kullanım raporları için özel bir derleme özelleştirilmiş işlevselliği geliştirmek. Ayrıca, geliştiriciler tasarım ve rapor sunucusu yeteneklerini güçlü uzantıları dağıtın. Bu güç ve esneklik gelir kadar koruma ve güvenlik olabildiğince sağlamak gerek.
Reporting Servicesgelişmiş-ebilmek kullanma birisi .NET FrameworkKurul raporlarını ve doğal arama tüm birleştirmeleri genel birleştirme önbelleğine dağıtılan işlevselliği üzerine. Rapor sunucusu kontrol edebilirsiniz tek şey ne izinleri rapor ifadeler için verilen ve özel derlemeler yüklenir. De Reporting Services, özel derlemeler almak Execute-yalnızca varsayılan izinler.
Kanıt
Kanıt, ortak dil çalışma zamanı (clr) kodu derlemeler için güvenlik ilkesini belirlemek için kullandığı bilgilerdir. Kanıt için Çalışma Zamanı kod belirli bir özelliğe sahip olduğunu gösterir. Kanıtların genel formlar, dijital imzalar ve derleme konumunu içerir. Uygulamaya anlamlı diğer bilgileri göstermek için tasarlanmış kanıt da özel olabilir.
Derlemeler ve uygulama etki alanları kanıtlara dayalı izinleri alırlar. Örneğin, derleme konumunu, Reporting Servicesdeniyor erişim olan bir ortak form kanıtların zayıf adlandırılmış birleştirmeler için. Bu url delil olarak bilinir. Rapor sunucuya dağıtmak için özel veri işleme uzantısı için url kanıt "C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin\Microsoft.Samples.ReportingServices.FsiDataExtension.dll" olabilir. Kesin ad ya da derleme dijital imza kanıt başka bir yaygın şeklidir. Bu durumda, ortak anahtar bilgi için derleme kanıtıdır.
Kod grubu
Kod grubu, belirli bir koşulu üyelik için gereken kodu mantıksal bir gruplandırmasıdır. Üyelik koşulu karşılayan herhangi bir kod grubunda bulunur. Yöneticiler, kod grupları ve bunların ilişkili izin kümeleri yöneterek bir güvenlik ilkesi yapılandırın.
Kod grubu üyeliği koşulunu kanıtlara dayanır. Örneğin, bir url üyeliği için kod grubu url kanıtlara dayanır. Ortak dil çalışma zamanı (clr) url kanıt gibi tanımlayıcı özellikleri kodunu açıklayın ve grubun üyelik koşulu yerine getirilmiş olup olmadığını belirlemek için kullanır. Örneğin, kod grubu üyeliği koşulunu "kod derleme C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin\Microsoft.Samples.ReportingServices.FsiDataExtension.dll" ise, çalışma kodu bu konumundan kaynaklı olup olmadığını belirlemek için kanıt inceliyor. Kod grubu bu tür bir yapılandırma girişi örneği aşağıdaki gibi görünebilir:
<CodeGroup class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Name="MyCodeGroup"
Description="Code group for my data processing extension">
<IMembershipCondition class="UrlMembershipCondition"
version="1"
Url="C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin\Microsoft.Samples.ReportingServices.FsiDataExtension.dll"
/>
</CodeGroup>
<CodeGroup class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Name="MyCodeGroup"
Description="Code group for my data processing extension">
<IMembershipCondition class="UrlMembershipCondition"
version="1"
Url="C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin\Microsoft.Samples.ReportingServices.FsiDataExtension.dll"
/>
</CodeGroup>
Sen-meli iş sistem yöneticinize veya uygulama dağıtımınızı ile kod erişimi güvenliği ve kod grupları belirlemek için uzman özel derlemeler veya Reporting Servicesuzantılarını isteyebilir.
Adlandırılmış izin kümeleri
Adlandırılmış izin kümesini Yöneticiler kod grubu ile ilişkilendirebileceğiniz izinler kümesidir. En adlandırılmış izin kümeleri en az bir izin, bir ad ve açıklama için izin kümesi oluşur. Yöneticiler adlandırılmış izin kümeleri oluşturmak veya kod grupları için güvenlik ilkesini değiştirmek için kullanabilirsiniz. Birden fazla kod grubu aynı adlandırılmış izin kümesi ile ilişkili olabilir. clr yerleşik adlandırılmış izin kümeleri sağlar; Bunlar arasında hiçbir, yürütme, Internet, LocalIntranet, her, ve FullTrustUNSAFE.
[!NOT]
Özel veri, dağıtım, işleme ve güvenlik uzantıları Reporting Servicesaltında çalıştırılmalıdır FullTrustUNSAFE izin kümesi. Çalışmak için uygun kod grubu ve üyelik koşulları eklemek için sistem yöneticinize, Reporting Servicesuzantıları.
Raporları ile kullandığınız özel derlemeler için izin kendi özel düzeyleri ilişkilendirebilirsiniz. Örneğin, belirli bir dosyaya erişim derleme izin vermek istiyorsanız, belirli dosya I/O erişim Yeni adlandırılmış izin kümesini oluşturun ve sizin kod grubu izin atamak. Aşağıdaki izin kümesi MyFile.xml dosyaya salt okunur erişim verir:
<PermissionSet class="NamedPermissionSet"
version="1"
Name="MyNewFilePermissionSet"
Description="A special permission set that grants read access to my file.">
<IPermission class="FileIOPermission"
version="1"
Read="C:\MyFile.xml"/>
<IPermission class="SecurityPermission"
version="1"
Flags="Assertion, Execution"/>
</PermissionSet>
<PermissionSet class="NamedPermissionSet"
version="1"
Name="MyNewFilePermissionSet"
Description="A special permission set that grants read access to my file.">
<IPermission class="FileIOPermission"
version="1"
Read="C:\MyFile.xml"/>
<IPermission class="SecurityPermission"
version="1"
Flags="Assertion, Execution"/>
</PermissionSet>
Bu izin kümesi vermek kod grubu aşağıdaki gibi görünebilir:
<CodeGroup class="UnionCodeGroup"
version="1"
PermissionSetName="MyNewFilePermissionSet"
Name="MyNewCodeGroup"
Description="A special code group for my custom assembly.">
<IMembershipCondition class="UrlMembershipCondition"
version="1"
Url="C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin\MyCustomAssembly.dll"/>
</CodeGroup>
<CodeGroup class="UnionCodeGroup"
version="1"
PermissionSetName="MyNewFilePermissionSet"
Name="MyNewCodeGroup"
Description="A special code group for my custom assembly.">
<IMembershipCondition class="UrlMembershipCondition"
version="1"
Url="C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin\MyCustomAssembly.dll"/>
</CodeGroup>