Configurar la autenticación mediante token de acceso/OAuth en Drupal
Este método de autenticación de API de Drupal utiliza el protocolo OAuth 2.0 para generar un token de acceso seguro. Este token se utiliza para autenticar las solicitudes a las API de su sitio Drupal. Gracias a su cifrado robusto, el método OAuth garantiza que sus API permanezcan bien protegidas y a salvo de accesos no autorizados. Se considera uno de los métodos más seguros para salvaguardar los endpoints REST y JSON:API de Drupal. Este módulo es totalmente compatible con Drupal 8, 9, 10 y 11.
- Usando el compositor
- Usando Drush
- Instalación manual
Pre-requisitos:
- Interfaz de usuario REST:Este módulo proporciona una interfaz fácil de usar para configurar el módulo REST.
- Habilite los siguientes módulos de Servicios Web desde el ampliar sección (/admin/modules) de su sitio Drupal:
- JSON: API
- Interfaz de usuario REST
- Servicios web RESTful
- Publicación por entregas
Habilitar API y asignar métodos:
- El primer paso es habilitar la API y asignar los métodos y operaciones permitidos para ella. Esto se puede hacer usando Interfaz de usuario REST módulo, o modificando directamente la configuración de Drupal.
- Haga clic en el elemento Habilitar API .
- Para habilitar la API mediante el módulo REST UI, haga clic en el icono Configurar botón (como se muestra a continuación).
- En nuestro ejemplo, necesitamos habilitar el /entidad/usuario API. Para ello, haga clic en la opción Habilitar que aparece frente a ella.
- Como nuestro objetivo es crear un usuario en Drupal, seleccione las siguientes configuraciones:
- Método: PUBLICAR
- Formato: JSON
- Proveedor de autenticación: autenticación de rest_api
- Esto permite que el módulo de autenticación de la API de miniOrange autentique la API. Haga clic en el botón Guardar configuración botón para continuar.
Pasos de configuración
1. Configurar el método de autenticación de token de acceso/OAuth:
- En este paso, configuraremos OAuth/Access Token como método de autenticación de la API. Para ello, vaya a Autenticación API pestaña del módulo (/admin/config/people/rest_api_authentication/auth_settings).
- En Configuración básica, habilita el Habilitar autenticación palanca.
- Escriba el Nombre de la aplicación y seleccione Token de acceso/OAuth del menú método de autentificación .
- Desplácese hacia abajo hasta la sección Configuración de OAuth sección en la misma pestaña.
- Opcional: Ingrese la duración de vencimiento deseada (en minutos) en Tiempo de vencimiento del token.
- Utilice el token de acceso generado por:
- Autenticación de API de descanso: Haga clic en el botón Generar un nuevo ID de cliente y secreto Botón. (Mantenga a mano el ID de cliente y el secreto. Los necesitará más adelante para autenticar la API de creación de usuarios).
- Servidor OAuth: También puede obtener un token de acceso desde el Servidor OAuth módulo (después de realizar SSO) y usarlo para la autenticación.
- Haga clic en el botón Guardar configuración .
- Ha configurado exitosamente el método de autenticación OAuth/Access Token.
Nota: Utilice el encabezado único específico de la aplicación al autenticar la API.
Otorgar permisos de rol para crear usuarios
- Si es necesario, puede permitir que roles no administrativos de Drupal creen usuarios. Para ello, asigne el permiso "Administrar usuarios" a los roles deseados desde la página "Permisos" (/admin/people/permissions) de su sitio Drupal.
2. Obtener token del módulo API REST:
- Realiza una llamada a la API para obtener un token de acceso. Luego, lo usarás para autenticar la API de Drupal y crear un usuario.
- El módulo de autenticación de API de miniOrange admite dos tipos de concesión para obtener un token de acceso:
- En la concesión de contraseña, podemos obtener el token de acceso realizando una solicitud POST que contenga el nombre de usuario y la contraseña de Drupal del usuario junto con el ID de cliente emitido por el módulo de autenticación de la API REST.
Concesión de contraseña:
Formato de solicitud HTML - Solicitud: POST /rest_api/access_token Cuerpo: grant_type = contraseña nombre_de_usuario = contraseña = id_del_cliente = Solicitud en formato CURL: curl --location --request POST ' /rest_api/access_token' \ --header 'Aceptar: aplicación/json' \ --header 'Tipo de contenido: aplicación/x-www-form-urlencoded' \ --data-urlencode 'grant_type=contraseña' \ --data-urlencode 'client_id= ' \ --data-urlencode 'nombre de usuario= \ --data-urlencode 'contraseña= '
- También puedes consultar la imagen de solicitud de Cartero a continuación.
Otorgamiento de credenciales de cliente:
- En la concesión de Credenciales de Cliente, podemos obtener el token de acceso realizando una solicitud POST que contenga el ID de Cliente y el Secreto de Cliente emitidos por el módulo de Autenticación de API junto con el nombre de usuario de Drupal del usuario.
Formato de solicitud HTML - Solicitud: POST /rest_api/access_token Cuerpo: tipo_de_concesión = credenciales_del_cliente id_del_cliente = secreto_del_cliente = Nombre de usuario = Formato de solicitud CURL: curl --location --request POST '/rest_api/access_token' \ --header 'Aceptar: aplicación/json' \ --header 'Tipo de contenido: aplicación/x-www-form-urlencoded' \ --data-urlencode 'tipo_de_concesión=credenciales_de_cliente' \ --data-urlencode 'id_de_cliente= ' \ --data-urlencode 'nombre de usuario= >' \ --data-urlencode 'secreto_del_cliente= '
- Una respuesta exitosa devuelve el token de acceso junto con la caducidad del token y el tipo de token (consulte la imagen a continuación)
3. Ejemplo:
- Ahora, creemos un usuario con una llamada API usando OAuth/Access Token para la autenticación.
- Para una mejor comprensión, tomemos un ejemplo de cómo agregar autenticación basada en token de acceso/OAuth a la API de creación de usuarios en Drupal.
- Usando el token de acceso recibido para autorizar las API REST de Drupal:
- Para autenticarse con un token de acceso, agregue el token como token de portador en el encabezado de Autorización de su solicitud.
- Solicitud de muestra para crear un usuario mediante autenticación basada en token:
Nota: La API /entity/user en Drupal se utiliza para crear un nuevo usuario.
Nota: Se puede utilizar cualquier token de acceso, ya sea generado por el módulo de autenticación de la API o por el módulo del servidor OAuth.
Formato de solicitud HTML - Solicitud: POST /entity/user?_format=json Encabezado: AUTH-METHOD: application_id Aceptar: application/json Tipo de contenido: application/json Autorización: Portador Cuerpo: { "nombre": { "valor": " " }, "mail": { "valor": " " }, "pass": { "valor": " " }, "estado": { "valor": "1" } } Formato de solicitud CURL: curl --location --request POST ' /entity/user?_format=json' \ --header 'MÉTODO DE AUTORIZACIÓN: application_id' \ --header 'Aceptar: application/json' \ --header 'Tipo de contenido: application/json' \ --header 'Autorización: Portador ' \ --data-raw ' { "nombre": [ { "valor": "Nombre de usuario" } ], "correo": [ { "valor": "correo electrónico" } ], "contraseña": [ { "valor": "Contraseña" } ], "estado": [ { "valor": "1" } ] }
- Una respuesta exitosa devolverá los detalles del usuario que usted creó (ver la imagen a continuación).
¡Felicitaciones! Has configurado correctamente el método de autenticación OAuth/Access Token mediante el módulo de autenticación de la API de Drupal.
Si la configuración no se realizó correctamente, póngase en contacto con nosotros en drupalsupport@xecurify.com . Por favor, incluya una captura de pantalla de la ventana de error y le ayudaremos a resolver el problema y le guiaremos durante la configuración.
Gracias por su respuesta. Nos pondremos en contacto con usted pronto.
Algo salió mal. Por favor envíe su consulta nuevamente
