검색 결과 :

×

WordPress REST API 기본 인증 방법


WordPress REST API 기본 인증을 사용하면 사용자 이름, 비밀번호 또는 클라이언트 자격 증명에서 생성된 API 토큰을 검증하여 WordPress REST API에 대한 액세스를 확인할 수 있습니다.

WordPress REST API 엔드포인트에 대한 액세스 요청이 이루어질 때마다 연결된 토큰에 대한 인증을 거칩니다. 이후 특정 API 요청에 대한 리소스에 대한 액세스는 이 API 토큰의 성공적인 검증에 따라 결정됩니다. 보안을 유지하기 위해 액세스 토큰은 암호화되어 보안/데이터 위반을 방지합니다.


WordPress Rest API 인증
작성자: miniOrange

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

현장 사진

다운로드 및 설치 단계

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


사용 사례: 기본 인증을 사용하여 WordPress REST API 엔드포인트 액세스 보호/보안

    1. 사용자 자격 증명을 기준으로:

    Android/iOS 앱이 있고 사용자에게 모바일 앱에 개인 피드나 블로그를 게시할 수 있는 기능을 제공했다고 가정해 보겠습니다.

    이 경우 모바일 앱의 요청을 인증해야 합니다.

    사용자 이름과 비밀번호가 포함된 WordPress 기본 인증 REST API가 이 경우에 가장 적합한 인증 방법입니다. 사용자 권한이나 기능과 관련된 REST API를 통해 WordPress 작업을 수행하는 것이 도움이 될 것입니다.

    사용자 세션이 생성되고 WordPress 기능을 기반으로 REST API 콘텐츠에 액세스하거나 원하는 작업을 수행할 수 있습니다.


      사용자 자격 증명을 사용한 WordPress REST API 기본 인증 방법

    2. 클라이언트 자격 증명 기반:

    Android 또는 iOS 애플리케이션이 있고 REST API 엔드포인트를 통해 WordPress 콘텐츠와 상호작용하고 싶다고 가정해 보세요. 그러나 침입자가 WP 사이트에 무단으로 액세스할 수 있는 잠재적인 노출을 방지하기 위해 WP 사용자 자격 증명을 활용하는 것을 꺼려합니다.

    이러한 시나리오에서는 클라이언트 ID와 클라이언트 비밀을 활용하여 WP 사용자 자격 증명을 보호하는 WordPress 기본 인증 Rest API를 사용하는 것이 좋습니다.

    이 방법을 사용하면 각 요청에 플러그인에서 제공하는 클라이언트 ID와 클라이언트 비밀번호만 포함하면 됩니다. 결과적으로 클라이언트 ID와 비밀번호가 각 API 요청의 기본 인증 헤더 내에서 암호화된 형식으로 전송되므로 보안이 손상되지 않습니다. 그런 다음 이러한 자격 증명의 유효성을 검사하고 유효성 검사에 성공하면 WP API 기본 인증이 요청된 API에 대한 액세스 권한을 부여합니다.


      클라이언트 자격 증명을 사용한 WordPress REST API 기본 인증 방법

다음 Rest API 기본 인증 방법에 대한 일부 사용 사례:

REST API 기본 인증 방법 설정


미니오렌지 img 사용자 이름 및 비밀번호를 사용한 REST API 기본 인증:

  • 플러그인에서 방법 구성 탭을 탭하세요.
  • 를 클릭하십시오 기본 인증 API 인증 방법으로.
  • 사용자 이름과 비밀번호를 사용한 WordPress REST API 기본 인증 방법
  • 선택 Base64 인코딩을 사용한 사용자 이름 및 비밀번호 클릭 다음 보기 오른쪽 상단 모서리에
  • 사용자 이름과 비밀번호를 사용한 WordPress REST API 기본 인증 방법
  • 기능을 테스트하려면 기존 사용자의 사용자 이름과 비밀번호 필드를 입력하세요.
  • 사용자 이름과 비밀번호를 사용한 WordPress REST API 기본 인증 방법
  • REST API 엔드포인트를 편집하여 해당 엔드포인트에서 세부 정보를 가져올 수 있습니다. 예: 여기에서는 /pages 엔드포인트가 선택되었습니다.
  • 온 클릭 테스트 구성 버튼을 누르고 화면에 표시된 결과를 확인하세요.
  • 클릭 마감재 버튼을 클릭합니다.
  • 사용자 이름과 비밀번호를 사용한 WordPress REST API 기본 인증 방법
  • 사용자 이름 및 비밀번호와 함께 REST API 기본 인증 구성을 저장한 후 WordPress REST API에 액세스하려면 해당 인증 키와 함께 REST API 요청을 보내야 합니다. 아래와 같은 요청 형식을 사용해야 합니다.
  •    Request: GET https://<domain-name>/wp-json/wp/v2/posts
       Header: Authorization: Basic base64encoded <username:password>
    Sample Request Format- Example => username : testuser and password : password@123

    
         Sample curl Request Format-
         curl -H "Authorization:Basic base64encoded <username:password>"
         -X POST http://<wp_base_url>/wp-json/wp/v2/posts -d "title=sample post&status=publish" 
     
  • base64 인코딩을 위한 PHP base64_encode(string) 함수는 다음과 같이 사용할 수 있습니다:
  • 
    base64_encode(‘testuser:password@123’) will results into ‘eGw2UllOdFN6WmxKOlNMRWcwS1ZYdFVrbm5XbVV2cG9RV FNLZw==’ as output.
    Sample request: GET https://<domain-name>/wp-json/wp/v2/posts Header: Authorization : Basic eGw2UllOdFN6WmxKOlNMRWcwS1ZYdFVrbm5XbVV2cG9RVFNLZw==
  • 확인 오류 응답 사용자 이름 및 비밀번호를 사용한 기본 인증의 경우.

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



 
    var client = new RestClient("http://<wp_base_url>/wp-json/wp/v2/posts ");
	client.Timeout = -1;
	var request = new RestRequest(Method.POST);
	request.AlwaysMultipartFormData = true;
	request.AddParameter("title", "Sample Post");
	request.AddParameter("status", "publish");
	IRestResponse response = client.Execute(request);
	Console.WriteLine(response.Content);
 
    OkHttpClient client  = new OkHttpClient().newBuilder().build();
    MediaType mediaType = MediaType.parse("text/plain");
    RequestBody body  = new MultipartBody.Builder().setType(MultipartBody.FORM)
    .addFormDataPart("title","Sample Post")
    .addFormDataPart("status", "publish") 
    .build();
    Request request  = new Request.Builder()
    .url("http://<wp_base_url>/wp-json/wp/v2/posts ")
    .method("POST", body)
     .build();
    Response responseclient.newCall(request).execute();
            
 
    var form = new FormData();
    form.append("title","Sample Post");
    form.append("status", "publish"); 

    var settings  = {
        "url": "http://<wp_base_url>/wp-json/wp/v2/posts ",
        "method": "POST",
        "timeout": 0,
        "processData": false,
        "mimeType": "multipart/form-data",
        "contentType": false,
        "data": form
      };
      
      $.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 => 'POST',
            CURLOPT_POSTFIELDS => array('title' => 'Sample Post','status' => 'publish'),
            ));
          
    $response = curl_exec($curl);
    curl_close($curl);    
    echo $response;
            
 
    import http.client
    import mimetypes
    from codecs import encode

    conn   = http.client.HTTPSConnection("<wp_base_url>")
    dataList= []
    boundary = 'wL36Yn8afVp8Ag7AmP8qZ0SA4n1v9T'
    dataList.append(encode('--' + boundary))
    dataList.append(encode('Content-Disposition: form-data; name=title;')) 

    dataList.append(encode('Content-Type: {}'.format('text/plain')))    
    dataList.append(encode(''))    

    dataList.append(encode("Sample Post"))
    dataList.append(encode('--' + boundary))    
    dataList.append(encode('Content-Disposition: form-data; name=status;'))    

    dataList.append('Content-Type: {}'.format('text/plain')))
    dataList.append(encode(''))    

    dataList.append(encode("publish")) 
    dataList.append(encode('--'+boundary+'--'))    
    dataList.append(encode(''))    
    body  = b'\r\n'.join(dataList)    
    payload= body
    headers = {
        'Content-type': 'multipart/form-data; boundary={}'.format(boundary) 
     }
    conn.request("POST", "/wp-json/wp/v2/posts ", payload, headers)
    res= conn.getresponse()    
    data = res.read()    
    print (data.decode("utf-8"))   
 

미니오렌지 img 우편 배달부 샘플:

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

  • 온 클릭 우편 배달부 샘플 플러그인의 탭.
  • WordPress REST API 기본 인증 방법 우편 배달부 구현
  • 이제 기본 인증 Postman 샘플 카드 위로 마우스를 가져가세요.
    • a) 사용자 이름-비밀번호의 경우

        WordPress REST API 기본 인증 방법 사용자 이름: 비밀번호에 대한 우편 배달부 JSON 파일
      • 다운로드한 것을 가져옵니다. JSON 파일 아래와 같이 Postman 애플리케이션에 추가합니다.
      • WordPress REST API 기본 인증 방법 우편 배달부 JSON 파일 가져오기
      • json 파일을 가져온 후 마지막 그림과 같이 컬렉션 아래에서 REST API 요청을 클릭합니다. 교체 귀하의 WordPress 도메인을 http://<wp_base_url>/wp-json/wp/v2/posts 교체 base64로 인코딩됨 헤더에 기본 인코딩된 값이 있습니다.
        • 예:
          사용자 이름: testuser 및 비밀번호:password@123의 경우 base64로 인코딩된 값은 'dGVzdHVzZXI6cGFzc3dvcmRAMTIz'입니다.

      WordPress REST API 인증 키 방법 우편 배달부 기본 URL 교체

      b) 클라이언트 ID 및 클라이언트 비밀번호의 경우

      • WordPress REST API 기본 인증 방법 클라이언트 ID 및 클라이언트 비밀번호에 대한 우편 배달부 JSON 파일
      • 다운로드한 것을 가져옵니다. JSON 파일 아래와 같이 Postman 애플리케이션에 추가합니다.
      • WordPress REST API 기본 인증 방법 우편 배달부 JSON 파일 가져오기
      • json 파일을 가져온 후 마지막 그림과 같이 컬렉션 아래에서 REST API 요청을 클릭합니다. 이제 교체하세요 귀하의 WordPress 도메인을 http://<wp_base_url>/wp-json/wp/v2/posts 교체 base64로 인코딩됨 헤더에 기본 인코딩된 값이 있습니다.
      • WordPress REST API 기본 인증 방법 우편 배달부 기본 URL 교체

미니오렌지 img 기능 설명

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

    이 기능을 사용하면 사용자 역할에 따라 REST API 액세스를 제한할 수 있습니다. REST API를 통해 요청된 리소스에 액세스하도록 허용되는 역할을 지정할 수 있는 옵션이 있습니다. 결과적으로 사용자가 REST API 요청을 하면 해당 역할이 확인되고 해당 역할이 화이트리스트에 포함된 경우에만 리소스에 대한 액세스 권한이 부여됩니다.


    그것을 구성하는 방법?

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

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


    2. 사용자 정의 헤더:

    이 기능은 기본값 대신 개인화된 헤더를 선택하는 기능을 제공합니다. '권한 부여' 머리글. 이를 통해 사용자 정의 기본 설정에 따라 헤더 이름을 지정할 수 있어 보안이 강화됩니다. 결과적으로 누군가가 다음과 같은 헤더를 사용하여 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. HMAC를 사용하여 토큰에 대한 고급 암호화를 활성화합니다.

    이 기능은 기본 인증 방법 내에서 제공되며, 여기서 토큰은 일반적으로 기본적으로 Base64 인코딩을 사용하여 암호화됩니다. 그러나 고급 옵션을 사용하면 매우 안전한 HMAC 암호화 방법을 사용하여 토큰을 암호화할 수 있어 매우 높은 수준의 보안이 보장됩니다.


    사용자 자격 증명을 사용한 WordPress REST API 기본 인증 방법

미니오렌지 img 추가 자료

도움이 필요하신가요?

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

안녕하세요!

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

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

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

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