검색 결과 :

×

타사 제공업체를 사용한 WordPress REST API 인증

타사 제공업체를 이용한 워드프레스 REST API 인증 방식은 구글, 페이스북, 파이어베이스, 애플, Azure AD, 키클로크, 옥타, AWS 코그니토, 깃허브, 슬랙, 깃랩 등과 같은 타사 제공업체로부터 받은 토큰(액세스 토큰/ID 토큰/JWT 토큰)을 사용하여 워드프레스 REST API에 안전하게 접근하는 것을 의미합니다.
WordPress 엔드포인트는 기본적으로 보안이 취약하며 JSON 형식의 REST API를 통해 데이터가 유출될 수 있습니다. WordPress용 REST API 인증 플러그인을 사용하면 기본 인증, API 키, JWT 토큰, OAuth 토큰 등 다양한 보안 방식으로 REST API를 호출할 수 있습니다. 이 가이드에서는 OAuth/OpenID Connect/Firebase 제공업체에서 발급한 OAuth 토큰을 사용하여 REST API 요청을 검증하고 WordPress 웹사이트를 안전하게 보호하는 방법을 설명합니다. REST API에 접근하려는 요청이 있을 때마다 Google, Facebook, Firebase, Apple, Okta 등과 같은 제3자 제공업체에서 발급한 토큰을 사용하여 인증이 수행되며, API 토큰 유효성 검사를 기반으로 해당 REST API 요청에 대한 리소스 접근이 허용됩니다. 따라서 SSO 로그인 후 앱에서 얻은 단일 토큰을 사용하여 WordPress의 REST API 엔드포인트에 접근할 수 있습니다.



WordPress용 REST API 인증

WordPress용 REST API 인증 플러그인은 WordPress REST API에 대한 무단 접근을 차단하여 보안을 강화합니다. 본 플러그인은 기본 인증, API 키 인증, OAuth 2.0 인증, JWT 인증 등 다양한 인증 방식을 제공합니다.

현장 사진   

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


  • 안드로이드/iOS 모바일 애플리케이션이 있고, 사용자가 Google, Facebook, Apple, LinkedIn, Instagram과 같은 소셜 로그인 제공업체 또는 AWS Cognito, Auth0, Microsoft Azure, Okta, Keycloak, Firebase 등과 같은 OAuth/OpenID Connect 제공업체를 통해 로그인할 수 있도록 했다고 가정해 보겠습니다. 사용자가 모바일 애플리케이션에서 WordPress의 REST API 엔드포인트에 접근할 수 있도록 하려면, 애플리케이션 로그인 시 단일 로그인(SSO)을 통해 OAuth/OpenID Connect ID 제공업체(서버)에서 발급받은 액세스/ID 토큰(JWT 토큰)을 기반으로 REST API 엔드포인트 접근 인증을 수행할 수 있습니다. 액세스/ID 토큰/JWT는 토큰 유형이 Bearer인 상태로 API 요청의 Authorization 헤더에 전달되며, 해당 토큰의 유효성 검사는 관련 OAuth/OpenID Connect/Firebase ID 제공업체를 통해 직접 수행됩니다. 즉, 유효성 검사 요청은 해당 OAuth/OpenID Connect 서버로 내부적으로 전송됩니다. 토큰 유효성 검사가 성공하면 REST API 요청을 통해 리소스/데이터에 접근할 수 있으며, 유효성 검사에 실패하면 오류 응답이 반환됩니다. 이러한 방식으로 OAuth/OpenID Connect ID 제공업체의 직접 인증을 통해 최고 수준의 보안으로 리소스/데이터를 보호할 수 있습니다.

  • 타사 키 방식을 사용한 워드프레스 REST API 인증
  • 플러그인을 사용하여 인증에 대한 이러한 사용 사례를 달성하는 방법은 다음과 같습니다.
    • 1. REST API 엔드포인트 요청은 OAuth/OpenID Connect ID 제공업체로부터 발급받은 액세스/ID 토큰을 Authorization 헤더에 전달하고 토큰 유형을 Bearer로 지정하여 수행됩니다.

      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 엔드포인트에 대한 접근 권한을 부여하기 위한 인증 및 보안 확보 또는 권한 부여는 어떻게 수행해야 할까요?




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

 
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"))   

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

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

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


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


그것을 구성하는 방법?

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

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


2. 커스텀 헤더


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

'사용자 지정 이름'으로 헤더에 이름을 지정하면 보안이 강화됩니다. 즉, 누군가가 '인증'이라는 헤더로 REST API 요청을 하면 API에 액세스할 수 없습니다.


그것을 구성하는 방법?

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

3. REST API 제외


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


그것을 구성하는 방법?

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

4. 맞춤형 토큰 만료


이 기능은 WordPress REST API 엔드포인트 인증에 시간 기반 토큰을 사용하는 JWT 및 OAuth 2.0 방식에 적용됩니다. 이 기능을 사용하면 토큰의 만료 시간을 사용자 지정할 수 있으며, 만료된 토큰은 더 이상 유효하지 않게 됩니다.


그것을 구성하는 방법?

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

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


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


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

REST API 기본 인증 방식 Postman 구현

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


이 기능을 사용하면 JWT 토큰에 대한 JWT 서명을 안전하게 서명할 수 있으므로 JWT 토큰이 훨씬 더 안전하고 서명은 클라이언트 비밀/인증서를 사용해서만 디코딩할 수 있습니다. 즉, 서명은 비공개이며 다른 사람이 볼 수 없습니다.

REST API 기본 인증 방식 Postman 구현

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

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


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


  • 이 기능은 범용 키인 무작위로 생성된 토큰과 달리 사용자 정보에 따라 토큰을 생성할 수 있는 API 키 방식에서 사용할 수 있습니다.
  • 유니버설 API 키/토큰을 사용하면 사용자는 POST, PUT 또는 DELETE 요청 메서드를 사용하는 특정 WordPress REST API(예: 사용자, 게시물 또는 페이지 생성 등)에 접근할 수 없습니다. 유니버설 키는 무작위로 생성되며 사용자 기반 설명이 포함되어 있지 않기 때문입니다. 이러한 API 요청은 특정 사용자 권한/역할이 필요합니다.
  • 이 사용자 기반 API 키/토큰 기능은 사용자가 WordPress에서 POST, PUT, DELETE와 같은 요청 메서드를 사용하는 REST API에 접근할 수 있도록 해줍니다. 이러한 API 작업은 사용자 자격 증명 또는 특정 역할이 필요하며, 사용자 기반 키를 사용하여 WordPress REST API를 요청하면 사용자의 역할이 확인되고, 해당 역할이 있는 경우에만 API에 접근할 수 있게 됩니다.
  • 예를 들면 : 관리자 및 편집자 역할을 가진 사용자만 게시물을 만들고, 편집하고, 삭제할 수 있는 권한이 있습니다.
  • 따라서 게시물을 생성/삭제/편집하기 위해 이 API에 요청이 이루어지면 API 응답은 "이 작업을 수행할 권한이 없습니다"가 됩니다.
  • 이제 관리자 또는 편집자 역할이 있는 사용자를 위해 생성된 사용자 기반 토큰으로 요청이 이루어지면 해당 사용자만 이 API에 액세스할 수 있으며 API 호출을 통해 작업(생성/업데이트/삭제)을 수행할 수 있습니다.
  • 이 기능을 사용하는 방법:

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


모든 기능을 갖춘 평가판 받기



 답변해 주셔서 감사합니다. 곧 답변드리겠습니다.

문제가 발생했습니다. 문의사항을 다시 제출해 주세요.

타사 제공업체를 통한 워드프레스용 REST API

도움이 필요하신가요?

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

ADFS_sso ×
안녕하세요!

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

SUPPORT