O Exchange 2010 tem um modelo de delegação em que grupos de cmdlets winrm são essencialmente agrupados em funções e as atribuídas a um usuário.
( Fonte da imagem )
Este é um modelo excelente e flexível, considerando como eu posso aproveitar todos os benefícios do PowerShell, enquanto uso as tecnologias certas de baixo nível (WCF, SOAP etc.) e sem exigir software adicional no lado do cliente.
( Fonte da imagem )
Questões)
Existe uma maneira de aproveitar o modelo de delegação do Exchange no meu aplicativo .NET?
Alguém tentou imitar esse modelo?
Se devo começar do zero, como eu iria imitar essa abordagem?
Respostas:
Os dois maiores RBAC para .NET são o NetSqlAzMan http://netsqlazman.codeplex.com/ e o RhinoSecurity https://github.com/ayende/rhino-security
Se você tiver que seguir o caminho de começar do zero, poderá usar um dos itens acima como base inicial.
fonte
O Exchange está fornecendo um espaço de execução limitado e, na verdade, não há cmdlets disponíveis nesse espaço de execução. O que parecem ser cmdlets são na verdade funções de proxy. Seus recursos no espaço de execução são controlados limitando quais funções de proxy são fornecidas e quais recursos de cada cmdlet são expostos pela função de proxy.
Duplicar isso envolveria o desenvolvimento de rotinas que preenchem o espaço de execução com funções de proxy personalizadas para o usuário que está solicitando o espaço de execução, com base nos grupos de funções aos quais pertencem. Não vejo nenhum motivo para os grupos do AD não serem os seus grupos de funções.
Os detalhes da implementação seriam específicos do aplicativo, mas basicamente significa que você limita quem pode usar quais parâmetros dos cmdlets escolhendo quais parâmetros as funções de proxy fornecidas a esse usuário terão e / ou limitando os valores que a função aceitará para parâmetros específicos.
fonte