Ontem estive em um cliente, e uma necessidade dele é sincronizar usuários e roles do JIRA com o Active Directory e sistema de RH deles.
Embora pudéssemos apontar o JIRA direto para o Active Directory, a coisa não é tão fácil, pois eles tem uma base distribuída, além de não ter uma regra clara para quem seria usuário do JIRA ou não.
Poderíamos também usar o
Atlassian Crowd, mas isso também não daria certo, pois eles têm um esquema de reuso de contas antigas de usuários, o que daria problemas de falhas de segurança e outros no JIRA.
No tocante às roles, poderíamos fazer um REST de integração disparado pelo sistema de RH. Porém isso também é complicado, devido o sistema de RH ser externo e o contrato deles com o fornecedor tem escopo e regras legais que impedem isso.
Aí pensei: Putz, o Mizura seria ideal aqui.
Eu posso tranquilamente implementar três conectores do Mizura: um apontando para a base de usuários do JIRA, outro apontando para a base (ou para as bases) Active Directory deles e outro apontando para a base de usuários do RH.
Seria, essencialmente, uma
sincronização aditiva de usuários, com o intuito de adicionar usuários novos no JIRA e manter sincronizados coisas como o nome ou email do usuário.
Da mesma formal podería ser implementado o conceito de desativar um usuário no JIRA (Ex. remover ele do grupo jira-users) quando um usuário fosse desabilitado ou excluído no AD.
Porém, coisas como um usuário desabilitado no AD que voltasse à ser habilitado, isso não seria propagado para o JIRA.
Quanto às roles, teríamos um mapeamento (via filtros do Mizura) com um clássico "De-Para" entre os cargos no RH (ex.: Gerente de Área de Negócio) com as roles no JIRA (ex.: "Aprovador de Solicitação de Usuário").
Enfim, é uma idéia que apareceu voltando do cliente para casa, e não considerto totalmente descartada de ser algo embedded na versão padrão do Mizura num futuro próximo.
Ou seja, com a arquitetura nova de conectores, o céu é o limite. E espero cumprir a data do
release para Setembro próximo.