Procurar Resultados :

×

Registrar Contato

Autenticação da API REST do Drupal


Neste documento, mostraremos os passos para configurar e usar cada um dos métodos de autenticação que oferecemos no módulo de Autenticação da API REST do miniOrange. Este módulo é compatível tanto com a API REST quanto com a API JSON.

Você pode consultar nosso guia de configuração detalhado para todos os métodos de autenticação por meio do seguinte link: Guia de autenticação de API.

Se você tiver outras APIs personalizadas que gostaria que nosso módulo suportasse ou se precisar de qualquer tipo de assistência, entre em contato conosco pelo endereço drupalsupport@xecurify.com. Clique aqui para ver a lista completa de recursos.

1. Autenticação Básica

  • A autenticação básica é um mecanismo de autenticação simples em que o cliente pode usar suas credenciais para proteger as APIs do Drupal. Para usar qualquer API com esse método de autenticação, você precisa enviar uma solicitação com seu nome de usuário e senha codificados em base64 no cabeçalho de autorização.
  • Para selecionar este método, clique em Autenticação básica do módulo conforme mostrado abaixo:
  • Autenticação da API do Drupal selecione o método de autenticação básico
  • Para obter informações do nó no Drupal, você precisa fazer uma solicitação GET juntamente com o nome de usuário e a senha do Drupal. O valor do nome de usuário e da senha deve estar no formato codificado em base64. Você pode consultar o formato abaixo para fazer uma chamada.
  • 
                 Request: GET <your_drupal_base_url>/node/{node}?_format=json
                 Header: 
                        Authorization: Basic base64encoded <username:api_key>
                        Accept: application/json 
                        Content-Type: application/json
                 
                 Sample curl Request Format-
                 --location --request GET '<your_drupal_base_url>/node/1?_format=json' \
                 --header 'Accept: application/json' \
                 --header 'Content-Type: application/json' \
                 --header 'Authorization: Basic base64encoded <username:API key’> \
                
  • Sua solicitação deve ter os parâmetros de cabeçalho e corpo da seguinte maneira, respectivamente:
  • Resposta de envio de autenticação da API do Drupal
  • Uma resposta bem-sucedida seria assim:
  • Resposta de autenticação da API do Drupal

    2. Autenticação de chave de API

    • A autenticação de chave de API é um dos métodos mais simples para proteger APIs REST do Drupal. Depois de gerar chaves de API para todos os seus usuários, você pode usá-las para proteger o acesso às suas APIs REST do Drupal.
    • Para configurar a chave de API como um método de autenticação de API, navegue até Autenticação API guia do Módulo de Autenticação da API REST (/admin/config/people/rest_api_authentication/auth_settings).
    • Selecione os Caixa de seleção Habilitar autenticação e clique no Salvar configurações acima botão.
    • Para habilitar a autenticação baseada em chave de API, selecione o botão de opção Chave de API.
    • Na mesma tela, você pode gerar a chave de API para um usuário específico ou gerar a chave de API para todos os usuários de uma só vez.
    • Autenticação SelectAPI do Drupal
    • Você teria que criar um atributo de usuário para a chave de API do campo. Você pode consultar esse link para criar uma chave de API de campo.
    • Para elaborar mais, vamos dar um exemplo de criação de um usuário no Drupal
    • Para criar um usuário no Drupal, é necessário fazer uma solicitação POST com o nome de usuário e uma chave de API fornecida pelo Módulo de Autenticação da API REST do miniOrange. O nome de usuário e a chave de API devem ser codificados em base64. Use o seguinte formato como referência para fazer a chamada:
    • 
                   Request: POST <your_drupal_base_url>/entity/user?_format=json
                   Header: 
                          Authorization: Basic base64encoded <username:api_key>
                          Accept: application/json 
                          Content-Type: application/json
                   Body:
                   
                      {
                       "name": [
                               {"value": "username"}
                         ],
                       "mail": [
                               {"value": "email"}
                         ],
                       "pass": [
                               {"value": "password"}
                         ],
                      "status":[
                               {"value": "1"}
                         ]
                     }
       
                   Sample curl Request Format-
                   --location --request POST '<your_drupal_base_url>/entity/user?_format=json' \
                   --header 'Accept: application/json' \
                   --header 'Content-Type: application/json' \
                   --header 'Authorization: Basic base64encoded’ \
                   --data-raw   '   
                     {
                       "name": [
                           {"value": "Username"}
                         ],
                       "mail": [
                           {"value": "email"}
                         ],
                       "pass":[
                           {"value": "Password"}
                         ],
                       "status":[
                           {"value": "1"
                     }
                       ]
                      
               
                  
    • Sua solicitação deve ter os parâmetros de cabeçalho e corpo da seguinte maneira, respectivamente:
    • API REST do Drupal envia resposta
    • Uma resposta bem-sucedida seria assim:
    • Resposta de autenticação da API REST do Drupal

    3. Autenticação JWT

    • O JSON Web Token (JWT) é uma maneira segura de representar a identidade de um usuário durante uma interação entre duas partes. Inicialmente, as credenciais do seu site Drupal são usadas para obter um token JWT. Após verificar o nome de usuário e a senha, o módulo de Autenticação da API REST do Drupal cria um token JWT assinado, que é enviado de volta ao aplicativo cliente para solicitações de API subsequentes.
    • Este token é usado para executar as operações no Drupal até expirar. O módulo de Autenticação da API REST do Drupal concederá acesso somente quando receber um JWT válido do aplicativo.
    • Para configurar o JWT como um método de autenticação de API, navegue até Autenticação API guia do Módulo de Autenticação da API REST (/admin/config/people/rest_api_authentication/auth_settings).
    • Selecione os Caixa de seleção Habilitar autenticação e clique no Salvar configurações acima botão.
    • Abaixo do botão "Salvar acima das configurações", selecione o botão de opção JWT. Informe o nome do atributo no qual seu nome de usuário será recebido no campo de texto "Atributo de nome de usuário".
    • Finalmente, clique no Salvar configuração do JWT botão.
    • Para usar um token JWT criado externamente para autenticação, você pode configurar as seguintes opções:
  • Digite o nome do atributo no qual seu nome de usuário será recebido no campo de texto "Atributo de nome de usuário".
  • Se quiser usar um token JWT externo, você também pode especificar a URL do JWKS para validar esse token no Drupal.
    Método de seleção de token jwt do Drupal
  • Vamos considerar o seguinte exemplo: precisamos iniciar uma solicitação de API para obter um JWT. Posteriormente, usaremos o token para autenticar a API do Drupal e criar uma página básica.
  • Para adquirir o JWT, precisamos enviar uma consulta POST contendo as credenciais do Drupal do usuário. O nome de usuário e a senha devem ser enviados em formato base64. Para sua conveniência, consulte o formato da solicitação abaixo.
  • 
                     Request: POST <your_drupal_base_url>/rest_api/id_token
                     Header: 
                            Authorization: Basic base64encoded <username:password;>
                            Accept: application/json
                     Sample curl Request Format-
                     --location --request POST "<your_drupal_base_url>/rest_api/id_token' \"
                     --header 'Accept: application/json'\
                     --header 'Content-Type: application/json' \
                     --header 'Authorization: Basic base64encoded’ \'
                 
  • Além disso, você pode consultar a imagem da solicitação do Postman para obter o JWT do Drupal.
  • Ponto final do token JWT da API REST do Drupal
  • Uma resposta bem-sucedida retorna o JWT junto com a expiração do token. (consulte a imagem abaixo)
  • ID da API REST do Drupal JWT token bem-sucedido
  • Para autenticar as APIs REST do Drupal usando o JWT recebido, você pode consultar o seguinte guia - Autenticar APIs REST do Drupal.

4. Autenticação OAuth 2.0

  • Para autenticar o acesso às APIs do site Drupal por meio da API REST, o método OAuth 2.0 utiliza o fluxo do protocolo OAuth 2.0. Isso envolve a obtenção de um token de acesso de segurança, que é então usado para autenticar o acesso ao seu site Drupal. O Método de Autenticação OAuth fornece um token de acesso altamente criptografado e seguro, garantindo total segurança para suas APIs Drupal. É considerado um dos métodos mais seguros para proteger seus endpoints de API REST ou JSONAPI do Drupal contra acesso não autorizado.
  • Navegue até a Autenticação API guia do Módulo de Autenticação da API REST (/admin/config/people/rest_api_authentication/auth_settings)
  • Selecione os Caixa de seleção Habilitar autenticação e clique no Salvar configurações acima botão.
  • Abaixo do botão Salvar acima das configurações, selecione o botão de opção OAuth/Token de acesso.
  • Agora clique no botão Gerar um novo ID de cliente e segredo.
  • Método de token de acesso de seleção do Drupal
  • O módulo de autenticação da API miniOrange suporta dois tipos de concessão que podem ser utilizados para obter um token de acesso:
  • Concessão de senha: Neste tipo de concessão, você pode obter o token de acesso enviando uma solicitação POST contendo o nome de usuário e a senha do Drupal do usuário, juntamente com o ID do cliente emitido pelo módulo de autenticação da API REST:
  • 
             Request: POST <drupal_base_url>/rest_api/access_token
             Body: 
                 grant_type = password
                 username   = drupal_username
                 password   = drupal_password 
                 client_id  = client_id
                 
             Sample curl Request Format-
             --location --request POST '<your_drupal_base_url>/rest_api/access_token' \
             --header 'Accept: application/json'\
             --header 'Content-Type: pplication/x-www-form-urlencoded' \
             --data-urlencode 'grant_type=password' \
             --data-urlencode 'client_id= ' \
             --data-urlencode 'username='\
             --data-urlencode 'password='
         
  • Você também pode consultar a imagem da solicitação do Postman para obter um token de acesso do Drupal usando a concessão de senha.
  • Solicitação de autenticação de token de acesso Drupal
  • Uma resposta bem-sucedida retorna o Token de Acesso junto com a expiração do token e o tipo de token (consulte a imagem abaixo)
  • Solicitação de autenticação de token de acesso Drupal
  • Concessão de credenciais do cliente: Nesta concessão, você pode adquirir o token de acesso fazendo uma solicitação POST contendo o ID do cliente e o segredo do cliente emitidos pelo módulo de autenticação da API REST, juntamente com o nome de usuário do Drupal.
  • 
         Request: POST <drupal_base_url>/rest_api/access_token
         Body: 
             grant_type  = client_credentials
             client_id   = client_id
            client_secret = client_secret
            Username      = drupal_username
             
         Sample curl Request Format-
         --location --request POST '<your_drupal_base_url>/rest_api/access_token' \
         --header  'Accept: application/json'\
         --header 'Content-Type: pplication/x-www-form-urlencoded' \
         --data-urlencode 'grant_type=client_credentials' \
         --data-urlencode 'client_id= <Client_ID>'\
         --data-urlencode 'username=<drupal_username>' \
         --data-urlencode 'client_secret=<Client_secret>'
     
  • Você também pode consultar a imagem da solicitação do Postman para obter um token de acesso do Drupal usando a concessão de credenciais do cliente.
  • Solicitação de autenticação de token de acesso Drupal
  • Uma resposta bem-sucedida retorna o Token de Acesso junto com a expiração do token e o tipo de token (consulte a imagem abaixo)
  • Solicitação de autenticação de token de acesso Drupal
  • Para fazer uma chamada à API e obter um token de acesso, usaremos isso para autenticar a API do Drupal e obter as informações de um usuário. esse link.

5. Autenticação de Provedores Terceirizados

  • Para implementar esse método, você precisará obter tokens de provedores terceirizados, como Google, Azure AD, etc. Esses tokens permitem que você acesse as APIs REST do Drupal com segurança.
  • Para usar a Autenticação do Provedor de Identidade Externo, você precisará configurar o módulo especificando o Endpoint de Informações do Usuário fornecido pelo seu Provedor de Identidade, bem como o atributo de nome de usuário associado ao seu Provedor de Identidade. Após a configuração, você poderá autenticar todas as Solicitações da API do Drupal usando o token fornecido pelo seu provedor.
  • Navegue até a Autenticação API guia do Módulo de Autenticação da API REST (/admin/config/people/rest_api_authentication/auth_settings)
  • Marque a Caixa de seleção Habilitar autenticação e acerte Salvar configurações acima botão.
  • Abaixo do botão Salvar acima das configurações, selecione o botão de opção Provedor de identidade externo.
  • Na caixa de texto "Ponto de Extremidade de Informações do Usuário", insira o ponto de extremidade de informações do usuário para o seu Provedor de Identidade. Isso permitirá que o módulo recupere as informações do usuário usando o token fornecido.
  • No campo Atributo de nome de usuário, insira a chave/nome do atributo do seu Provedor de Identidade que o provedor externo está utilizando para enviar o nome de usuário.
  • Drupal seleciona método de autenticação de terceiros
  • Para criar um usuário no Drupal, uma solicitação POST deve ser feita junto com o Token recebido do provedor de identidade.
  • 
             Request: POST <your_drupal_base_url>/entity/user?_format=json
             Header: 
                     Token: <Token_receievd_from_external_identity_provider>
                     Accept: application/jsonContent-Type: application/json
             Body:
             
                {
                  "name": [
                             {"value": "username"}
                     ],
                  "mail": [
                             {"value": "email"}
                     ],
                  "pass": [
                             {"value": "password"}
                     ],
                 "status": [
                             {"value": "1"}
                     ]
                }
          
             Sample curl Request Format-
             --location --request POST '<your_drupal_base_url>/entity/user?_format=json' \
             --header 'Accept: application/json' \
             --header 'Content-Type: application/json' \
             --header 'Token: ' \
             --data-raw   '   
              {
                 "name": [
                     {"value": "Username"}
                 ],
                 "mail": [
                     {"value": "email"}
                 ],
                 "pass": [
                     {"value": "Password"}
                 ],
                 "status": [
                     {"value": "1"}
                 ]
              }
     
             
  • Você pode consultar a imagem da solicitação do Postman adicionada abaixo:
  • Solicitação de autenticação de terceiros do Drupal
  • Uma resposta bem-sucedida retorna as informações do usuário criadas -
  • Resposta de autenticação de terceiros do Drupal

Suporte ativo 24 horas por dia, 7 dias por semana

Caso encontre algum problema ou tenha alguma dúvida, entre em contato conosco pelo endereço drupalsupport@xecurify.com . Se desejar que recursos adicionais sejam incluídos no módulo, entre em contato conosco e podemos personalizá-los para você. Além disso, se preferir, podemos agendar uma reunião online para ajudá-lo a configurar o módulo de autenticação da API REST do Drupal.

Recursos adicionais

Nossos outros módulos

Olá!

Preciso de ajuda? Estamos bem aqui!

ajuda