검색 결과 :

×

WordPress REST API JWT 인증 방법


이 WordPress REST API 엔드포인트 인증 방법에는 JWT(JSON 웹 토큰) 기반 유효성 검사 시 REST API 액세스가 포함됩니다. WordPress REST API 엔드포인트에 대한 액세스 요청이 이루어질 때마다 해당 JWT 토큰에 대해 인증이 수행됩니다. 해당 JWT 토큰의 확인을 기반으로 해당 API 요청에 대한 리소스에 대한 액세스가 허용됩니다. JWT 토큰은 WordPress 사용자 자격 증명을 기반으로 생성되며 고도로 암호화되므로 보안이 손상되지 않습니다.




WordPress Rest API 인증
작성자: miniOrange

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

현장 사진

다운로드 및 설치

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

idp_sso_image1 사용 사례: JWT(JSON 웹 토큰)를 사용하여 WordPress REST API 엔드포인트를 보호/보호하거나 인증합니다.

  • 모바일/웹 애플리케이션이 있고 특정 기능을 가진 사용자만 생성/업데이트 작업을 수행하고 다른 역할을 가진 사용자는 보기만 할 수 있도록 사용자 기능을 기반으로 WordPress REST API 엔드포인트에 대한 액세스를 허용한다고 가정해 보겠습니다. 그런 경우에는 사용자 자격 증명에 따라 얻은 JWT(JSON 웹 토큰)를 사용하여 REST API 엔드포인트를 인증할 수 있으며 WordPress JWT 인증을 사용하면 매우 안전하게 인증할 수 있습니다. 따라서 Authorization 헤더에 전달된 이 JWT를 사용하여 REST API 요청을 하면 리소스/데이터에 대한 액세스가 허용되거나 특정 사용자 기능이 필요한 WordPress 작업을 수행할 수 있는 기능/권한이 제공됩니다. WordPress REST API용 JWT 인증은 HSA 또는 RSA라는 두 가지 방법을 사용하여 토큰 암호화를 제공하며 제한된 시간 동안 유효합니다. 따라서 보안은 문제가 되지 않습니다.


    JWT 인증을 위해 생성된 JWT 토큰은 WordPress 사용자 정보로 구성되므로 다른 애플리케이션의 유효한 비밀 키/공개 인증서를 사용하여 이 토큰을 디코딩하여 해당 애플리케이션에서 사용자를 생성하거나 업데이트된 사용자 정보를 동기화할 수 있습니다. JWT 토큰은 시간 기반 토큰이기도 합니다. 즉, 요구 사항에 따라 설정할 수 있는 특정 기간이 지나면 만료되므로 만료 후에는 API에 액세스할 수 없으며 사용자 정보도 디코딩할 수 없습니다. WordPress REST API용 JWT 인증은 보안 인증 방법입니다.


  • WordPress REST API 인증 흐름은 JWT 방법을 사용하여 달성할 수 있으며 아래에 설명되어 있습니다.
  • WordPress REST API JWT jwt를 이용한 인증 방법

      1. JWT 토큰을 얻기 위해 필요한 모든 매개변수를 사용하여 WordPress REST API 요청이 이루어집니다. 획득한 JWT 토큰은 HSA 또는 RSA 알고리즘을 사용하여 암호화된 형식으로 제공되므로 최고의 보안이 유지됩니다.

      2. 그런 다음 리소스/데이터에 액세스하거나 WordPress 데이터베이스 작업을 수행하기 위한 실제 WordPress REST API 요청은 마지막 단계에서 얻은 JWT 토큰을 사용하여 이루어지며 토큰 유형이 Bearer인 Authorization 헤더에 전달되며 플러그인은 JWT 토큰의 유효성을 검사하고 유효성 검사 또는 인증이 성공하면 API 요청자에게 리소스가 제공되고 그렇지 않으면 오류 응답이 반환됩니다. 따라서 우리 플러그인은 JWT 토큰 공급자와 JWT 토큰 유효성 검사기 역할을 모두 수행합니다.


관련 사용 사례:

  • WordPress REST API 엔드포인트에 JWT 인증 요청을 보내는 방법은 무엇입니까?
  • JWT(JSON 웹 토큰)를 사용하여 WooCommerce/WordPress REST API 인증.

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


REST API JWT 인증 방법 설정


  • 플러그인에서 방법 구성 탭을 탭하세요.
  • 를 클릭하십시오 JWT 인증 API 인증 방법으로.
  • WordPress REST API jwt 인증 방법
  • 선택 토큰 생성 유형 . 기본적으로 HS256 알고리즘과 무작위로 생성된 고유 비밀키를 각각 사용하고 클릭합니다. 다음 보기 오른쪽 상단 모서리에
  • 기능을 테스트하려면 다음을 입력하세요. ID / Username 비밀번호 기존 사용자에 대한 필드입니다.
  • WordPress REST API jwt 인증 방법
  • 를 클릭하십시오 토큰 가져오기 . JWT 토큰(jwt_token)은 GET 요청을 만들기 위해 클립보드에 복사할 수 있는 값을 응답으로 표시합니다.
  • 6단계에서 얻은 JWT 토큰을 붙여넣습니다.
  • 테스트 구성 그러면 응답이 화면에 표시됩니다.
  • 클릭 마감재 버튼을 클릭합니다.
  • WordPress REST API jwt 인증 방법

  • 여기서는 두 가지 API 호출을 수행해야 합니다.

I : JWT 토큰 받기

  • JWT 토큰을 얻으려면 아래와 같이 토큰 엔드포인트에 대한 REST API 호출을 수행해야 합니다.
  • Request:POST https://<domain-name>/wp-json/api/v1/token
    Body:username = <wordpress username>
    password = <wordpress password>
    
    Sample curl Request Format-
    curl -d "username=<wordpress_username>&password=<wordpress_password>"
    -X POST http://<wp_base_url>/wp-json/api/v1/token
    

    이 API 엔드포인트라고도 합니다. 사용자 인증 API 또는 WordPress 로그인 API 엔드포인트 따라서 WordPress 사용자 자격 증명을 사용하여 이 끝점에 요청하고 자격 증명이 유효한 경우 JWT 토큰이 포함된 성공적인 응답이 반환되고 그렇지 않으면 그에 따라 오류 응답이 표시됩니다.

  • 확인 오류 응답 JWT 토큰을 얻기 위한 것입니다.

II : API 요청 보내기

  • JWT 토큰을 받으면 이를 사용하여 아래와 같이 WordPress REST API에 대한 액세스를 요청할 수 있습니다.
  • Request: GET  https://<domain-name>/wp-json/wp/v2/posts
    Header: Authorization : Bearer <JWT token>
    
    Sample curl Request Format-
    curl -H "Authorization:Bearer <jwt_token >"
    -X GET http://<wp_base_url>/wp-json/wp/v2/posts
    
  • 알림: 위 토큰은 기본적으로 1시간 동안 유효하며 사용자 정의도 가능합니다. 토큰이 만료되면 다시 생성할 수 있습니다.
  • 확인 개발자 문서 자세한 내용은.
  • 확인 오류 응답 JWT 토큰으로 API를 만들기 위한 것입니다.

  • 축하해요! miniOrange WordPress REST API 인증 방법을 사용하여 REST API 호출에 대한 JWT 인증 방법을 성공적으로 구성했습니다.

    미니오렌지 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", "Bearer < jwt_token >");    
    IRestResponse response = client.Execute(request);
    Console.WriteLine(response.Content);
    
     
      OkHttpClient client  = new OkHttpClient().newBuilder().build();
      Request request  = new Request.Builder()
      .url("http://<wp_base_url>/wp-json/wp/v2/posts ")
      .method("GET", null)
      .addHeader = ("Authorization", "Bearer < jwt_token >")    
       .build();
      Response response= client.newCall(request).execute();
              
     
      var settings  = {
          "url": "http://<wp_base_url>/wp-json/wp/v2/posts ",
          "method": "GET",
          "timeout": 0,
          "headers": {
              "Authorization": "Bearer < jwt_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: Bearer < jwt_token >'
              ),
              ));          
            
      $response = curl_exec($curl);
      curl_close($curl);    
      echo $response;
              
     
      import http.client
    
      conn = http.client.HTTPSConnection("<wp_base_url>")
      payload= "
      headers = {
          'Authorization': 'Bearer < jwt_token >'
      }
      conn.request("GET", "/wp-json/wp/v2/posts ", payload, headers)
      res= conn.getresponse()    
      data = res.read()    
      print (data.decode("utf-8"))   
    

    idp_sso_image1 우편 배달부 샘플:

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

    • 온 클릭 우편 배달부 샘플 플러그인의 탭.
    • WordPress REST API JWT 인증 방법 우편 배달부 구현
    • A JSON 파일 자동으로 다운로드됩니다.
    • WordPress REST API JWT 인증 방법 우편 배달부 JSON 파일
    • 다운로드한 것을 가져옵니다. JSON 파일 아래와 같이 Postman 애플리케이션에 추가합니다.
    • JWT 토큰을 얻기 위한 REST API 요청
      • json 파일을 가져온 후, 아래에 있는 REST API 요청을 클릭하세요. Collections 마지막 그림과 같이. 교체 귀하의 WordPress 도메인을 http://<wp_base_url>/wp-json/wp/v2/posts 교체 WordPress 사용자 이름 및 본문 매개변수에 WordPress 비밀번호를 사용하세요.
      • WordPress REST JWT 인증 방법 우편 배달부 기본 URL 교체
      • WordPress REST JWT 인증 방법 우편 배달부 기본 URL 교체 예
      • 알림: 응답에서 얻은 jwt 토큰을 복사합니다. 인증을 위해 리소스 API 요청에 사용됩니다.
    • 실제 리소스를 얻기 위한 REST API 요청
      • json 파일을 가져온 후, 아래에 있는 REST API 요청을 클릭하세요. Collections 마지막 그림과 같이. 교체 귀하의 WordPress 도메인을 http://<wp_base_url>/wp-json/wp/v2/posts 교체 토큰 요청 후 얻은 응답에서 복사된 jwt 토큰을 사용합니다.
      • WordPress REST JWT 인증 방법 우편 배달부 기본 URL 실제 리소스 교체
      • WordPress REST API JWT 인증 방법 우편 배달부 URL 실제 리소스 교체

    idp_sso_image1 기능 설명

      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. JWT 기반 토큰에 대한 서명 검증

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

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

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

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

      도움이 필요하신가요?

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

    안녕하세요!

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

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

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

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