Você precisa de um sistema de tickets que forneça três coisas:
- Timestamp de quando as permissões foram alteradas (adicionadas ou removidas) para um usuário específico
- Por que eles foram alterados
- Capacidade de pesquisar por essas alterações
Praticamente todos os sistemas de bilhetagem já fornecem o número 1 na forma de uma data de criação do ticket, data de modificação, etc. # 2 cabe a você documentar no ticket. Geralmente, é um e-mail de aprovação do gerenciador de recursos colado no ticket dizendo que eles podem ter acesso (ou o acesso deve ser removido) e que tipo. # 3 é o mais importante e depende do sistema de emissão de bilhetes, mas se você tiver um sistema que não seja fácil de pesquisar, seu trabalho será cortado para você. Se você puder apenas pesquisar pelo usuário para que todos os tickets de permissão estejam vinculados a suas informações de contato no sistema de emissão de bilhetes, então você é bom, caso contrário, você está essencialmente documentando suas alterações em um buraco negro.
Fora de um sistema de bilhetagem que pode fazer isso para rastrear alterações (você menciona que tem um sistema básico de emissão de tickets, então talvez você precise obter um melhor que permita uma melhor capacidade de pesquisa / relatório), qualquer aplicativo, utilitário ou O script que você usa fornecerá apenas uma captura instantânea das permissões. Você ainda está preso com o "por quê?" de quem tem acesso a quê, que só pode ser documentado adequadamente separadamente do aplicativo, pois é provável que você precise capturar o e-mail original ou outro texto de aprovação do gerenciador de recursos. Depois de ter isso, onde você o coloca para associá-lo aos resultados do aplicativo?
A execução de um aplicativo ou script para determinar as permissões atuais em uma estrutura de arquivos também não fornece uma boa trilha de auditoria de alterações de permissão para um usuário. Você está basicamente preso a um grande instantâneo das permissões atuais em um único ponto no tempo. Quando você executá-lo novamente, você terá outro grande instantâneo de permissões de arquivo. Mesmo que você tenha retido a primeira captura de permissões e a tenha comparado com a captura recente, e as permissões tenham mudado, como você amarra isso ao motivo da alteração? Mais uma vez, isso nos traz de volta ao sistema de bilheteira, já que os números 1, 2 e 3 acima serão todos documentados em um só lugar.
Outro problema que você mencionou é a permissão creep (quando um usuário é reatribuído a outra permissão e não precisa mais acessar o recurso X, mas o mantém de qualquer maneira, porque o fato de não precisar mais acessar o recurso X não foi executado pelo IT Dept durante a transição). A ÚNICA maneira de controlar isso é dizer ao RH ou a quem quer que cuide das reatribuições de funcionários que a equipe de TI precisa ser notificada quando um funcionário for reatribuído para que possa atribuir e revogar as permissões adequadamente. É isso aí. Não existe uma aplicação mágica que lhe diga que um usuário tem acesso ao recurso X, mas não deve mais porque seu trabalho agora é Y. A notificação humana de alguma forma deve ser dada à TI quando isso acontecer.