Autenticação de API REST para WordPress usando um provedor terceirizado
Visão geral
A autenticação da API REST do WordPress usando o método de provedor terceirizado envolve o uso de tokens (access-token/id-token/jwt token) recebidos de provedores terceirizados como Google, Facebook, Firebase, Apple, Azure AD, Keycloak, Okta, AWS Cognito, Github, Slack, Gitlab, etc., para acessar a API REST do WordPress com segurança.
Os endpoints do WordPress não são seguros por padrão e os dados podem ser roubados por meio de APIs REST em formato JSON. O plugin REST API Authentication for WordPress permite que você chame APIs REST com vários métodos de segurança, como autenticação básica, chave de API, token JWT e token OAuth. Neste guia, usaremos o token OAuth emitido pelos provedores OAuth/OpenID Connect/Firebase para validar as solicitações da API REST, o que manterá seu site WordPress protegido e seguro. Cada vez que uma solicitação de acesso à API REST for feita, a autenticação será realizada com base nesse token emitido por provedores terceirizados, como Google, Facebook, Firebase, Apple, Okta, etc., e, com base na validação do token da API, o acesso aos recursos da API REST será permitido. Portanto, o token único obtido em seu aplicativo após o login SSO pode ser usado para acessar os endpoints da API REST do WordPress.
Autenticação de API REST para WordPress

O plugin REST API Authentication para WordPress oferece segurança contra acessos não autorizados às suas APIs REST do WordPress. Nosso plugin oferece diversos métodos de autenticação, como Autenticação Básica, Autenticação por Chave de API, Autenticação OAuth 2.0 e Autenticação JWT.
Saber MaisPré-requisitos: Download e instalação
- Efetue login na sua instância do WordPress como administrador.
- Ir para o WordPress Painel -> Plugins e clique em adicionar Novo.
- Procurar por um Autenticação REST API plugin para WordPress e clique em Agora instale.
- Uma vez instalado, clique em Ativação.
Caso de uso: Autenticar/proteger endpoints da API REST do WordPress usando o token JWT obtido de provedores de identidade de login social/OAuth 2.0/OpenID Connect (servidor).
- Suponha que você tenha um aplicativo móvel para Android/iOS e ofereça aos seus usuários a opção de fazer login com múltiplos provedores de autenticação social, como Google, Facebook, Apple, LinkedIn, Instagram ou outros provedores OAuth/OpenID Connect, como AWS Cognito, Auth0, Microsoft Azure, Okta, Keycloak, Firebase etc., e queira que seus usuários acessem os endpoints da API REST do WordPress a partir do aplicativo. Nesse caso, você pode realizar a autenticação de acesso aos endpoints da API REST com base no token de acesso/identificação (token JWT) obtido do provedor de identidade OAuth/OpenID Connect (servidor) durante o Single Sign-On (SSO) para login no seu aplicativo. O token de acesso/identificação/JWT é então passado no cabeçalho de Autorização da requisição da API com o tipo de token definido como Bearer, e a validação desse token é feita diretamente pelo provedor de identidade OAuth/OpenID Connect/Firebase correspondente. A requisição de validação é feita internamente ao servidor OAuth/OpenID Connect correspondente. Se a validação do token for bem-sucedida, a requisição da API REST resultará no acesso aos recursos/dados; caso contrário, uma resposta de erro será retornada. Dessa forma, os recursos/dados podem ser protegidos com o mais alto nível de segurança, com autenticação direta de provedores de identidade OAuth/OpenID Connect.
- Como esse caso de uso para autenticação pode ser alcançado com nosso plugin:

1. A solicitação ao endpoint da API REST é feita com o token de acesso/identificação obtido dos provedores de identidade OAuth/OpenID Connect, passado no cabeçalho de autorização com o tipo de token definido como Bearer.
2. A solicitação da API REST do WordPress é monitorada pelo nosso plugin e a solicitação de validação/autenticação do token JWT é enviada ao provedor de identidade OAuth/OpenID Connect (servidor).
3. A resposta é retornada do provedor de identidade OAuth/OpenID Connect (servidor) para a solicitação feita anteriormente para validar o token JWT.
4. Se a validação/autenticação do token JWT for bem-sucedida, o recurso solicitado poderá ser acessado, o que significa que o solicitante agora está autorizado a acessar o recurso/dados. Caso a validação do token falhe, uma resposta de erro será retornada. Assim, os dados do recurso agora estão protegidos e podem ser acessados mediante autorização, portanto, a segurança não é mais um problema.
Caso de uso relacionado:
- Como impedir que os endpoints da API REST do WordPress usem o token JWT fornecido pelo Login Social ou pelos provedores de identidade OAuth2.0/OpenID Connect?
- Como realizar a autenticação e garantir a segurança ou a autorização para conceder acesso aos endpoints da API REST do WordPress com base no token de acesso/identificação fornecido pelos provedores de login social/OAuth durante o fluxo de login SSO OAuth/OpenID?
Leia os casos de uso para os seguintes métodos de autenticação da API REST:
Configurar o plugin de autenticação de API para WordPress
- Escolha o seu Método de autenticação →Provedor terceirizado e adicione Ponto final da introspecção fornecido pelo seu provedor OAuth/OpenID Connect, clique em Salvar configuração.
- Após configurar o plugin com o endpoint de introspecção fornecido pelo seu provedor, tente acessar suas APIs REST do WordPress usando o token de acesso/id_token fornecido pelo seu provedor OAuth, conforme mostrado abaixo.
Request: GET https://<domain-name>/wp-json/wp/v2/posts
Header:
access_token : < access_token >
OR
id_token : < id_token >
-H 'app-name:TheAppName'
Exemplos de código em linguagens de programação
var client = new RestClient("http://<wp_base_url>/wp-json/wp/v2/posts ");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "< access_token > OR id_token <id_token>");
request.AddHeader = ("app-name", "TheAppName");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("http://<wp_base_url>/wp-json/wp/v2/posts ")
.method("GET", null)
.addHeader = ("Authorization", "< access_token > OR id_token <id_token>")
.addHeader = ("app-name", "TheAppName");
.build();
Response responseclient.newCall(request).execute();
var settings = {
"url": "http://<wp_base_url>/wp-json/wp/v2/posts ",
"method": "GET",
"timeout": 0,
"headers": {
"Authorization": "< access_token > OR id_token <id_token>"
"app-name": "TheAppName"
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
<?php
$curl = curl_init();
curl_setopt_array($curl, array
(
CURLOPT_URL => 'http://%3Cwp_base_url%3E/wp-json/wp/v2/posts%20',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: < access_token > OR id_token <id_token>'
'app-name: TheAppName'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import http.client
conn = http.client.HTTPSConnection("<wp_base_url>")
payload= "
headers = {
'Authorization': '< access_token > OR id_token <id_token>'
'app-name': 'TheAppName',
}
conn.request("GET", "/wp-json/wp/v2/posts ", payload, headers)
res= conn.getresponse()
data = res.read()
print (data.decode("utf-8"))
Amostras do Carteiro:
- Você pode baixar o formato de solicitação do Postman de amostra em aqui..
- Extraia o arquivo zip baixado e importe o arquivo json extraído para o aplicativo Postman.
- Substituir o < token_de_acesso > or < id_token > com o respectivo token fornecido pelo seu provedor OAuth 2.0.
- Substituir o < nome-do-aplicativo > com seu respectivo AppName.
- Exemplo:
Siga os passos abaixo para fazer uma solicitação de API REST usando o Postman:
Descrição do Recurso
1. Restrição da API REST baseada em função:
Este recurso permite restringir o acesso à API REST com base nas funções do usuário. Você pode colocar na lista de permissões as funções para as quais deseja permitir acesso ao recurso solicitado para as APIs REST. Assim, sempre que uma solicitação de API REST for feita por um usuário, sua função será recuperada e só terá permissão para acessar o recurso se estiver na lista de permissões.
Como configurá-lo?
- Primeiro, vá para a aba "Configurações avançadas" do plugin.
- Em seguida, na seção "Restrição baseada em função", todas as funções terão permissão padrão para acessar as APIs. Você pode marcar a caixa de seleção das funções cujo acesso deseja restringir.
- Na captura de tela acima, a caixa de seleção da função de assinante está habilitada. Portanto, sempre que uma solicitação de API for feita pelo usuário com a função de assinante, esse usuário não terá permissão para acessar o recurso solicitado.
Observação: O recurso de restrição baseado em função é válido para autenticação básica (nome de usuário: senha), método JWT e OAuth 2.0 (concessão de senha).
2. Cabeçalho personalizado
Este recurso oferece uma opção para escolher um cabeçalho personalizado em vez do cabeçalho padrão 'Autorização'.
Isso aumentará a segurança, pois você terá o cabeçalho nomeado com seu "nome personalizado", então se alguém fizer uma solicitação de API REST com um cabeçalho como "Autorização", ele não conseguirá acessar as APIs.
Como configurá-lo?
- Primeiro, vá para a aba "Configurações avançadas" do plugin.
- Em seguida, na seção "Cabeçalho personalizado", você pode editar a caixa de texto para inserir o nome personalizado desejado.
3. Excluir APIs REST
Este recurso permite que você adicione suas APIs REST à lista de permissões para que elas possam ser acessadas diretamente sem qualquer autenticação. Portanto, todas essas APIs REST na lista de permissões estão disponíveis publicamente.
Como configurá-lo?
- Primeiro, vá para a aba "Configurações avançadas" do plugin.
- Em seguida, em "Excluir APIs REST", você pode inserir suas APIs no formato prescrito, que precisa ser incluído na lista de permissões para acesso público.
- Exemplo: Suponha que você queira excluir a API REST '
/wp-json/wp/v2/posts' então você tem que digitar '/wp/v2/posts' na caixa de texto.
4. Expiração de Token Personalizado
Essa funcionalidade é aplicável aos métodos JWT e OAuth 2.0, que utilizam tokens temporizados para autenticar os endpoints da API REST do WordPress. Com ela, você pode definir um prazo de validade personalizado para os tokens, de forma que eles percam a validade após expirarem.
Como configurá-lo?
- Primeiro, vá para a aba "Configurações avançadas" do plugin.
- Na seção "Configuração de Expiração do Token", a validade do token de acesso e o token de atualização (usados no método OAuth 2.0) podem ser alterados. Por padrão, o tempo de expiração do token de acesso é definido como 60 minutos e o tempo de expiração do token de atualização é definido como 14 dias. Portanto, com esse recurso, a expiração pode ser ajustada de acordo com os requisitos.
Portanto, com esse recurso de expiração de token personalizado, a segurança aumenta ainda mais.
5. Habilite a criptografia avançada para os tokens usando HMAC
Este recurso está disponível com o método de autenticação básica, no qual, por padrão, o token é criptografado usando a técnica de codificação Base64, mas com o recurso avançado, o token pode ser criptografado com criptografia HMAC altamente segura, que é muito segura.
6. Validação de assinatura para tokens baseados em JWT
Este recurso permite uma assinatura segura da assinatura JWT para o token JWT, de forma que seu token JWT seja muito mais seguro e a assinatura só possa ser decodificada usando o segredo/certificado do cliente. Isso significa que sua assinatura é privada e não pode ser vista por terceiros.
Oferecemos suporte para dois algoritmos de assinatura: HS2 e RS256. Portanto, qualquer um dos algoritmos de assinatura pode ser escolhido no menu suspenso, conforme mostrado na imagem acima.
Além disso, você precisa adicionar o segredo do cliente ou certificado que será usado para assinar o JWT.
7. Crie chaves/tokens de API específicos do usuário
- Esse recurso está disponível no método de chave de API, no qual os tokens podem ser gerados de acordo com as informações do usuário, em vez de um token gerado aleatoriamente, que é uma chave universal.
- Com a chave/token da API Universal, os usuários não têm permissão para acessar determinadas APIs REST do WordPress com os métodos de solicitação POST, PUT ou DELETE, como a criação de usuários, posts ou páginas, etc., que exigem permissões/funções específicas do usuário para realizar operações por meio da solicitação da API REST, visto que a chave universal é gerada aleatoriamente e não contém uma descrição baseada no usuário.
- Assim, esse recurso de chave/token de API baseado no usuário permite que o usuário acesse as APIs REST com os métodos de requisição POST, PUT e DELETE no WordPress, que exigem credenciais de usuário ou determinadas funções para realizar a operação. Dessa forma, quando a requisição à API REST do WordPress é feita com a chave baseada no usuário, a função do usuário é obtida e ele só poderá acessar a API se tiver a permissão necessária.
- Por exemplo: Somente usuários com funções de administrador e editor têm permissões para criar/editar/excluir uma postagem.
- Portanto, se uma solicitação for feita a esta API para criar/excluir/editar a postagem, a resposta da API resultará em “Você não tem permissão para executar esta operação”.
- Agora, se uma solicitação for feita com o token baseado no usuário gerado para o usuário que tem função de administrador ou editor, somente ele terá acesso a esta API e poderá executar a operação (criar/atualizar/excluir) por meio da chamada da API.
- Selecione o usuário no menu suspenso e clique no botão Criar chave de API.
- Um pop-up aparecerá na tela, você só precisa clicar no botão OK para copiar o token.
- Agora, esse token pode ser usado com a solicitação de API, assim como a chave universal é usada para fazer a solicitação de API.
Como usar este recurso:
Solicite uma demonstração do plugin
Obtenha uma avaliação completa
Obrigado pela sua resposta. Entraremos em contato em breve.
Algo deu errado. Envie sua consulta novamente.

Precisa de ajuda?
Envie-nos um e-mail [email protected] para orientação rápida (por e-mail/reunião) sobre sua necessidade e nossa equipe ajudará você a selecionar a melhor solução/plano adequado de acordo com sua necessidade.
