RESTful 웹서비스 보안

RESTful 웹 서비스에 액세스하려면 인증 및 권한 부여가 필요하도록 역할, 권한 및 OAuth 클라이언트를 정의합니다.

RESTful 웹 서비스를 보호하려면 다음을 수행해야 합니다.

  • 롤 생성

  • 보호할 역할 및 모듈 또는 리소스를 선택하는 권한 생성

OAUTH2 워크플로우를 사용하여 보호된 RESTful 서비스에 대한 액세스를 사용으로 설정하려면 RESTful 서비스 보호를 위해 생성된 롤 및 권한을 사용하여 OAuth 클라이언트를 생성하십시오.

다음 섹션에서는 롤, 권한 및 OAuth 클라이언트를 생성하는 방법에 대한 정보를 제공합니다.

Managing Roles

역할 페이지에서 RESTful 서비스에 대한 역할을 생성, 편집 및 삭제할 수 있습니다.

역할 페이지로 이동하려면 REST 개요 페이지에서 객체의 역할을 누르거나 머리글의 메뉴에서 보안을 선택한 다음 역할을 선택합니다.

컨텍스트 메뉴에서 사용할 수 있는 작업은 다음과 같습니다.

롤 생성

특정 이름으로 역할을 만듭니다. 역할이 생성된 후 권한과 연결할 수 있습니다.

  1. [롤] 페이지에서 롤 생성을 누릅니다.
  2. [역할 이름] 필드에 생성할 역할의 이름을 입력합니다.

    코드 표시: [롤 생성] 슬라이더와 동일한 PL/SQL 코드를 보려면 이 옵션을 선택합니다. 워크시트에서 이 PL/SQL 코드를 복사 및 실행하여 [롤 생성] 슬라이더에서 생성을 누를 때 발생하는 것과 동일한 작업을 수행할 수 있습니다.

  3. 생성을 누릅니다.

    지정된 새 역할이 역할 페이지에 표시됩니다.

역할 편집

이 섹션에서는 롤을 편집하는 방법에 대해 설명합니다.

  1. [롤] 페이지의 특정 역할에 대해 작업 컨텍스트 메뉴에서을 누르고 편집을 선택합니다.
  2. 필요한 변경 사항을 입력하고 저장을 누릅니다.

    필드에 대한 설명은 역할 생성을 참조하십시오.

롤 삭제

이 절에서는 롤을 삭제하는 방법을 설명합니다.

  1. [롤] 페이지의 특정 역할에 대해 작업 컨텍스트 메뉴에서을 누르고 삭제를 선택합니다.

    확인하라는 메시지가 표시됩니다.

  2. 삭제하려면 를 누릅니다.

지정된 권한 보기

이 절에서는 역할과 연관된 권한을 보는 방법에 대해 설명합니다.

역할 페이지의 특정 역할에 대해 작업 컨텍스트 메뉴에서을 누르고 세부정보를 선택합니다. 역할에 지정된 권한이 표시됩니다.

권한 관리

[권한] 페이지에서 RESTful 서비스에 대한 권한을 생성, 편집 및 삭제할 수 있습니다.

권한은 권한으로 보호되는 RESTful 서비스에 액세스하기 위해 인증된 사용자가 소유해야 하는 롤 집합을 정의합니다.

[권한] 페이지로 이동하려면 [REST 개요] 페이지에서 [객체]의 권한을 누르거나 머리글의 메뉴에서 보안을 선택하고 권한을 선택합니다.

카드 보기에 기본적으로 표시되는 권한 속성은 다음 그림에 나와 있습니다.

컨텍스트 메뉴에서 사용할 수 있는 작업은 다음과 같습니다.

권한 생성

이 절에서는 권한을 만드는 방법에 대해 설명합니다.

  1. [권한] 페이지에서 권한 생성을 누릅니다.
  2. 다음 필드를 입력합니다. 별표(*)가 있는 항목은 필수입니다.
    • 레이블: 이해하기 쉬운 방식으로 권한의 이름을 입력합니다.
    • 이름: 권한의 고유한 이름을 입력합니다.
    • 설명: 권한 용도에 대한 간단한 설명을 입력하십시오.
    • 설명: 설명을 입력합니다.
    • 역할: 권한에 지정된 역할을 하나 이상 입력합니다.
    • 보호된 모듈: 보호할 모듈을 선택합니다.
    • 보호된 리소스: 보호된 모듈 대신 [리소스 보호] 탭을 사용하여 URI 패턴을 기반으로 보안을 적용합니다.

    코드 표시: [권한 생성] 슬라이더와 동일한 PL/SQL 코드를 보려면 이 옵션을 선택합니다. 워크시트에서 이 PL/SQL 코드를 복사 및 실행하여 [권한 생성] 슬라이더에서 생성을 누를 때 발생하는 것과 동일한 작업을 수행할 수 있습니다.

  3. 생성을 누릅니다.

    새 권한이 Privileges 페이지에 표시됩니다.

권한 편집

이 섹션에서는 권한을 편집하는 방법에 대해 설명합니다.

  1. [권한] 페이지에서 특정 권한에 대해 작업 컨텍스트 메뉴에서을 누르고 편집을 선택합니다.
  2. 필요한 변경 사항을 적용하고 저장을 누릅니다.

    필드에 대한 설명은 권한 생성을 참조하십시오.

권한 삭제

이 절에서는 권한을 삭제하는 방법을 설명합니다.

  1. [권한] 페이지에서 특정 권한에 대해 작업 컨텍스트 메뉴에서을 누르고 삭제를 선택합니다.
  2. 확인하라는 메시지가 표시됩니다. 를 누릅니다.

OAuth 클라이언트 관리

OAuth 2.0 기반 인증을 사용하여 특정 사용자 또는 클라이언트만 RESTful 웹 서비스에 액세스하도록 할 수 있습니다.

OAuth 2.0은 RESTful API에 대한 조건부 및 제한된 액세스를 제공하기 위한 플로우를 정의하는 표준 인터넷 프로토콜입니다. 자세한 내용은 OAuth-Based Authentication을 참조하십시오.

OAuth 클라이언트 페이지에서 OAuth 클라이언트를 생성, 편집 및 삭제할 수 있습니다.

OAuth 클라이언트 페이지로 이동하려면 REST 개요 페이지에서 객체 또는 헤더의 메뉴에서 클라이언트를 누르고 보안을 선택한 다음 OAuth 클라이언트를 선택합니다.

카드 보기에 기본적으로 표시되는 OAuth 클라이언트 속성은 다음 그림에 나와 있습니다.

OAuth 클라이언트를 생성하려면 OAuth 클라이언트 생성을 참조하십시오.

컨텍스트 메뉴에서 사용할 수 있는 작업은 다음과 같습니다.

OAuth 클라이언트 생성

OAuth 클라이언트를 생성하고 필요한 역할 및 권한을 부여합니다.

  1. OAuth 클라이언트 페이지에서 OAuth 클라이언트 생성을 선택합니다.
  2. 다음 필드를 입력합니다. 별표(*)가 있는 항목은 필수입니다.

    클라이언트 정의

    • 권한 부여 종류: 권한 부여 종류를 선택합니다. 옵션은 Client_Cred, 인증 코드 또는 암시적입니다.

      이러한 권한 부여 유형에 대한 자세한 내용은 Oracle REST Data Services Developer's GuideOAuth Flows를 참조하십시오.

    • 이름: 클라이언트의 이름입니다.
    • 설명: 클라이언트의 용도에 대한 설명입니다.
    • 재지정 URI: OAuth 액세스 토큰 또는 오류를 포함하는 재지정이 전송될 클라이언트 제어 URI를 입력합니다.
    • 지원 URI: 일반 사용자가 클라이언트에 지원을 요청할 수 있는 URI를 입력합니다. 예: http:// www.myclientdomain.com/support/
    • 지원 이메일: 최종 사용자가 지원을 위해 클라이언트에 연락할 수 있는 이메일을 입력합니다.
    • 로고: JPG, BMP 또는 SVG 파일 형식으로 로고를 업로드합니다. 로고의 크기가 100KB 미만인지 확인합니다.
    • 역할: 부여할 롤을 선택합니다.
    • 허용된 출처: URL 접두어 목록을 추가합니다.
    • 권한: 클라이언트가 액세스하려는 권한을 선택합니다.

    코드 표시: [OAuth 클라이언트 생성] 패널에 해당하는 PL/SQL 코드를 보려면 이 옵션을 선택합니다. 워크시트에서 이 PL/SQL 코드를 복사 및 실행하여 [OAuth 클라이언트 생성] 패널에서 생성을 누를 때 발생하는 것과 동일한 작업을 수행할 수 있습니다.

  3. 생성을 누릅니다.

    등록된 OAuth 클라이언트가 OAuth 클라이언트 페이지에 표시됩니다.

    클라이언트 암호의 미리보기가 표시됩니다. 암호는 클라이언트 인증서 및 OAuth 코드 권한 부여 유형에만 적용할 수 있습니다. 표시되는 경우 유일한 인스턴스이므로 암호 값을 복사합니다. 클라이언트 암호를 잊어버린 경우 암호 교체 작업을 사용하여 변경할 수 있습니다. 암호 관리를 참조하십시오.

    클라이언트 ID 값은 OAuth 클라이언트에 대한 암호 인증서를 나타냅니다. 값을 보려면 표시/숨기기 아이콘 표시/숨기기를 누릅니다.

    REST 클라이언트 또는 cURL 명령행 툴을 사용하여 보안된 REST 서비스 끝점을 테스트합니다.

OAuth 클라이언트 편집

이 섹션에서는 OAuth 클라이언트를 편집하는 방법을 설명합니다.

  1. OAuth 클라이언트 페이지의 특정 클라이언트에 대해 작업 컨텍스트 메뉴에서을 누르고 편집을 선택합니다.
  2. 필수 필드를 편집하고 저장을 누릅니다.

    필드에 대한 설명은 OAuth 클라이언트 생성을 참조하십시오.

OAuth 클라이언트 삭제

이 절에서는 OAuth 클라이언트를 삭제하는 방법을 설명합니다.

  1. OAuth 클라이언트 페이지의 특정 클라이언트에 대해 작업 컨텍스트 메뉴에서을 누르고 삭제를 선택합니다.
  2. 확인하라는 메시지가 표시됩니다. 를 누릅니다.

OAuth 클라이언트 익스포트

이 절에서는 OAuth 클라이언트를 익스포트하는 방법에 대해 설명합니다.

  1. OAuth 클라이언트 페이지의 특정 클라이언트에 대해 작업 컨텍스트 메뉴에서을 누르고 익스포트를 선택합니다.
  2. OAuth 클라이언트 패널에서 복사 아이콘 또는 다운로드를 눌러 OAuth 클라이언트 정보를 복사하거나 다운로드합니다.

암호 관리

OAuth 클라이언트에 대한 클라이언트 암호가 생성된 후 필요한 경우 암호를 교체하거나 취소할 수 있습니다. 회전 및 취소 옵션은 특정 OAuth 클라이언트의 컨텍스트 메뉴에서 사용할 수 있습니다.

주:

OAUTH 및 OAUTH_ADMIN PL/SQL 패키지가 더 이상 사용되지 않는 경우(ORDS_SECURITY PL/SQL 패키지 참조 참조), 클라이언트 인증서 및 인증 코드 권한 부여 유형에 대한 OAUTH 클라이언트 암호 생성 프로세스가 변경됩니다.

암호화되지 않은 암호로 만들어진 OAuth 클라이언트의 경우 Legacy 레이블이 카드에 표시됩니다.

클라이언트 암호 교체

기존 암호를 제거하고 새 암호를 만듭니다. 이는 기존 클라이언트 암호 값을 기억할 수 없는 경우에 유용합니다.

  • OAuth 클라이언트에 대한 클라이언트 암호가 존재하는 경우 회전을 눌러 기존 암호를 제거하고 새 클라이언트 암호를 생성합니다.

  • 클라이언트 암호가 취소되고 지정된 암호 값이 없는 경우 등록을 눌러 OAuth 클라이언트에 대한 클라이언트 암호를 생성합니다.

클라이언트 암호 취소

기존 클라이언트 암호를 제거합니다.

기존 클라이언트 세션을 모두 제거하려면 세션 취소를 선택합니다.

이 절에서는 서로 다른 권한 부여 유형의 OAuth 클라이언트를 생성하는 몇 가지 예를 제공합니다.

클라이언트 인증서 권한 부여 유형을 사용하여 OAuth 클라이언트 생성

이 절에서는 클라이언트 인증서 권한 부여 유형을 사용하여 OAuth 클라이언트를 생성하는 방법에 대해 설명합니다.

예제: POST 처리기를 사용하여 레코드 삽입에서 생성된 모듈 "예제"에 대한 OAuth 클라이언트를 생성합니다. RESTful 서비스의 끝점은 http://xyz.us.comp.com:1234/ords/pdbdba/example/emp/입니다.

필요 조건

HR Admin이라는 롤을 생성합니다. Creating a Role를 참조하십시오.

Example.HR이라는 권한을 생성합니다. 권한 생성을 참조하십시오.

  1. OAuth 클라이언트 페이지에서 OAuth 클라이언트 생성을 누릅니다.
  2. 다음 필드를 입력합니다.
    • Grant type 필드에서 CLIENT_CRED를 선택합니다.
    • OAuth 클라이언트에 대한 이름, 설명, 재지정 URI, 지원 URI 및 지원 전자메일을 입력합니다.

    • Roles 탭에서 생성된 롤(HR 관리자)을 추가합니다.

    • Privileges 탭에서 생성된 권한(Example.HR)을 추가합니다.

    • 생성을 누릅니다.

    OAuth 클라이언트 페이지에 새 OAuth 클라이언트 카드가 나타납니다.

  3. cURL을 사용하여 OAuth 인증서 없이 서비스 끝점을 테스트합니다.
    curl --location --request POST --header "Content-Type: application/json" 
    --data '{"DEPTNO": 55, "DEPTNAME": "Sales", "DEPTLOC": "Australia" }' 
    'http://xyz.us.comp.com:1234/ords/pdbdba/example/emp/'

    오류가 표시됩니다.

  4. OAuth 인증서로 끝점을 테스트합니다.
    1. 액세스 토큰을 가져오려면 OAuth 클라이언트 카드의 컨텍스트 메뉴에서 베어러 토큰 가져오기를 선택합니다.

      OAuth 토큰 대화 상자가 나타납니다. 토큰을 복사하려면 클립보드로 복사 클립보드에 복사 아이콘를 사용합니다.

    2. cURL에서 다음 명령문의 Bearer 액세스 토큰을 사용하여 리소스를 요청합니다.

      curl -H "Content-Type: application/json" -H "Authorization: Bearer AMccwlnt99gm9kxDs_w1DA" --location --request POST --data 
      '{"DEPTNO": 55, "DEPTNAME": "Sales", "DEPTLOC": "Australia"}' 'http://xyz.us.comp.com:1234/ords/pdbdba/example/emp/'

    출력은 다음과 같이 표시됩니다.

    {"deptno":55,"dname":"Sales","loc":"Australia","links":[{"rel":"collection",
    "href":"http://xyz.us.comp.com:1234/ords/pdbdba/example/emp/"}]}
  5. SQL 페이지에서 다음 명령문을 사용하여 DEPT 테이블에 삽입된 새 레코드를 확인할 수 있습니다.
    SELECT * FROM DEPT;

인증 코드 권한 부여 유형을 사용하여 OAuth 클라이언트 생성

이 섹션에서는 인증 코드 권한 부여 유형을 사용하여 OAuth 클라이언트를 생성하는 방법에 대해 설명합니다.

  1. OAuth 클라이언트 페이지에서 OAuth 클라이언트 생성을 누릅니다.
  2. 다음 필드를 입력합니다.
    • 권한 부여 유형 필드에서 인증 코드를 선택합니다.
    • OAuth 클라이언트에 대한 이름, 설명, 재지정 URI, 지원 URI지원 전자메일을 입력합니다.

    • 역할 탭에서 관련 역할을 추가합니다.

    • Privileges(권한) 탭에서 관련 권한을 추가합니다.

    • 생성을 누릅니다.

    OAuth 클라이언트 페이지에 새 OAuth 클라이언트 카드가 나타납니다.

  3. OAuth 클라이언트 카드에서 작업 아이콘을 누르고 작업 세부정보를 선택합니다.
    Unique Value 및 Authorization URI가 나타납니다.
  4. Authorization URI 필드에서 새 탭에서 열기 아이콘을 누릅니다. 사인인 링크와 함께 권한이 부여되지 않음 오류 메시지가 표시된 새 창이 표시됩니다.
  5. 사인인을 누르고 로그인 인증서를 다시 입력합니다.
  6. 보호된 URI에 액세스하기 위한 요청을 승인하라는 메시지가 표시됩니다. 승인을 누릅니다.
    요청 통지 승인