Exchange 2010 verfügt über ein Delegierungsmodell, bei dem Gruppen von WinRM- Cmdlets im Wesentlichen in Rollen gruppiert und die Rollen einem Benutzer zugewiesen werden.
( Bildquelle )
Dies ist ein großartiges und flexibles Modell, wenn man bedenkt, wie ich alle Vorteile von PowerShell nutzen kann, während ich die richtigen Low-Level-Technologien (WCF, SOAP usw.) verwende und keine zusätzliche Software auf der Clientseite benötige.
( Bildquelle )
Fragen)
Gibt es eine Möglichkeit für mich, das Delegierungsmodell von Exchange in meiner .NET-Anwendung zu nutzen?
Hat jemand versucht, dieses Modell nachzuahmen?
Wenn ich von vorne anfangen muss, wie würde ich diesen Ansatz nachahmen?
Antworten:
Die beiden größten RBAC für .NET sind NetSqlAzMan http://netsqlazman.codeplex.com/ und RhinoSecurity https://github.com/ayende/rhino-security
Wenn Sie am Ende von vorne anfangen müssen, können Sie eine der oben genannten Methoden als Startbasis verwenden.
quelle
Exchange stellt einen eingeschränkten Runspace bereit, und in diesem Runspace sind keine Cmdlets verfügbar. Was als Cmdlets erscheint, sind eigentlich Proxy-Funktionen. Ihre Funktionen im Runspace werden gesteuert, indem Sie einschränken, welche Proxy-Funktionen bereitgestellt werden und welche Funktionen jedes Cmdlets von der Proxy-Funktion bereitgestellt werden.
Das Duplizieren würde das Entwickeln von Routinen beinhalten, die den Runspace mit Proxy-Funktionen füllen, die auf den Benutzer zugeschnitten sind, der den Runspace anfordert, basierend auf den Rollengruppen, zu denen sie gehören. Ich sehe keinen Grund, warum AD-Gruppen nicht Ihre Rollengruppen sein könnten.
Implementierungsdetails wären anwendungsspezifisch, aber im Grunde bedeutet dies, dass Sie einschränken, wer welche Parameter der Cmdlets verwenden kann, indem Sie auswählen, welche Parameter die diesem Benutzer bereitgestellten Proxy-Funktionen haben und / oder welche Werte die Funktion für bestimmte Parameter akzeptiert.
quelle