검색 결과 :

×

WordPress REST API OAuth 2.0 인증 방법


OAuth 2.0 API에 대한 액세스를 인증하는 데 가장 많이 선택되는 방법입니다. OAuth 2.0을 사용하면 사용자의 이메일 주소나 비밀번호를 외부 애플리케이션에 제공하지 않고도 인증이 가능합니다. 이 WordPress REST API OAuth 2.0 인증 방법에는 보안 액세스 토큰 또는 ID 토큰(JWT 토큰)을 얻기 위해 OAuth 2.0 프로토콜 흐름을 사용하는 작업이 포함되며 해당 토큰은 WordPress REST API 끝점을 인증하는 데 사용됩니다. WordPress REST API 엔드포인트에 대한 액세스 요청이 이루어질 때마다 해당 액세스 토큰/ID 토큰(JWT 토큰)에 대한 인증이 수행되며 해당 API Bearer 토큰의 확인을 기반으로 해당 API에 대한 리소스가 수행됩니다. 요청에 대한 액세스가 허용됩니다.

WordPress REST API OAuth 2.0 워크플로

OAuth 2.0 인증 방법을 사용하여 제공되는 토큰은 고도로 암호화되고 안전하므로 보안이 손상되지 않습니다. WordPress REST API 엔드포인트를 인증/보호하는 가장 안전한 방법입니다. 이 방법은 JWT 인증 방법과 다소 유사하지만 OAuth 2.0 프로토콜의 다양한 이점으로 인해 훨씬 ​​더 안전합니다.


WordPress Rest API 인증
작성자: miniOrange

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

현장 사진

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

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

idp_sso_image1 활용 사례: OAuth 2.0 인증 방식으로 REST API 보호

    1. 비밀번호 부여:

    사용 사례: WordPress 사용자를 등록하거나 WordPress REST API를 통해 WordPress 자격 증명을 기반으로 외부 플랫폼에서 사용자를 인증/로그인합니다.

      애플리케이션에 로그인 양식이 있고 WordPress 로그인 자격 증명을 기반으로 사용자를 인증하고 싶다면 REST API 방식의 OAuth 2.0 인증이 이를 달성하는 데 도움이 될 것입니다. 플러그인은 WordPress 로그인 API를 제공합니다. 해당 사용자의 WordPress 자격 증명을 이 API에 쉽게 전달할 수 있으며 유효성 검사를 기반으로 인증 및 응답을 받게 됩니다.
      또한 REST API 방식으로 OAuth 2.0 인증을 구현하면 WordPress 사용자의 관리자 자격 증명을 사용하여 WordPress에 사용자를 등록할 수도 있습니다. 플러그인 OAuth 2.0 토큰 엔드포인트를 사용하면 생성된 토큰에 관리 권한이 필요한 관리자 기능이 있는 WordPress 사용자 자격 증명을 전달하여 관리 권한이 필요한 사용자 등록과 같은 작업을 수행할 수 있습니다. 토큰이 있으면 wordPress '/users' API와 함께 이 토큰을 사용하여 REST API 요청을 통해 WordPress에 사용자를 등록할 수 있습니다.

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

    사용 사례: WordPress REST API 엔드포인트를 안전하게 인증/보호하거나 관리자 자격 증명을 사용하지 않고 WordPress에 사용자를 등록합니다.

      WordPress 사용자 자격 증명을 전달하지 않고 WordPress REST API에 액세스하려는 경우 또는 WordPress의 관리자 사용자 자격 증명을 전달하지 않고 대신 플러그인에서 제공하는 클라이언트 자격 증명을 전달하지 않고 WordPress에 사용자를 안전하게 등록하려는 경우 이 방법은 다음과 같습니다. 사용자 자격 증명이 손상될 가능성이 없는 완벽한 솔루션입니다.
      플러그인은 토큰을 기반으로 WordPress REST API 엔드포인트를 인증하기 위해 토큰 및 REST API 인증자를 제공하는 OAuth 2.0 ID 공급자(서버) 역할을 합니다. 따라서 토큰을 얻기 위한 최고의 보안을 제공하며 해당 토큰을 사용하여 REST API 요청을 인증할 수 있습니다.

  • REST API 메서드에서 OAuth 2.0 인증 메서드를 구현하는 흐름은 아래에 설명되어 있습니다.
    • 1. 플러그인에 대한 토큰을 얻기 위해 적절한 매개변수를 사용하여 REST API 요청이 이루어집니다. 우리 플러그인은 OAuth 2.0 ID 공급자 역할을 하며 액세스 토큰을 제공합니다.

      2. 리소스에 액세스하기 위한 실제 REST API 요청은 토큰 유형이 Bearer인 Authorization 헤더에 전달된 마지막 단계에서 받은 액세스 토큰을 사용하여 수행됩니다. 이제 플러그인은 토큰 유효성을 기반으로 API를 인증하는 인증자 역할을 합니다. 토큰이 성공적으로 검증되면 API 요청자는 리소스에 액세스할 수 있으며 실패한 검증에서는 오류 응답이 반환됩니다.

idp_sso_image1 관련 사용 사례:

  • WordPress REST API를 사용하여 사용자를 로그인하거나 등록하는 방법은 무엇입니까?
  • API를 사용하여 WordPress 사용자를 인증하는 방법은 무엇입니까?

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

idp_sso_image1 비밀번호 부여를 사용하는 WordPress REST API OAuth 2.0:

  • 플러그인에서 구성으로 이동하세요. API 인증 탭을 클릭하고 OAuth 2.0 인증 API 인증 방법으로.
  • 선택 OAuth 2.0 부여 비밀번호 부여로 입력하세요.
  • 이제 액세스 토큰 또는 JWT 토큰과 같은 토큰 유형을 선택할 수 있습니다.
    액세스 토큰은 JWT 토큰 또는 ID 토큰이 토큰이 생성된 사용자 정보로 인코딩된 JWT 표준에 따라 형성되는 동안 생성된 사용자와 연결된 임의의 문자열입니다. 이 토큰은 해당 키를 사용하여 디코딩할 수 있으며 사용자 세부 정보를 구문 분석할 수 있습니다. 따라서 이 토큰은 나중에 사용자 WP 프로필 정보를 가져와야 하는 경우에 권장됩니다.
  • WordPress REST API OAuth 2.0 인증 방법
  • 이제 클릭하십시오. 구성 저장 버튼을 눌러 OAuth 2.0 인증 설정을 저장하고 이 인증 방법을 활성화하여 WordPress REST API 엔드포인트를 보호하세요.
  • 당신이 클릭하면 구성 저장, 클라이언트 ID, 클라이언트 비밀 및 토큰 끝점(보안 토큰을 받기 위해 API 호출이 이루어져야 하는 끝점)을 얻게 됩니다.
  • 이제 플러그인 설정 부분이 성공적으로 완료되었습니다. 다음은 WordPress REST API에 액세스하기 위해 실제 보안 액세스/JWT 토큰을 얻고 추가로 사용하는 부분입니다.

  • 이제 두 가지 호출을 해야 합니다.
  • 나 : 토큰 받기

    • 액세스 토큰/JWT 토큰을 얻으려면 아래와 같이 플러그인에서 제공하는 OAuth 2.0 토큰 엔드포인트에 대한 API 호출을 수행해야 합니다.
    • 
      Request: POST https://<domain-name>/wp-json/api/v1/token
      Body:
      grant_type =<password>
      username =<wordpress username>
      password = <wordpress password>
      client_id =<client id>
      
      Sample curl Request Format-
      curl -d "grant_type=password&username=<wordpress_username>&password=<wordpress_password>&client_id=<client_id>"
      -X POST http://<wp_base_url>/wp-json/api/v1/token
      
    • 새로 고침 토큰 사용
    • 
      Request: POST  https://<domain-name>/wp-json/api/v1/token
      Body:
      grant_type = <refresh_token>
      refresh_token =  <Refresh Token>
      
      Sample curl Request Format-
      curl -d "grant_type=refresh_token&refresh_token=<refresh_token>&client_id=<client_id>&client_secret=<client_secret>"
      -X POST http://<wp_base_url>/wp-json/api/v1/token
      

    II : 실제 WordPress REST API 요청 보내기

    • OAuth 2.0 비밀번호 부여 흐름을 사용하여 access_token / id_token(JWT 토큰)을 얻으면 이를 사용하여 아래와 같이 WordPress REST API 엔드포인트에 대한 액세스를 요청할 수 있습니다.
    • 
      Request: GET https://<domain-name>/wp-json/wp/v2/posts
      Header: Authorization :Bearer <access_token /id_token>
      
    • 알림: 위 토큰은 기본적으로 1시간 동안 유효합니다. 만료 시간 전에 여러 REST API 요청에 대해 동일한 토큰을 여러 번 사용할 수 있습니다. 토큰이 만료되면 WordPress REST API 엔드포인트 액세스를 요청하기 위해 새 토큰을 생성해야 합니다.
  • 확인 오류 응답 비밀번호 부여를 사용하는 OAuth 2.0의 경우.

idp_sso_image1 클라이언트 자격 증명 부여를 사용하는 WordPress REST API OAuth 2.0:

  • 플러그인에서 구성으로 이동하세요. API 인증 탭을 클릭하고 OAuth 2.0 인증 API 인증 방법으로.
  • 이제 선택 OAuth 2.0 부여 클라이언트 자격 증명 부여로 입력합니다.
  • WordPress REST API OAuth 2.0 jwt를 이용한 인증 방법
  • 구성 저장을 클릭하면 고객 ID, 고객 비밀토큰 엔드포인트.
  • 여기서는 두 가지 호출을 해야 합니다.
  • 나 : 토큰 받기

    • 위 구성을 저장하면 클라이언트 ID, 클라이언트 비밀 및 토큰 엔드포인트를 얻을 수 있습니다.
    • 토큰을 얻으려면 아래와 같이 토큰 요청을 보내야 합니다.
    • 
      Request: POST https://<domain-name>/wp-json/api/v1/token
      Body:
      grant_type = <client_credentials>
      client_id = <client id>
      client_secret = <client secret>
      
      Sample curl Request Format-
      curl -d "grant_type=client_credentials&client_id=<client_id>&client_secret=<client_secret>"
      -X POST http://<wp_base_url>/wp-json/api/v1/token
      
    • 새로 고침 토큰 사용
    • 
      Request: POST https://<domain-name>/wp-json/api/v1/token
      Body:
      grant_type = <refresh_token>
      refresh_token = <Refresh Token>
      
      Sample curl Request Format-
      curl -d "grant_type=refresh_token&refresh_token=<refresh_token>&client_id=<client_id>&client_secret=<client_secret>"
      -X POST http://<wp_base_url>/wp-json/api/v1/token
      

    II : API 요청 보내기

    • OAuth 2.0 클라이언트 자격 증명으로 access_token / id_token을 얻으면 이를 사용하여 아래와 같이 WordPress REST API 엔드포인트에 대한 액세스를 요청할 수 있습니다.
    • 
      Request: GET https://<domain-name>/wp-json/wp/v2/posts
      Header: Authorization : Bearer <access_token /id_token>
    • 알림: 위 토큰은 기본적으로 1시간 동안 유효합니다. 만료 시간 전에 여러 REST API 요청에 대해 동일한 토큰을 여러 번 사용할 수 있습니다. 토큰이 만료되면 WordPress REST API 엔드포인트 액세스를 요청하기 위해 새 토큰을 생성해야 합니다.
  • 확인 오류 응답 클라이언트 자격 증명 부여를 사용하는 OAuth 2.0의 경우.
  • 확인 개발자 문서 자세한 내용은.

추가 보안 기능

이 방법은 토큰에 대한 더 많은 제어권을 갖고 웹사이트의 보안을 강화할 수 있는 추가 보안 시설을 제공합니다.

1. 리프레시 토큰 -

WordPress REST API OAuth 2.0 인증 새로 고침 토큰
토큰 엔드포인트 요청에서 액세스 토큰 또는 JWT 토큰과 함께 새로 고침 토큰인 문자열을 받으려는 경우 이 옵션을 활성화할 수 있습니다. 이를 통해 사용자는 이전에 부여된 것과 동일한 리소스에 액세스할 수 있습니다. 새 토큰이 생성되면 사용자는 원래 부여된 권한 이상으로 액세스할 수 없습니다. 새로 고침 토큰을 사용하면 권한 부여 서버가 토큰 만료 시 사용자를 개입시킬 필요 없이 액세스 토큰에 대해 짧은 기간(수명)을 사용할 수 있습니다. 이 토큰을 사용하면 보안을 강화하기 위해 곧 만료될 예정인 액세스 토큰/JWT 토큰을 다시 생성할 수 있습니다.

2. 토큰 취소 -

WordPress REST API OAuth 2.0 인증 취소 토큰
이 옵션을 활성화하면 기존 액세스 토큰/JWT 토큰을 취소하여 유효하지 않게 만들 수 있으므로 특정 토큰을 사용하여 WP REST API를 인증할 수 없습니다. RESTful API는 먼저 애플리케이션 자격 증명의 유효성을 검사하고 토큰이 취소 요청을 하는 애플리케이션에 발급되었는지 여부를 확인합니다. 유효성 검사에 성공하지 못한 경우 특정 요청이 거부되고 애플리케이션에 오류가 표시됩니다. API는 토큰을 무효화하며 취소 후에는 토큰을 다시 사용할 수 없습니다. 각 취소 요청은 동일한 유형의 승인 부여에 대해 발급된 토큰을 무효화합니다.

idp_sso_image1 프로그래밍 언어의 코드 샘플



 
    var client = new RestClient("http://<wp_base_url>/wp-json/api/v1/token ");
	client.Timeout = -1;
	var request = new RestRequest(Method.POST);
	request.AlwaysMultipartFormDatatrue;    
    request.AddParameter("grant_type", "client_credentials");
    request.AddParameter("client_id", "<client_id>");     
    request.AddParameter("client_secret", "<client_secret>");
	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("grant_type", "client_credentials");
    .addFormDataPart("client_id", "<client_id>");     
    .addFormDataPart("client_secret", "<client_secret>");
     .build();
    Request request  = new Request.Builder()  
    .url("http://<wp_base_url>/wp-json/api/v1/token ")
    .method("POST", null)
     .build();
    Response responseclient.newCall(request).execute();
            
 
    var form = new FormData();
    form.append("grant_type", "client_credentials");
    form.append("client_id", "<client_id>");     
    form.append("client_secret", "<client_secret>");

    var settings  = {
        "url": "http://<wp_base_url>/wp-json/api/v1/token ",
        "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/api/v1/token',
            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('grant_type' => 'client_credentials','client_id' => '<client_id>','client_secret' => '<client_secret>'),
  
            ));          
          
    $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=grant_type;'))    
    
    dataList.append(encode('Content-Type: {}'.format('text/plain')))    
    dataList.append(encode(''))    
    
    dataList.append(encode("client_credentials"))
    dataList.append(encode('--' + boundary))    
    dataList.append(encode('Content-Disposition: form-data; name=client_id;'))    
    
    dataList.append('Content-Type: {}'.format('text/plain')))
    dataList.append(encode(''))    
    
    dataList.append(encode("<client_id>"))    
    dataList.append(encode('--'+ boundary))    
    dataList.append(encode('Content-Disposition: form-data; name=client_secret;'))
    
    dataList.append(encode('Content-Type: {}'.format('text/plain')))
    dataList.append(encode(''))
    
    
    dataList.append(encode("<client_secret<"))    
    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/api/v1/token ", payload, headers)
    res= conn.getresponse()    
    data = res.read()    
    print (data.decode("utf-8"))   
 


 
    var client = new RestClient("http://<wp_base_url>/wp-json/api/v1/token ");
	client.Timeout = -1;
	var request = new RestRequest(Method.POST);
	request.AlwaysMultipartFormDatatrue;    
    request.AddParameter("grant_type", "refresh_token");
    request.AddParameter("client_id", "<client_id>");     
    request.AddParameter("client_secret", "<client_secret>");
    request.AddParameter("refresh_token", "<refresh_token>");
	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("grant_type", "refresh_token");
    .addFormDataPart("client_id", "<client_id>");     
    .addFormDataPart("client_secret", "<client_secret>");
    .addFormDataPart("refresh_token", "<refresh_token>");
     .build();
    Request request  = new Request.Builder()  
    .url("http://<wp_base_url>/wp-json/api/v1/token ")
    .method("POST", null)
     .build();
    Response responseclient.newCall(request).execute();
            
 
    var form = new FormData();
    form.append("grant_type", "refresh_token");
    form.append("client_id", "<client_id>");     
    form.append("client_secret", "<client_secret>");
    form.append("refresh_token", "<refresh_token>");
    
    var settings  = {
        "url": "http://<wp_base_url>/wp-json/api/v1/token ",
        "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/api/v1/token',
            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('grant_type' => 'refresh_token','client_id' => '<client_id>','client_secret' => '<client_secret>','refresh_token' => '<refresh_token>'),

            ));          
          
    $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=grant_type;'))    
    
    dataList.append(encode('Content-Type: {}'.format('text/plain')))    
    dataList.append(encode(''))    
    
    dataList.append(encode("refresh_token"))
    dataList.append(encode('--' + boundary))    
    dataList.append(encode('Content-Disposition: form-data; name=client_id;'))    
    
    dataList.append('Content-Type: {}'.format('text/plain')))
    dataList.append(encode(''))    
    
    dataList.append(encode("<client_id>"))    
    dataList.append(encode('--'+ boundary))    
    dataList.append(encode('Content-Disposition: form-data; name=client_secret;'))
    
    dataList.append(encode('Content-Type: {}'.format('text/plain')))
    dataList.append(encode(''))
    
    dataList.append(encode("<client_id>"))    
    dataList.append(encode('--'+ boundary))    
    dataList.append(encode('Content-Disposition: form-data; name=refresh_token;'))    

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

    dataList.append(encode("<refresh_token<")) 
    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/api/v1/token ", payload, headers)
    res= conn.getresponse()    
    data = res.read()    
    print (data.decode("utf-8"))   
 

idp_sso_image1 우편 배달부 샘플:

a) OAuth 2.0 비밀번호 부여 방법:

  • 토큰 획득을 위한 샘플 요청:
  • 우편 배달부 요청 샘플은 다음에서 다운로드할 수 있습니다. 여기에서 지금 확인해 보세요..
  • 이제 추출 zip 파일 추출된 json 파일을 postman 애플리케이션으로 가져옵니다.
  • WordPress REST API OAuth 2.0 인증 방법 우편 배달부 구현
  • WordPress REST API OAuth 2.0 인증 방법 우편 배달부 URL 실제 리소스 교체
  • 마지막 단계에서 얻은 토큰을 사용하여 리소스를 요청하는 샘플 요청 형식입니다.
  • 우편 배달부 요청 샘플은 다음에서 다운로드할 수 있습니다. 여기에서 지금 확인해 보세요..
  • 이제 zip 파일을 추출하고 추출된 json 파일을 postman 애플리케이션으로 가져옵니다.
  • WordPress REST API OAuth 2.0 인증 방법 우편 배달부 구현
  • WordPress REST API OAuth 2.0 인증 방법 우편 배달부 URL 실제 리소스 교체

b) OAuth 2.0 클라이언트 자격 증명 부여 방법:

  • 토큰 획득을 위한 샘플 요청:
  • 우편 배달부 요청 샘플은 다음에서 다운로드할 수 있습니다. 여기에서 지금 확인해 보세요..
  • 이제 zip 파일을 추출하고 추출된 json 파일을 postman 애플리케이션으로 가져옵니다.
  • WordPress REST API OAuth 2.0 인증 방법 우편 배달부 구현
  • WordPress REST API OAuth 2.0 인증 방법 우편 배달부 URL 실제 리소스 교체

c) 실제 리소스를 얻기 위한 REST API 요청:

  • 우편 배달부 요청 샘플은 다음에서 다운로드할 수 있습니다. 여기에서 지금 확인해 보세요..
  • 이제 zip 파일을 추출하고 추출된 json 파일을 postman 애플리케이션으로 가져옵니다.
  • WordPress REST API OAuth 2.0 인증 방법 우편 배달부 구현
  • WordPress REST API OAuth 2.0 인증 방법 우편 배달부 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 기본 인증 방법 우편 배달부 구현

도움이 필요하신가요?

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


안녕하세요!

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

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

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

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