Pergunta

Estou desenvolvendo cliente personalizado / aplicação de servidor que requer o cliente para efetuar login com seu nome de utilizador e palavra-passe. As contas de usuário não estão relacionados com contas Windows / AD de qualquer forma. Após o login, a aplicação cliente irá solicitar outros serviços do sistema do servidor.

A minha pergunta é qual é a melhor maneira de implementar isso? Que tipo de arquitetura se encaixaria melhor aqui? Eu acho que algum tipo de sistema de autenticação bilhete / símbolo precisa ser implementado ???

Graças

Foi útil?

Solução

Você pode, na verdade quer implementar um sistema que passa "bilhetes" ao longo entre as diferentes partes (servidor de início de sessão, cliente, servidor APP). Este bilhete irá conter informações básicas, como o ID do usuário (o nome de usuário, a ID de linha, etc). Este bilhete ou será criptografado com uma chave secreta que os servidores autorizados compartilhar, ou será carimbado com um hash do conteúdo do bilhete salgados com uma chave secreta que a quota de servidores. A primeira maneira torna possível apenas para os servidores autorizados para criar e ler o bilhete, e a segunda forma torna possível para os servidores autorizados a verificar que apenas os servidores autorizados poderia ter criado o bilhete, mas permite que qualquer pessoa a ler o bilhete. Todos os servidores de aplicativos irá verificar o bilhete (por tentar decifrá-lo ou verificando se os jogos de hash) antes de prosseguir com as ações que devem ser protegidos. Se este é um aplicativo web, em seguida, os cookies são um bom lugar para armazenar o bilhete.

Outras dicas

Você não disse muito sobre a sua arquitetura, diferente do que é cliente / servidor, então eu estou supondo que você está usando algum tipo de designer de formulários como Windows Forms em VS. Nestes casos eu sempre usaram alguma forma de autenticação de dados tabela, pois é fácil, simples de configurar, e razoavelmente seguro. Você pode até mesmo criar grupos e funções desta forma, sem muito barulho.

Table:  Users
Fields: UserID   PK
        Login    Text
        Password Text
        ...

Table:  Roles
Fields: RoleID   PK
        Role     Text
        ...

Table:  UserRoles
Fields: UserID    FK
        RoleID    FK
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top