Como usar a autenticação básica de serviços?

10

Como usar o módulo de autenticação básica de serviços ?

Quero adicionar http autenticação básica para o meu serviço. Eu o instalei e o habilitei na minha configuração de ponto final. Eu recebi este "autenticação básica HTTP Services_basic_auth não tem configurações disponíveis" na minha configuração de ponto final. onde está a página de configuração?

Rijalul fikri
fonte

Respostas:

11

O módulo autentica uma chamada de serviço da Web em contas drupal.

  1. Ativar o módulo
  2. Configurar um usuário drupal
  3. Faça a chamada de serviço da web com as credenciais do usuário.

Observe que, com a autenticação básica, a credencial pode ser interceptada se o SSL não for usado.

O módulo usa os cabeçalhos de autenticação PHP padrão e envia o formulário de login drupal padrão, sem verificar se há funções ou permissões específicas. Portanto, qualquer usuário drupal funcionará.

Faça uma chamada de serviço da Web de teste com curl ou wget para testá-la. Também há instruções sobre como ligar com PHP na chamada com resposta curl stackoverflow.

Interlated
fonte
Isso é completamente diferente de usar essa estrutura em uma única chamada de URL? myusername: [email protected]/callback
Citricguy
@ Citricguy não é diferente. Essa sintaxe é fornecida pelo esquema URI en.wikipedia.org/wiki/URI_scheme . Eu não faria dessa maneira. Alguns serviços REST podem ser testados em um navegador e eu ficaria preocupado que as credenciais entrassem no histórico do navegador. Com https, as credenciais são criptografadas. Também dependeria da biblioteca http, o php http pode estar OK, veja o comentário em php.net/manual/en/features.http-auth.php#44686 . Os navegadores da Microsoft não suportam mais a sintaxe, portanto, se você usar o javascript para fazer a chamada, ela poderá não funcionar. Algumas APIs usam esse método goo.gl/eS9mqv
Interlated
Desculpe, a maneira como você implementa a chamada não tem impacto nela. Portanto, testar com u: [email protected] se funcionar é bom. Estou dizendo que pode haver problemas implementando assim. Eu acho que cabeçalhos, não URL o mais cedo possível para otimizar os testes.
Interlated
4

O módulo acima é usado para autenticar chamadas de serviços usando a técnica de autenticação de acesso Básico . Você usará seu nome de usuário e senha do Drupal para autenticar chamadas de serviços adicionando cabeçalho de autorização à chamada de serviço da seguinte maneira

Quando o agente do usuário deseja enviar as credenciais de autenticação do servidor, ele pode usar o cabeçalho de Autorização.

O cabeçalho da autorização é construído da seguinte maneira:

Nome de usuário e senha são combinados em uma sequência "nome de usuário: senha"

O literal da string resultante é então codificado usando a variante RFC2045-MIME da Base64, exceto não limitado a 76 caracteres / linha. O método de autorização e um espaço, por exemplo, "Basic", são colocados antes da string codificada.

Por exemplo, se o agente do usuário usar 'Aladdin' como nome de usuário e 'abrir gergelim' como senha, o cabeçalho será formado da seguinte forma :.

Autorização: QWxhZGRpbjpvcGVuIHNlc2FtZQ básico ==

Por exemplo abaixo está a chamada usando curl ..

curl -H "Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" http://www.example.com/endpoint/yourservice
Anil Sagar
fonte
2
Sim, eu já li, mas ainda não sei como implementá-lo? o que fazer após a instalação do módulo? Qualquer ajuda seria ótimo. obrigado
Rijalul fikri
2
  1. Depois que o módulo estiver ativado, vá para Estrutura> Serviços
  2. Selecione seu nó de extremidade e clique em Editar insira a descrição da imagem aqui

  3. Use uma ferramenta como https://addons.mozilla.org/fr/firefox/addon/restclient/ para testar o seu cliente:

insira a descrição da imagem aqui

Nota: Estou tendo problemas com isso, mesmo que a opção autenticação básica HTTP tenha sido marcada ao chamar um recurso desse terminal retornando 200 em vez de 401 . Ou seja, o módulo falhou em proteger meu terminal.

O problema aparece em:

https://www.drupal.org/project/services_basic_auth
version: 7.x-1.4

Eu o resolvi fazendo um patch para o módulo:

https://www.drupal.org/node/2734207

Artur Kędzior
fonte
1

O que pode estar errado: Depois de definir todas as configurações:

  1. ativar módulo de autenticação de serviços básicos
  2. crie um ponto final da API de serviços, por exemplo: obtenha todos os nós por
  3. defina a caixa de seleção "autenticação básica HTTP" na página de edição
  4. criar um usuário

E notei que, se você não desabilitar a permissão "Visualizar conteúdo publicado", qualquer usuário poderá acessar o ponto de extremidade da API de serviço com resultado retornado.

user57293
fonte
0

Depois de instalar o Services Basic Authenticationmódulo, vá para as configurações REST do seu servidor:

/admin/structure/services

Digite a Editopção e, na parte inferior, há uma caixa de seleção:

HTTP basic authentication

Ative-o e pressione o botão Salvar.

Michal Przybylowicz
fonte
Qual usuário: senha eu usarei para autenticação básica HTTP?
precisa saber é o seguinte
-1

Não se esqueça de usar o módulo de acesso a conteúdo.

Adicionando detalhes adicionais por solicitação do MPD.

Se você não estiver usando o módulo de acesso a conteúdo, o usuário verá todo o conteúdo, inclusive criado por outras pessoas, que eles não deveriam ver. Por exemplo, o usuário A armazenou dados pessoais que o usuário B não deve ver ou vice-versa. O módulo de autenticação básica de serviços habilita a autenticação, mas não impõe o acesso ao conteúdo. O módulo de acesso a conteúdo impõe isso. Se você não estiver usando o controle de acesso ao conteúdo, não há sentido em autenticar um usuário.

techwestcoastsfosea
fonte
Você pode expandir como este módulo pode resolver as necessidades do usuário?
mpdonadio
Por favor, veja minha atualização na resposta original.
Techwestcoastsfosea