保護 RESTful Web 服務

定義角色、權限以及 OAuth 用戶端,以確保存取 RESTful Web 服務時需要認證和授權。

為了保護 RESTful Web 服務,您必須:

  • 建立一個角色

  • 建立選取角色和模組或資源以保護的權限

若要使用 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. 按一下建立

    新權限就會顯示在「權限」頁面上。

編輯權限

本節說明如何編輯權限。

  1. 在「權限」頁面的特定權限中,按一下動作 特性功能表,然後選取編輯
  2. 進行必要的變更,然後按一下儲存

    如需欄位的說明,請參閱建立權限

刪除權限

本節說明如何刪除權限。

  1. 在「權限」頁面的特定權限中,按一下動作 特性功能表,然後選取刪除
  2. 系統會要求您進行確認。按一下「是」。

管理 OAuth 從屬端

使用以 OAuth 2.0 為基礎的驗證,您可以確保只有特定使用者或用戶端才能存取您的 RESTful Web 服務。

OAuth 2.0 是標準的網際網路協定,可定義提供有條件且有限的 RESTful API 存取流程。如需詳細資訊,請參閱 OAuth-Based Authentication

您可以在「OAuth 從屬端」頁面中建立、編輯及刪除「OAuth 從屬端」。

若要瀏覽至「OAuth 從屬端」頁面,請從「REST 總覽」頁面按一下「物件」中的從屬端,或從標頭的功能表中選取安全,然後選取 OAuth 從屬端

卡片檢視中預設顯示的「OAuth 從屬端」屬性如下圖所示。

若要建立 OAuth 從屬端,請參閱建立 OAuth 從屬端

相關內容功能表中可用的動作如下:

建立 OAuth 從屬端

建立「OAuth 從屬端」並授予必要的角色和權限。

  1. 在「OAuth 從屬端」頁面中,選取建立 OAuth 從屬端
  2. 在下列欄位中輸入值。帶有星號 (*) 的欄位為必填欄位:

    從屬端定義頁籤

    • 授權類型:選取授權授權類型。選項包括 Client_Cred、Auth Code 或 Implicit。

      如需有關這些授權類型的詳細資訊,請參閱 Oracle REST Data Services Developer's Guide 中的 OAuth Flows

    • 名稱:從屬端的名稱。
    • 描述:從屬端用途的描述。
    • 重新導向 URI :輸入從屬端控制的 URI,其中將傳送包含 OAuth 存取權杖或錯誤的重新導向。
    • 支援 URI :輸入一般使用者可聯絡用戶端以取得支援的 URI。範例:http:// www.myclientdomain.com/support/
    • 支援電子郵件:輸入一般使用者可聯絡用戶端以取得支援的電子郵件。
    • 標誌:以 JPG、BMP 或 SVG 檔案格式上傳您的標誌。請確定標誌的大小小於 100 KB。
    • 角色:選取要授與的角色。
    • 允許的來源:新增 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 處理程式插入記錄中,為建立的模組 "example" 建立 OAuth 從屬端。RESTful 服務的端點為 http://xyz.us.comp.com:1234/ords/pdbdba/example/emp/。

先決條件

建立名為「HR 管理」的角色。請參閱建立角色

建立名為 Example.HR 的權限。請參閱建立權限

  1. 在「OAuth 從屬端」頁面中,按一下建立 OAuth 從屬端
  2. 在下列欄位中輸入值:
    • 在「授權類型 (Grant type)」欄位中,選取 CLIENT_CRED
    • 輸入您 OAuth 從屬端的名稱、描述、重新導向 URI、支援 URI 以及支援電子郵件。

    • 在「角色」頁標中,新增建立的角色 (「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 用戶端卡的內容功能表中選取取得 Bearer 權杖

      便會顯示「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支援電子郵件

    • 角色頁籤中,新增相關角色。

    • 權限頁籤中,新增相關權限。

    • 按一下建立

    新的 OAuth 從屬端卡就會顯示在「OAuth 從屬端」頁面中。

  3. 在「OAuth 用戶端」卡中,按一下動作圖示,然後選取授權詳細資料
    會出現「唯一值」與「授權 URI」。
  4. 在「授權 URI」欄位中,按一下在新頁籤中開啟圖示。將會顯示一個新視窗,其中包含未授權錯誤訊息以及「登入」連結。
  5. 按一下「登入」,然後再次輸入您的登入認證。
  6. 系統會提示您核准存取受保護 URI 的要求。按一下核准
    核准要求通知