검색 결과 :

×

타사 공급자를 사용한 WordPress REST API 인증


타사 공급자 방법을 사용한 WordPress REST API 인증에는 Google, Facebook, Firebase, Apple, Azure AD, Keycloak, Okta, AWS Cognito와 같은 타사 공급자로부터 받은 토큰(access-token/id-token/jwt 토큰)이 사용됩니다. , Github, Slack, Gitlab 등을 사용하여 WordPress Rest API에 안전하게 액세스할 수 있습니다.

WordPress 엔드포인트는 기본적으로 안전하지 않으며 JSON 형식의 REST API를 통해 데이터가 도난당할 수 있습니다. WordPress REST API 인증을 사용하면 기본 인증, API KEY, JWT 토큰, OAuth 토큰과 같은 여러 보안 방법으로 REST API를 호출할 수 있습니다. 이 가이드에서는 OAuth/OpenID Connect/Firebase 공급자가 발급한 OAuth 토큰을 사용하여 WordPress 웹사이트를 보호하고 안전하게 유지하는 REST API 요청을 검증합니다.
REST API에 대한 액세스 요청이 이루어질 때마다 Google, Facebook, Firebase, Apple, okta 등과 같은 제XNUMX자 제공업체가 발행한 해당 토큰에 대해 API 검증을 기반으로 인증이 수행됩니다. 토큰을 사용하면 해당 REST API 요청에 대한 리소스에 액세스할 수 있습니다. 따라서 SSO 로그인 후 앱에서 얻은 단일 토큰은 WP REST API 엔드포인트에 액세스하는 데 추가로 사용될 수 있습니다.


WordPress Rest API 인증
작성자: miniOrange

WordPress REST API 인증 플러그인은 WordPress REST API에 대한 무단 액세스로부터 보안을 제공합니다.

현장 사진

전제조건 : 다운로드 및 설치


  • WordPress 인스턴스에 관리자로 로그인합니다.
  • 워드프레스로 이동 대시보드 ➜ 플러그인 그리고 클릭 새로운 추가.
  • WordPress 검색 REST API 인증 플러그인을 클릭하고 지금 설치.
  • 설치가 완료되면 클릭하세요. 활성화.

사용 사례: 소셜 로그인/OAuth 2.0/OpenID Connect ID 공급자(서버)에서 얻은 JWT 토큰을 사용하여 WordPress REST API 엔드포인트를 인증/보호합니다.

  • Android/iOS 모바일 애플리케이션이 있고 사용자에게 Google, Facebook, Apple, Linkedin, Instagram과 같은 여러 소셜 로그인 공급자 또는 AWS Cognito, Auth0, Microsoft Azure, Okta와 같은 기타 OAuth/OpenID Connect 공급자를 사용하여 로그인하도록 제공했다고 가정합니다. Keycloak, Firebase 등을 사용하고 사용자가 모바일 애플리케이션에서 WordPress REST API 엔드포인트에 액세스할 수 있도록 하여 OAuth/ OpenID Connect ID 공급자(서버)는 애플리케이션에 로그인하기 위한 싱글 사인온(SSO)입니다. 따라서 액세스/ID 토큰/JWT는 토큰 유형을 Bearer로 사용하여 API 요청의 Authorization 헤더에 전달되고 해당 토큰의 유효성 검사는 해당 OAuth/OpenId Connect/Firebase ID 공급자를 통해 직접 수행됩니다. 따라서 유효성 검사 요청은 해당 OAuth/OpenID Connect 서버에 내부적으로 이루어집니다. 해당 토큰의 유효성 검사가 성공하면 REST API 요청으로 인해 리소스/데이터에 액세스하게 되고, 유효성 검사가 실패하면 오류 응답이 반환됩니다. 이러한 방식으로 OAuth/OpenID Connect ID 공급자의 직접 인증을 통해 리소스/데이터를 최고 수준의 보안으로 보호할 수 있습니다.

  • 타사 키 방법을 사용한 WordPress REST API 인증
  • 플러그인을 사용하여 인증에 대한 이러한 사용 사례를 달성하는 방법은 다음과 같습니다.
    • 1. WordPress REST API 엔드포인트 요청은 토큰 유형이 Bearer인 Authorization 헤더에 전달된 OAuth/OpenID Connect ID 공급자로부터 얻은 액세스/ID 토큰을 사용하여 이루어집니다.

      2. WordPress REST API 요청은 플러그인에 의해 모니터링되며 JWT 토큰 유효성 검사/인증 요청은 OAuth/OpenID Connect ID 공급자(서버)로 전송됩니다.

      3. JWT 토큰의 유효성을 검사하기 위해 이전에 이루어진 요청에 대해 OAuth/OpenID Connect ID 공급자(서버)로부터 응답이 반환됩니다.

      4. JWT 토큰 유효성 검사/인증이 성공하면 요청한 리소스에 액세스할 수 있습니다. 이는 요청자가 이제 리소스/데이터에 액세스할 수 있는 권한이 부여되었음을 의미하며, 이 경우 토큰 유효성 검사가 실패하면 오류 응답이 반환됩니다. . 따라서 리소스 데이터는 이제 보호되고 인증 시 액세스할 수 있으므로 보안은 문제가 되지 않습니다.


    관련 사용 사례: 소셜 로그인 또는 OAuth2.0/OpenID Connect ID 공급자가 제공하는 JWT 토큰을 사용하여 WordPress REST API 엔드포인트를 방지하는 방법은 무엇입니까?


    OAuth/OpenID SSO 로그인 흐름 중에 소셜 로그인/OAuth 공급자가 제공한 액세스/ID 토큰을 기반으로 WordPress REST API 엔드포인트에 대한 액세스 권한을 부여하기 위해 인증을 수행하고 보안을 보장하거나 권한 부여를 수행하는 방법은 무엇입니까?

다음 Rest API 인증 방법에 대한 사용 사례를 읽어보세요.

1단계: WordPress REST API 인증 플러그인 설정

    • 선택하여 인증방법 → 제XNUMX자 제공자 그리고 추가 내부 검사 끝점 OAuth/OpenID Connect 제공업체에서 제공한 다음을 클릭하세요. 구성 저장.
    • 타사 키 방법을 사용한 WordPress REST API 인증
    • 공급자가 제공한 내부 검사 끝점으로 플러그인을 구성한 후에는 아래와 같이 OAuth 공급자가 제공한 액세스 토큰/id_token을 사용하여 WordPress REST API에 액세스해 보세요.
    • Request: GET https://<domain-name>/wp-json/wp/v2/posts
      Header: 
      access_token : < access_token >
      OR
      id_token  : < id_token  >
      
    • 확인 개발자 문서 자세한 내용은.

미니오렌지 img 프로그래밍 언어의 코드 샘플


 
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>");
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>")
 .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>"
      },        
  };
  
  $.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>'
    
      ),
    
        ));          
      
$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>'
}
conn.request("GET", "/wp-json/wp/v2/posts ", payload, headers)
res= conn.getresponse()    
data = res.read()    
print (data.decode("utf-8"))   

우편 배달부 샘플:

    Postman을 사용하여 REST API 요청을 수행하려면 아래 단계를 따르세요.

  • 샘플 Postman 요청 형식은 다음에서 다운로드할 수 있습니다. 여기에서 지금 확인해 보세요..
  • 다운로드한 zip 파일을 추출하고 추출된 json 파일을 Postman 애플리케이션으로 가져옵니다.
  • 타사 방법 우편 배달부 구현을 사용한 WordPress REST API 인증
  • 교체 <액세스 토큰> or <ID_토큰> OAuth 2.0 공급자가 제공한 해당 토큰을 사용하세요.
  • 예:
  • 타사 방법 우편 배달부를 사용하여 WordPress REST API 인증 URL 실제 리소스 교체

기능 설명

    1. 역할 기반 REST API 제한 사항:

    이 기능을 사용하면 사용자 역할에 따라 REST API 액세스를 제한할 수 있습니다. REST API에 대해 요청된 리소스에 대한 액세스를 허용하려는 역할을 화이트리스트에 추가할 수 있습니다. 따라서 사용자가 REST API를 요청할 때마다 해당 역할을 가져오고 해당 역할이 화이트리스트에 있는 경우에만 리소스에 액세스할 수 있습니다.


    그것을 구성하는 방법?

    • 먼저 플러그인 '고급 설정' 탭으로 이동하세요.
    • 그런 다음 역할 기반 제한 섹션에서 기본적으로 모든 역할이 API에 액세스하도록 허용됩니다. 액세스를 제한하려는 역할의 확인란을 활성화할 수 있습니다.
    • WordPress REST API 기본 인증 방법 우편 배달부 구현
    • 위 스크린샷에서는 구독자 역할 확인란이 활성화되어 있습니다. 따라서 구독자 역할을 가진 사용자가 API 요청을 할 때마다 해당 사용자는 요청된 리소스에 액세스할 수 없습니다.

    참고 : 역할 기반 제한 기능은 기본 인증(사용자 이름: 비밀번호), JWT 방식, OAuth 2.0(비밀번호 부여)에 유효합니다.

    2. 커스텀 헤더

    이 기능은 기본 'Authorization' 헤더 대신 사용자 정의 헤더를 선택하는 옵션을 제공합니다.

    '사용자 정의 이름'으로 이름이 지정된 헤더가 있으므로 보안이 강화되므로 누군가 헤더를 '인증'으로 사용하여 REST API 요청을 하면 API에 액세스할 수 없습니다.


    그것을 구성하는 방법?

    • 먼저 플러그인 '고급 설정' 탭으로 이동하세요.
    • 그런 다음 '사용자 정의 헤더' 섹션에서 텍스트 상자를 편집하여 원하는 사용자 정의 이름을 입력할 수 있습니다.
    • WordPress REST API 기본 인증 방법 우편 배달부 구현

    3. REST API 제외

    이 기능을 사용하면 REST API를 화이트리스트에 추가하여 인증 없이 직접 액세스할 수 있습니다. 따라서 화이트리스트에 등록된 모든 REST API는 공개적으로 사용 가능합니다.


    그것을 구성하는 방법?

    • 먼저 플러그인 '고급 설정' 탭으로 이동하세요.
    • 그런 다음 'REST API 제외'에서 공개 액세스를 위해 화이트리스트에 추가해야 하는 규정된 형식으로 API를 입력할 수 있습니다.
    • WordPress REST API 기본 인증 방법 우편 배달부 구현
    • 예: REST API를 제외하려는 경우 '/wp-json/wp/v2/posts'를 입력한 다음 텍스트 상자에 '/wp/v2/posts'를 입력해야 합니다.

    4. 맞춤형 토큰 만료

    이 기능은 시간 기반 토큰을 사용하여 WordPress REST API 엔드포인트를 인증하는 JWT 및 OAuth 2.0 방법에 적용됩니다. 이 기능을 사용하면 토큰이 만료되면 토큰이 더 이상 유효하지 않도록 토큰에 대한 사용자 지정 만료를 설정할 수 있습니다.


    그것을 구성하는 방법?

    • 먼저 플러그인 '고급 설정' 탭으로 이동하세요.
    • 그런 다음 '토큰 만료 구성' 섹션에서 액세스 토큰 유효성 및 새로 고침 토큰(OAuth 2.0 방법에 사용됨)을 변경할 수 있습니다. 기본적으로 액세스 토큰 만료 시간은 60분으로 설정되고 새로 고침 토큰 만료 시간은 14일로 설정됩니다. 따라서 이 기능을 사용하면 요구 사항에 따라 만료 기간을 조정할 수 있습니다.
    • WordPress REST API 기본 인증 방법 우편 배달부 구현

    따라서 이 사용자 정의 토큰 만료 기능을 사용하면 보안이 더욱 강화됩니다.

    5. HMAC를 사용하여 토큰에 대한 고급 암호화를 활성화합니다.

    이 기능은 기본적으로 토큰이 Base64 인코딩 기술을 사용하여 암호화되는 기본 인증 방법에서 사용할 수 있지만 고급 기능을 사용하면 매우 안전한 HMAC 암호화로 토큰을 암호화할 수 있습니다.

    WordPress REST API 기본 인증 방법 우편 배달부 구현

    6. JWT 기반 토큰에 대한 서명 검증

    이 기능을 사용하면 JWT 토큰에 대한 JWT 서명의 보안 서명이 허용되므로 JWT 토큰이 훨씬 더 안전해지고 서명은 클라이언트 암호/인증서를 통해서만 디코딩될 수 있습니다. 이는 귀하의 서명이 비공개이며 다른 사람이 볼 수 없음을 의미합니다.

    WordPress REST API 기본 인증 방법 우편 배달부 구현

    우리는 HS2 및 RS256의 두 가지 서명 알고리즘을 지원합니다. 따라서 위 이미지에 표시된 대로 드롭다운에서 서명 알고리즘을 선택할 수 있습니다.

    또한 JWT 서명에 서명하는 데 사용되는 클라이언트 비밀번호 또는 인증서를 추가해야 합니다.

    7. 사용자별 API 키/토큰 생성

    • 이 기능은 유니버설 키인 랜덤 생성 토큰이 아닌 사용자 정보에 따라 토큰을 생성할 수 있는 API 키 방식 내에서 사용할 수 있습니다.
    • Universal API 키/토큰을 사용하면 사용자는 작업을 수행하는 데 특정 사용자 권한/역할이 필요한 사용자, 게시물, 페이지 등 생성과 같은 POST, PUT, DELETE 요청 방법을 사용하여 특정 WordPress REST API에 대한 권한을 가질 수 없습니다. 범용 키는 REST API 요청을 사용하여 무작위로 생성되며 사용자 기반 설명을 포함하지 않습니다.
    • 따라서 이 사용자 기반 API 키/토큰 기능을 사용하면 사용자는 WordPress REST API 요청이 이루어질 때와 같은 작업을 수행하기 위해 사용자 자격 증명이나 특정 역할이 필요한 WordPress의 POST, PUT, DELETE와 같은 요청 방법을 사용하여 REST API에 액세스할 수 있습니다. 사용자 기반 키를 사용하면 사용자의 역할을 획득하고 권한이 있는 경우에만 API에 액세스할 수 있습니다.
    • 예를 들면 : 관리자 및 편집자 역할을 가진 사용자만이 게시물을 생성/수정/삭제할 수 있는 권한을 갖습니다.
    • 따라서 이 API에 게시물 생성/삭제/수정을 요청하면 API 응답으로 “이 작업을 수행할 수 없습니다.”라는 결과가 나옵니다.
    • 이제 관리자 또는 편집자 역할을 가진 사용자에 대해 생성된 사용자 기반 토큰으로 요청이 이루어지면 해당 사용자만 이 API에 액세스할 수 있으며 API 호출을 통해 작업(생성/업데이트/삭제)을 수행할 수 있습니다.
    • 이 기능을 사용하는 방법:

    • 드롭다운에서 사용자를 선택하고 API 키 생성 버튼을 클릭합니다.
    • WordPress REST API 기본 인증 방법 우편 배달부 구현
    • 화면에 팝업이 나타나면 확인 버튼을 클릭하여 토큰을 복사하기만 하면 됩니다.
    • WordPress REST API 기본 인증 방법 우편 배달부 구현
    • 이제 API 요청에 범용 키를 사용하는 것처럼 이 토큰을 API 요청과 함께 사용할 수 있습니다.

메일을 보내주세요 apisupport@xecurify.com 귀하의 요구 사항에 대한 빠른 안내(이메일/회의를 통해)를 원하시면 저희 팀이 귀하의 요구 사항에 따라 가장 적합한 솔루션/계획을 선택하도록 도와드릴 것입니다.

권장 플러그인

WordPress REST API 인증 플러그인은 WordPress REST API에 대한 무단 액세스에 대한 보안을 제공합니다. 기본 인증, API Key 인증, OAuth 2.0 인증, JWT 인증 등 다양한 인증 방법을 제공합니다.

 5.9.2으로 테스트됨

이 플러그인을 사용하면 사용하기 쉬운 그래픽 인터페이스와 사용자 정의 SQL 쿼리를 사용하여 데이터를 가져오거나 수정/생성/삭제하는 사용자 정의 엔드포인트/REST 경로를 생성할 수 있습니다. 또한 플러그인은 타사 플랫폼을 사용하여 외부 API를 WordPress 사이트에 통합하는 기능을 제공합니다.

 5.9.2으로 테스트됨
안녕하세요!

도움이 필요하다? 우리는 바로 여기에 있습니다!

SUPPORT
miniOrange 지원팀에 문의하세요
성공

문의 해 주셔서 감사합니다.

24시간 이내에 연락을 받지 못한 경우 언제든지 다음 이메일로 후속 이메일을 보내주세요. info@xecurify.com