Configurar autenticação JWT no Drupal
O processo de Autenticação de API do Drupal O módulo utiliza JSON Web Tokens (JWT) para autenticar solicitações de API com segurança. Primeiro, seu nome de usuário e senha do Drupal são verificados para gerar um token JWT assinado, que é então retornado ao cliente. Esse token pode ser usado para acessar as APIs do Drupal até expirar. O JWT suporta algoritmos HSA e RSA para assinatura e validação. Este módulo é totalmente compatível com Drupal 8, Drupal 9, Drupal 10 e Drupal 11.
- Usando o Composer
- Usando Drush
- Instalação manual
Pré-requisitos:
- Interface de usuário REST: Este módulo fornece uma interface amigável para configurar o módulo REST.
- Habilite os seguintes módulos de serviços da Web a partir do Estender seção (/admin/modules) do seu site Drupal:
- JSON: API
- Interface de usuário REST
- Serviços da Web RESTful
- Serialização
Habilitar API e atribuir métodos:
- O primeiro passo é habilitar a API e atribuir os métodos e operações permitidos para ela. Isso pode ser feito usando o Interface de usuário REST módulo ou modificando diretamente a configuração do Drupal.
- Clique no Ativar API botão.
- Para habilitar a API usando o módulo REST UI, clique em configurar botão (como mostrado abaixo).
- No nosso exemplo, precisamos habilitar o /entidade/usuário API. Para fazer isso, clique na opção Habilitar ao lado dela.
- Como nosso objetivo é criar um usuário no Drupal, selecione as seguintes configurações:
- Método: POST
- Formato: JSON
- Provedor de autenticação: rest_api_autenticação
- Isso permite que o módulo de autenticação da API miniOrange autentique a API. Clique no botão Salvar configuração botão para continuar.
Etapas de configuração
1. Configure o método de autenticação JWT:
- Nesta etapa, configuraremos o JWT como método de autenticação da API. Para isso, acesse o Autenticação API guia do módulo (/admin/config/people/rest_api_authentication/auth_settings).
- Debaixo Configuração básica, habilite o Ativar autenticação alternancia.
- Introduzir o Nome da Aplicação e selecione JWT do Método de autenticação seção.
- Desloque-se até o Configuração JWT seção na mesma aba.
- No campo Atributo de nome de usuário, insira o nome do atributo do JWT recebido que contém o nome de usuário do Drupal.
- Selecionar Algoritmo de assinatura da lista suspensa.
- Opcional: Insira a duração de expiração desejada (em minutos) em Tempo de expiração do token.
- URI JWKS: Se você quiser usar um token JWT externo, forneça o URI do JWKS para validá-lo no Drupal.
- Certificado/Chave Secreta: Forneça um certificado se RS256 for selecionado, ou uma chave secreta se HS256 for selecionado.
- Chave privada: Insira a chave privada para o JWT ou gere uma nova chave.
- Chave pública: Insira a chave pública para o JWT ou gere uma nova chave.
- Clique na Salvar configuração botão.
- Você configurou com sucesso o método de autenticação JWT.
- Primeiro, precisamos fazer uma chamada à API para obter um JWT. Em seguida, usaremos esse token para autenticar a API do Drupal e criar um usuário.
- Podemos obter o JWT fazendo uma solicitação POST contendo o nome de usuário e a senha do Drupal. Você deve enviar o nome de usuário e a senha no formato codificado em base64. Você pode consultar o formato de solicitação abaixo para referência.
Para JWT externo:
Gerar chaves personalizadas:
Observação: Você pode inserir as chaves manualmente ou gerá-las. Essas chaves serão usadas para assinar e verificar os tokens JWT.
Observação: Use o cabeçalho exclusivo específico do aplicativo ao autenticar a API.
Solicitação: POST /rest_api/id_token Cabeçalho: Aceitar: application/json Autorização: Base64 codificado básico Formato de solicitação CURL - curl --location --request POST ' /rest_api/id_token' \ --header 'Aceitar: application/json' \ --header 'Tipo de conteúdo: application/json' \ --header 'Autorização: codificado em base64 básico '
- Uma resposta bem-sucedida retorna o JWT junto com a expiração do token. (consulte a imagem abaixo)
2. Exemplo:
- Para melhor compreensão, vamos ver um exemplo de uso do JWT Token para criar um usuário no Drupal com a API REST.
- Para criar um usuário no Drupal, você precisa fazer uma solicitação POST usando o JWT recebido ou o JWT externo como um token de portador no cabeçalho de autorização. Consulte o exemplo abaixo para fazer a chamada.
Observação: A API /entity/user no Drupal é usada para criar um novo usuário.
Formato de solicitação HTML - Solicitação: POST /entity/user?_format=json Cabeçalho: MÉTODO DE AUTENTICAÇÃO: application_id Aceitar: application/json Tipo de conteúdo: application/json Autorização: Portador received_JWT Corpo: { "nome": { "valor": " " }, "mail": { "valor": " " }, "pass": { "valor": " " }, "status": { "value": "1" } } Formato de solicitação CURL - curl --location --request POST ' /entity/user?_format=json' \ --header 'AUTH-METHOD: application_id' \ --header 'Aceitar: application/json' \ --header 'Tipo de conteúdo: application/json' \ --header 'Autorização: Autorização: Portador ' \ --data-raw ' { "nome": [ { "valor": "Nome de usuário" } ], "e-mail": [ { "valor": "e-mail" } ], "senha": [ { "valor": "Senha" } ], "status": [ { "valor": "1" } ] }
- Uma resposta bem-sucedida retornará os detalhes do usuário que você criou (veja a imagem abaixo).
Parabéns! Você configurou com sucesso o método de autenticação JWT usando o módulo de autenticação da API do Drupal.
Caso a configuração não tenha sido bem-sucedida, entre em contato conosco em drupalsupport@xecurify.com. Inclua uma captura de tela da janela de erro e nós o ajudaremos a resolver o problema e o guiaremos pela configuração.
Obrigado pela sua resposta. Entraremos em contato em breve.
Algo deu errado. Envie sua consulta novamente.
