Pergunta

A minha equipe e a mim, estão atualmente trabalhando em um grande projeto.Estamos trabalhando em um jogo online, que estará acessível (para o momento), de duas maneiras:-Através de um navegador web, uma aplicação completa JavaScript(client-side), completa Ajax (basicamente, o que significa que a INTERFACE de usuário será gerenciado javascript do lado do cliente).-Através de um aplicativo para iPhone (a INTERFACE de usuário será gerenciado pelo próprio aplicativo).

Entre as duas aplicações diferentes, o núcleo da lógica permanece a mesma, então eu acredito (posso estar errado), que a melhor solução seria a criação de um serviço web (se possível, utilizando padrões como de descanso ou Repouso), capaz de perming todas as operações necessárias.

Seguindo esta lógica, eu encontrei um problema:a autenticação e gerenciamento de identidade do usuário.Isto coloca um problema, como as aplicações que os usuários precisam estar autenticado para pré-determinadas operações.

Eu olhei para a especificação WS-security, mas isso, obviamente, requer que as senhas sejam armazenadas, sem criptografia no servidor, o que não é aceitável!Então eu olhei para o Oauth, mas, à primeira vista, parecia um monte de trabalho para configurar e não é particularmente adequado para as minhas necessidades de forma que as aplicações têm de ser aceites não me agrada, pois vai ser a minha candidatura e a minha aplicação usando apenas o serviço da web, não qualquer aplicação externa).Tenho lido e ouvido falar sobre um monte de outras maneiras de fazer o que eu quiser, mas para ser honesto, eu estou um pouco confuso e eu não sei o que a informação é confiável e o que não é.

Gostaria de salientar que estou usando o symfony2 para o back-end e jquery para o lado do cliente JavaScript.Além disso, eu gostaria de um detalhadas, passo-a-passo de resposta, porque eu realmente estou confusa com tudo o que tenho lido e ouvido.

Obrigado pelo seu tempo e espero que alguém possa me ajudar, como é bastante urgente.

Boa noite

Foi útil?

Solução

Eu não sou inteiramente certo se isso responde a sua solicitação, mas desde que a INTERFACE do usuário irá sempre ser tratadas no lado do cliente, eu acho que você poderia usar sem monitoração de estado autenticação de HTTP:

Este é o firewall em security.yml:

security:
    firewalls:
        api:
            pattern: ^/api/ # or whatever path you want
            http_basic: ~
            stateless: true

E, em seguida, a ideia, basicamente, é que no servidor, você pode usar o seu usuário normal fornecedores, encoders e outros enfeites para alcançar o máximo de segurança, e no cliente, você pode enviar o HTTP cabeçalhos de autenticação, por exemplo, jQuery:

$.ajax("...", {
    username: "Foo",
    password: "bar"
});

Por favor, note que uma vez que a autenticação é stateless (sem cookie é criado sempre), os cabeçalhos devem ser enviadas com cada solicitação, mas, eu acho, uma vez que a aplicação é quase que inteiramente do lado do cliente, este não é um problema.

Você também pode verificar o Symfony2 de segurança manual para obter mais informações sobre como configurar a autenticação HTTP.Também certifique-se de forçar o acesso no ACL, para as solicitações que contém as credenciais são protegidas (requires_channel: https em suas definições de ACL).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top