Configurar autenticação OAuth/Token de Acesso no Drupal
Este Autenticação de API do Drupal O método OAuth usa o protocolo OAuth 2.0 para gerar um token de acesso seguro. Esse token é então usado para autenticar e fazer solicitações às APIs do seu site Drupal. Com criptografia forte, o método OAuth garante que suas APIs permaneçam bem protegidas e protegidas contra acesso não autorizado. É amplamente considerado um dos métodos mais seguros para proteger endpoints REST e JSON:API do Drupal. Este módulo é totalmente compatível com Drupal 8, 9, 10 e 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 OAuth/Token de acesso:
- Nesta etapa, configuraremos o OAuth/Access Token como método de autenticação da API. Para isso, acesse a página 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 OAuth/Token de acesso do Método de autenticação seção.
- Desloque-se até o Configuração OAuth seção na mesma aba.
- Opcional: insira a duração de expiração desejada (em minutos) em Tempo de expiração do token.
- Use o token de acesso gerado por:
- Autenticação da API REST: Clique na Gerar um novo ID de cliente e segredo botão. (Mantenha o ID do cliente e o segredo em mãos. Você precisará deles mais tarde para autenticar a API de criação de usuário.)
- Servidor OAuth: Você também pode obter um token de acesso no Servidor OAuth módulo (após executar o SSO) e usá-lo para autenticação.
- Clique na Salvar configuração botão.
- Você configurou com sucesso o método de autenticação OAuth/Access Token.
Observação: Use o cabeçalho exclusivo específico do aplicativo ao autenticar a API.
Conceder permissões de função para criar usuários
- Se necessário, você pode permitir que funções não administrativas do Drupal criem usuários. Para isso, atribua a permissão "Administrar usuários" às funções desejadas na página Permissões (/admin/people/permissions) do seu site Drupal.
2. Obter Token do módulo REST API:
- Faça uma chamada à API para obter um token de acesso. Você usará esse token para autenticar a API do Drupal e criar um usuário.
- O módulo de autenticação da API miniOrange suporta dois tipos de concessão para obter um token de acesso:
- Na concessão de senha, podemos obter o token de acesso fazendo 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.
Concessão de senha:
Formato de solicitação HTML - Solicitação: POST /rest_api/access_token Corpo: grant_type = senha nome_de_usuário = senha = id_do_cliente = Solicitação no formato CURL - curl --location --request POST ' /rest_api/access_token' \ --header 'Aceitar: application/json' \ --header 'Tipo de conteúdo: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=password' \ --data-urlencode 'client_id= ' \ --data-urlencode 'nome de usuário= \ --data-urlencode 'senha= '
- Você também pode consultar a imagem da solicitação do Postman abaixo.
Concessão de credenciais do cliente:
- Na concessão de Credenciais do Cliente, podemos obter 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 de API, juntamente com o nome de usuário do Drupal.
Formato de solicitação HTML - Solicitação: POST /rest_api/access_token Corpo: grant_type = client_credentials client_id = segredo_do_cliente = Nome de usuário = Formato de solicitação CURL - curl --location --request POST '/rest_api/access_token' \ --header 'Aceitar: application/json' \ --header 'Tipo de conteúdo: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'client_id= ' \ --data-urlencode 'nome de usuário= >' \ --data-urlencode 'client_secret= '
- 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)
3. Exemplo:
- Agora, vamos criar um usuário com uma chamada de API usando OAuth/Access Token para autenticação.
- Para melhor compreensão, vamos dar um exemplo de adição de autenticação baseada em OAuth/Access Token à API de criação de usuário no Drupal.
- Usando o Access Token recebido para autorizar as APIs REST do Drupal:
- Para autenticar com um token de acesso, adicione o token como um token de portador no cabeçalho de autorização da sua solicitação.
- Exemplo de solicitação para criar usuário usando autenticação baseada em token:
Observação: A API /entity/user no Drupal é usada para criar um novo usuário.
Observação: Qualquer token de acesso, gerado pelo módulo de autenticação de API ou pelo módulo do servidor OAuth, pode ser usado.
Formato de solicitação HTML - Solicitação: POST /entity/user?_format=json Cabeçalho: AUTH-METHOD: application_id Aceitar: application/json Tipo de conteúdo: application/json Autorização: Portador 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: 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 OAuth/Token de Acesso 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.
