Posso usar o Active Directory para segurança em nível de usuário em um aplicativo do Access? Por favor?

Posso usar o Active Directory para segurança em nível de usuário em um aplicativo do Access? Por favor?

Minha empresa faz uso bastante extensivo de um aplicativo Access + MySQL que provavelmente veria algum tráfego significativo no Daily WTF se eu publicasse o código-fonte. O gerenciamento de usuários e suas permissões está ficando fora de controle, e parece que passo cada vez mais tempo lidando com ajustes ou tentando descobrir por que alguém não consegue ver o que deveria ver.

Foi originalmente configurado para ser usado por três usuários em um armazém. Agora é usado por mais de vinte usuários em quatro estados, com mais a serem adicionados em breve, e os recursos foram adicionados em uma proporção de aproximadamente 10 para 1 com os usuários... O aplicativo principal real não é ruim, mas gerencia usuários é uma dor. O Access é um ótimo front-end para os próprios dados, que são armazenados em um back-end MySQL em nossa sede. Os usuários têm caixas Cisco VPN em filiais satélites, e isso também tem sido sólido. O escopo passou de um simples registro de remessa de armazém para um CRM/ERP completo... bem, não creio que você possa chamar isso de solução. Uma emulsão, talvez. Se eu tivesse orçamento, ligaria para a SAP e diria para eles fazerem isso. Receio que isso esteja fora das possibilidades no futuro próximo.

Seguindo as instruções do Google (nem sempre a coisa mais segura a fazer), usei o 'Assistente de segurança em nível de usuário' no Access para atribuir nomes de usuário e senhas a vários usuários, o que foi bom quando comecei com 4 a 5 usuários no total e 3 usuários ativos . Mas agora é bastante pesado. Meu desejo mais profundo é que haja alguma maneira de autenticar usuários e atribuir funções de privilégio com base no nome de usuário e senha do Active Directory. Disseram-me que isso é impossível. Algumas pesquisas no Google não revelaram nada digno de nota.

Suponho que seja possível obter algum tipo de estrutura de autenticação usando o Active Directory porque o VBA possui links para todos os tipos de APIs no Windows. No entanto... vale a pena o tempo e o esforço? Alguém já fez isso funcionar ou posso explodir não apenas meu aplicativo digno de WTF, mas também o domínio?

Responder1

Eu sei que é possível fazer isso, mas poucos desenvolvedores do Access parecem estar fazendo isso. Se outra pessoa escrevesse o código, eu mesmo o usaria, mas não preciso dele o suficiente para escrevê-lo sozinho.

O conceito principal é que você pode acessar informações do AD por meio de uma consulta LDAP usando ADO. Não há como impor permissões em objetos do Access com isso, mas você certamente pode controlar o fluxo/apresentação do aplicativo com base na associação ao AD. Vereste tópicopara um ponto de partida. Além disso, háuma base de conhecimento MSartigo sobre isso que explica a abordagem LDAP.

A propósito, desde que você não precise de funcionalidades específicas do AD (como unidades organizacionais), não será necessário usar o AD. Você pode usar chamadas regulares de API para obter informações de associação ao grupo. Veresta postagem do Stackoverflowpara algum código que sugere a direção a seguir (não posso verificar esse código, pois parece bastante elíptico, ou seja, não é uma declaração de API, mas fornece o conceito básico).

Responder2

Não é possível interagir diretamente com o AD nesse nível. O melhor que você pode fazer diretamente é atribuir permissões de arquivo com base nas contas do AD. Seria necessário um pouco de esforço para fazer isso por meio do VBA, mas certamente não fora do alcance da compreensão. Eu diria que você deveria fazer uma análise de ROI bastante sólida antes de começar.

informação relacionada