Teilen über


Sicherheit im Geschäftsregel-Framework

Die Geschäftsregel-Engine wird im Sicherheitskontext der als Host dienenden Anwendung ausgeführt. Die Identität der Regel-Engine instance während der Ausführung ist die des Threadkontexts, der die Policy.Execute-Methode aufruft.

Standard-Sicherheitskonfiguration

Wenn Sie Microsoft BizTalk Server installieren, werden standardmäßig zwei Microsoft Windows-Gruppen erstellt, eine für Administratoren und eine für Benutzer: "BizTalk Server Administratoren" und "BizTalk-Anwendungsbenutzer". Diese beiden Windows-Gruppen sind Mitglieder von BTS_ADMIN_USERS und BTS_HOST_USERS SQL-Rollen, die Mitglieder von RE_ADMIN_USERS bzw. RE_HOST_USERS SQL-Rollen sind.

Die SQL-Standardrollen werden immer dann erstellt, wenn ein Regelspeicher erstellt wird: BTS_ADMIN_USERS, BTS_HOST_USERS, RE_ADMIN_USERS und RE_HOST_USERS.

Standardmäßige Windows-Gruppen SQL-Rollen
BizTalk Server-Administratoren RE_ADMIN_USERS
BizTalk-Anwendungsbenutzer RE_HOST_USERS

Nur Benutzer der Rolle RE_ADMIN_USERS können die gespeicherten Prozeduren ausführen, mit denen die Konfigurationstabellen für den Schutz des Zugriffs auf Bereitstellungen und Einheiten aktualisiert werden. Das heißt, dass die Bereitstellung, die Zurücknahme der Bereitstellung und die Schutzkonfiguration ausschließlich durch Administratoren der Regel-Engine vorgenommen werden. Die Benutzer der Rolle RE_HOST_USERS können die anderen gespeicherten Prozeduren im SQL-Regelspeicher ausführen.

Unabhängig von der Installationsreihenfolge der Regel-Engine wird bei dessen Konfiguration dem Konto "Aktualisierungsdienst für die Regel-Engine" die Mitgliedschaft in der SQL-Rolle RE_HOST_USERS gewährt, sofern es nicht bereits über Datenbankzugriff verfügt. Wenn jedoch die Regel-Engine nach der ursprünglichen BizTalk-Installation installiert wird, wird die spezifische Benutzergruppe des BizTalk-Hosts nicht der SQL-Rolle BTS_HOST_USERS in der Regel-Engine-Datenbank hinzugefügt, da die Hosterstellung bereits abgeschlossen ist. Diesen Schritt müssen Sie manuell durchführen.

Sicherheit auf Elementebene

Neben der standardmäßigen Sicherheitskonfiguration bietet die Geschäftsregel-Engine auch Sicherheit auf der Element- bzw. Richtlinien- und Vokabularebene.

Mit jeder Richtlinien- oder Vokabularversion ist mindestens eine Autorisierungsgruppe verbunden. Dabei handelt es sich um eine benannte Liste von Microsoft Windows-Benutzern, SQL-Benutzern, SQL-Rollen und Windows-Gruppen mit einem bestimmen Zugriffsumfang für den jeweiligen Typ.

Wenn im Regelspeicher eine neue Richtlinie oder ein neues Vokabular erstellt wird, haben standardmäßig nur der erstellende Benutzer und der Administrator der Regel-Engine sowohl Lese-/Ausführungs- als auch Änderungs-/Löschzugriff. Der Administrator der Regel-Engine kann festlegen, welche Benutzer (Prozesse werden unter Benutzeranmeldeinformationen durchgeführt) die Zugriffsrechte zum Durchführen verschiedener Vorgänge haben: Lesen/Ausführen, Ändern/Löschen, vollständige Berechtigung oder keine Berechtigung.

Die elementspezifische Sicherheit ist standardmäßig nicht aktiviert. Derzeit kann sie nicht über die Benutzeroberfläche festgelegt werden. Sie kann jedoch mithilfe der Anmeldeinformationen des Administrators der Geschäftsregel-Engine programmgesteuert festgelegt werden. Das folgende Codefragment zeigt, wie eine neue Autorisierung erstellt und die Gruppe mit einem Regelsatz verknüpft wird.

RuleSet rs;  
string RSName;     
  
// Create new user  
AuthorizationGroupEntry newuser = new AuthorizationGroupEntry(UserName, UID);  
AuthorizationGroupEntryCollection AGEC = new AuthorizationGroupEntryCollection();  
AGEC.Add(newuser);  
  
// Define new authorization group collection  
AuthorizationGroupCollection AGC = new AuthorizationGroupCollection();  
  
// Create new authorization group  
AuthorizationGroup AG = new AuthorizationGroup(GroupName, AccessPermit, AGEC);  
  
//add the authorization group to the authorization group collection  
AGC.Add(AG);  
  
//saving the authorization group collection to the rule store  
m_sqlRS.SaveAuthorizationGroups(AGC);  
  
rs = m_sqlRS.GetRuleSet(rsInfo[0]);                 
RSName = rs.Name;  
  
// Associate authorization group to the ruleset  
m_sqlRS.SetRuleSetAuthorizations(RSName, AGC);  
  
// Get ruleset by name from SQL rule store  
RuleSetInfoCollection rsInfo = m_sqlRS.GetRuleSets("myRuleSet", RuleStore.Filter.All);  

Hinweis

Der Einsatz von Sicherheitsfunktionen auf Elementebene kann die Leistung beeinträchtigen, da die Richtlinie bei jeder Ausführung anhand einer Datenbanksuche den Zugriffsumfang der Anwendung überprüfen muss, ehe sie eine Instanz der Regel-Engine zurückgibt.

Weitere Informationen

Wichtige Sicherheitshinweise für die Geschäftsregel-Engine