¿Cómo utilizar los servicios de autenticación básica?


10

¿Cómo utilizar el módulo de autenticación básica de servicios ?

Quiero agregar autenticación básica http para mi servicio. Lo instalé y lo habilité en mi configuración de punto final. Obtuve esta "autenticación básica HTTP Services_basic_auth no tiene configuraciones disponibles" en mi configuración de punto final. ¿Dónde está la página de configuración?

Respuestas:


11

El módulo autentica una llamada de servicio web contra cuentas de drupal.

  1. Habilitar el módulo
  2. Configurar un usuario de drupal
  3. Realice la llamada al servicio web con las credenciales del usuario.

Tenga en cuenta que con la autenticación básica, la credencial se puede interceptar si no se utiliza SSL.

El módulo utiliza los encabezados de autenticación PHP estándar y envía el formulario de inicio de sesión drupal estándar, sin verificar roles o permisos específicos. Entonces, cualquier usuario de drupal funcionará.

Realice una llamada de servicio web de prueba con curl o wget para probarlo. También hay instrucciones sobre cómo llamar con PHP en la llamada con curl stackoverflow answer.


¿Es esto completamente diferente de usar esta estructura en una sola llamada URL? myusername: mypassword@example.com/callback
Citricguy

@Citricguy no es diferente. Esta sintaxis es proporcionada por el esquema URI en.wikipedia.org/wiki/URI_scheme . No lo haría de esa manera. Algunos servicios REST se pueden probar en un navegador y me preocuparía que las credenciales entraran en el historial del navegador. Con https las credenciales están encriptadas. También dependería de la biblioteca http, php http podría estar bien. Vea el comentario en php.net/manual/en/features.http-auth.php#44686 . Los navegadores de Microsoft ya no admiten la sintaxis, por lo que si usa JavaScript para realizar la llamada, es posible que no funcione. Algunas API utilizan este método goo.gl/eS9mqv
Interlated

Lo sentimos, la forma en que implementa la llamada no tiene impacto en la llamada. Por lo tanto, probar con u: p@host.com si funciona está bien. Estoy diciendo que puede haber problemas implementando así. Creo que los encabezados, no la URL, lo antes posible para simplificar las pruebas.
Interlated

4

El módulo anterior se usa para autenticar llamadas de servicios utilizando la técnica de autenticación de acceso básico . Utilizará su nombre de usuario y contraseña de Drupal para autenticar llamadas de servicios agregando el encabezado de autorización a la llamada de servicio de la siguiente manera

Cuando el agente de usuario desea enviar las credenciales de autenticación del servidor, puede usar el encabezado de autorización.

El encabezado de autorización se construye de la siguiente manera:

El nombre de usuario y la contraseña se combinan en una cadena "nombre de usuario: contraseña"

El literal de cadena resultante se codifica utilizando la variante RFC2045-MIME de Base64, excepto que no se limita a 76 char / line. El método de autorización y un espacio, es decir, "Básico", se colocan antes de la cadena codificada.

Por ejemplo, si el agente de usuario usa 'Aladdin' como nombre de usuario y 'abrir sésamo' como contraseña, el encabezado se forma de la siguiente manera:

Autorización: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ ==

Por ejemplo a continuación es la llamada usando curl ..

curl -H "Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" http://www.example.com/endpoint/yourservice

2
Sí, ya lo he leído, pero ¿todavía no sé cómo implementarlo? ¿Qué hacer después de instalar el módulo ?. Cualquier ayuda sería genial. gracias
Rijalul fikri

2
  1. Una vez que el módulo esté habilitado, vaya a Estructura> Servicios
  2. Seleccione su punto final y haga clic en Editar ingrese la descripción de la imagen aquí

  3. Use una herramienta como https://addons.mozilla.org/fr/firefox/addon/restclient/ para probar su cliente:

ingrese la descripción de la imagen aquí

Nota: He tenido problemas con él, ya que aunque la opción Autenticación básica HTTP se marcó llamando a un recurso de este punto final, devolvió 200 en lugar de 401 . Es decir, el módulo no pudo asegurar mi punto final.

El problema aparece en:

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

Lo resolví haciendo un parche para el módulo:

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


1

¿Qué puede estar mal? Después de establecer todas las configuraciones:

  1. habilitar el módulo de autenticación básica de servicios
  2. crear servicios punto final de la API, por ejemplo: obtener todos los nodos por
  3. establezca la casilla de verificación "Autenticación básica HTTP" en la página de edición
  4. crear un usuario

Y notó que si no deshabilita el permiso "Ver contenido publicado", cualquier usuario puede tener acceso al punto final de la API de servicio con el resultado devuelto.


0

Después de instalar el Services Basic Authenticationmódulo, vaya a la configuración REST de su servidor:

/admin/structure/services

Ingrese la Editopción y en la parte inferior hay una casilla de verificación:

HTTP basic authentication

Habilítelo y presione el botón Guardar.


¿Qué usuario: contraseña utilizaré para la autenticación básica HTTP?
AshwinP

-1

No olvides usar el módulo de acceso al contenido.

Agregar detalles adicionales por solicitud de MPD.

Si no está utilizando el módulo de acceso al contenido, el usuario verá todo el contenido, incluido el creado por otros, que no debía ver. Por ejemplo, el usuario A ha almacenado datos personales que el usuario B no debería ver o viceversa. El módulo de autenticación básica de servicios habilita la autenticación pero no impone el acceso al contenido. El módulo de acceso al contenido hace cumplir eso. Si no está utilizando el control de acceso al contenido, entonces no tiene sentido autenticar a un usuario.


¿Puede ampliar cómo este módulo puede resolver las necesidades del usuario?
mpdonadio

Por favor vea mi actualización en la respuesta original.
techwestcoastsfosea 01 de
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.