使用 API 金鑰進行驗證

本文說明如何設定驗證,以便使用 API 金鑰存取 Google CloudAPI。只有少數 Google Cloud API 會使用 API 金鑰進行驗證,例如 Google 地圖平台。請參閱要使用的服務或 API 的驗證說明文件,確認是否支援 API 金鑰。無論 SAP 系統的代管位置為何,只要您想使用的 API 支援 API 金鑰,就能使用 API 金鑰進行驗證。

如要使用 API 金鑰向 Google Cloud API 進行驗證,請採用下列任一方法:

使用儲存在 SAP SSF 中的 API 金鑰進行驗證

高階設定步驟如下:

建立 API 金鑰

如要使用 API 金鑰進行驗證,您必須建立 API 金鑰。 API 金鑰字串是加密字串,例如 AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe。 ABAP SDK for Google Cloud 會在 HTTP 要求中使用 API 金鑰字串,以便在呼叫 Google Cloud API 時安全地進行驗證。

Google Cloud 提供多種建立 API 金鑰的方式。

如要使用 Google Cloud 控制台建立 API 金鑰,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「憑證」頁面:

    前往「憑證」

  2. 按一下「建立憑證」,然後從選單中選取「API 金鑰」

    • 「建立的 API 金鑰」對話方塊會顯示 API 金鑰字串。 複製金鑰字串並妥善保存。您需要這個 API 金鑰,才能設定 Google Cloud的驗證。

    • 根據預設,API 金鑰不受限制。建議您選取可使用這組 API 金鑰的 API,藉此限制 API 金鑰。如要進一步瞭解如何新增 API 限制,請參閱「新增 API 限制」一文。

在 SSF 中儲存 API 金鑰

ABAP SDK for Google Cloud 提供選項,可使用 SAP Secure Store and Forward 機制 (SSF) 安全地儲存 API 金鑰。

使用 SSF 選項時,您可以將 API 金鑰以加密格式儲存在 /GOOG/APIKEY_BIN 表格中。呼叫 API 時,系統會從 /GOOG/APIKEY_BIN 資料表擷取 API 金鑰、解密,並附加至 API 端點 URI。

基於安全考量,您無法使用標準工具 (例如 SE16SE16NSE11 等交易) 查看 /GOOG/APIKEY_BIN 的內容。

必要條件

如要使用儲存在 SAP SSF 中的 API 金鑰進行驗證,您必須在 SAP 系統中安裝 8.5 以上版本的 SAP Cryptographic Library。如要進一步瞭解 SAP Cryptographic Library,請參閱「1848999 - Central Note for CommonCryptoLib 8 (SAPCRYPTOLIB)」和「397175 - SAP Cryptographic software - export control」。

如要驗證 SAP Cryptographic Library 的版本,請執行下列步驟:

  1. 在 SAP GUI 中,輸入交易代碼 STRUST
  2. 前往「環境」選單,然後按一下「顯示 SSF 版本」

設定 SSF 應用程式

在表格中 SSFAPPLIC,建立新的 SSF 應用程式 ZG_APK,用於加密 API 金鑰。ZG_APK 是預設的 SSF 應用程式名稱。

或者,您也可以使用偏好的名稱建立 SSF 應用程式,或使用名稱不同的現有 SSF 應用程式。如要使用其他 SSF 應用程式進行加密,請在用戶端金鑰表格的 Authorization Parameter 1 中設定 SSF 應用程式名稱。

如要在 SSFAPPLIC 表格中建立新項目,請按照下列步驟操作:

  1. 在 SAP GUI 中,輸入交易代碼 SE16
  2. 在「Table Name」(資料表名稱) 欄位中輸入 SSFAPPLIC,然後建立新項目。
  3. 在「APPLIC」欄位中輸入 ZG_APK
  4. 在下列欄位中指定值。

    欄位
    APPLIC ZG_APK
    B_TOOLKIT 選取旗標。
    B_FORMAT 選取旗標。
    B_PAB 選取旗標。
    B_PROFID 選取旗標。
    B_PROFILE 選取旗標。
    B_HASHALG 請將這個欄位留空。
    B_ENCRALG 請將這個欄位留空。
    B_INCCERTS 請將這個欄位留空。
    B_DETACHED 請將這個欄位留空。
    B_ASKPWD 請將這個欄位留空。
    B_DISTRIB 選取旗標。
    DESCRIPT API Key Encryption for GCP
  5. 儲存新項目。

建立 SSF 參數
  1. 在 SAP GUI 中,輸入交易代碼 SM30

  2. 開啟檢視畫面 VSSFARGS

  3. 針對應用程式 ZG_APK (API Key Encryption for GCP) 建立新項目。系統會自動填入應用程式專屬的 SSF 參數。

  4. 儲存新項目。

建立個人安全環境 (PSE)

  1. 在 SAP GUI 中,輸入交易代碼 STRUST

  2. 在「SSF API Key Encryption for GCP」節點下方,按一下滑鼠右鍵並選取「Create」

  3. 在「演算法」欄位中,選取「RSA」。其他欄位則保留系統填入的預設值。

  4. 儲存新項目。

儲存 API 金鑰

  1. 在 SAP GUI 中執行交易代碼 /GOOG/SDK_IMG

    或者,執行交易代碼 SPRO,然後按一下「SAP Reference IMG」

  2. 依序點選「ABAP SDK for Google Cloud」>「Basic Settings」>「Configure API Key (Using SSF)」

  3. 在「Google Key Name」(Google 金鑰名稱) 中,輸入用戶端金鑰設定的名稱。

  4. 在「API Key」欄位中,輸入您先前在「建立 API 金鑰」中建立的 API 金鑰。

  5. 選取「儲存」

  6. 按一下「執行」即可儲存 API 金鑰。

設定用戶端金鑰

  1. 在 SAP GUI 中執行交易代碼 /GOOG/SDK_IMG

    或者,執行交易代碼 SPRO,然後按一下「SAP Reference IMG」

  2. 依序點選「ABAP SDK for Google Cloud」「Basic Settings」「Configure Client Key」

  3. 按一下「New Entries」

  4. 在下列欄位中輸入值:

    欄位 說明
    Google Cloud 金鑰名稱 指定用戶端金鑰設定的名稱。例如 DEMO_API_KEY
    Google Cloud 服務帳戶名稱 請將這個欄位留空。
    Google Cloud 範圍 指定 API 存取範圍 https://www.googleapis.com/auth/cloud-platform
    專案 ID 指定包含目標 API 的 Google Cloud 專案 ID。
    指令名稱 請將這個欄位留空。
    授權類別 指定授權類別 /GOOG/CL_AUTH_API_KEY_SSF
    權杖快取

    這個旗標會決定是否要快取從 Google Cloud 擷取的存取權杖。

    完成設定並測試與 Google Cloud的連線後,建議您啟用權杖快取。如要進一步瞭解權杖快取,請參閱「啟用權杖快取」。

    權杖更新秒數 指定存取權杖到期前必須重新整理的時間長度 (以秒為單位)。預設值為 3500
    授權參數 1 如果 SSF 應用程式名稱與 ZG_APK 不同,請指定 SSF 應用程式名稱。
    授權參數 2 請將這個欄位留空。
  5. 儲存新項目。

建立新的 RFC 目的地

針對您打算使用 ABAP SDK for Google Cloud 執行的 API,建立新的 RFC 目的地。

如要瞭解如何建立 RFC 目的地,請參閱「RFC 目的地」。

如果未建立及設定 RFC 目的地,ABAP 版 Google Cloud SDK 函式會使用個別 API 用戶端存根中維護的預設 API 端點。

設定服務對應

使用 ABAP SDK for Google Cloud 時,請為您打算使用的 API 設定服務對應表。

  1. 在 SAP GUI 中執行交易代碼 /GOOG/SDK_IMG

    或者,執行交易代碼 SPRO,然後按一下「SAP Reference IMG」

  2. 依序點選「ABAP SDK for Google Cloud」>「Basic Settings」>「Configure Service Mapping」

  3. 按一下「New Entries」

  4. 為您打算使用的 API 指定 RFC 目的地,例如 addressvalidation v1。 如要使用其他 API,請為這些 API 指定 RFC 目的地。

    名稱 服務名稱 RFC 目的地
    Google Cloud 金鑰名稱 addressvalidation:v1 ZGOOG_ADDRVALDN_V1
  5. 儲存新項目。

可刪除 API 金鑰

如果不再使用 API 金鑰,可以從 SAP 系統中刪除該金鑰。

如要刪除 API 金鑰,請按照下列步驟操作:

  1. 在 SAP GUI 中執行交易代碼 /GOOG/SDK_IMG

    或者,執行交易代碼 SPRO,然後按一下「SAP Reference IMG」

  2. 依序點選「ABAP SDK for Google Cloud」>「Basic Settings」>「Configure API Key (Using SSF)」

  3. 在「Google Key Name」(Google 金鑰名稱) 欄位中,輸入用戶端金鑰設定的名稱。

  4. 選取 [刪除]

  5. 按一下「執行」即可刪除 API 金鑰。

使用儲存在 Secret Manager 中的 API 金鑰進行驗證

高階設定步驟如下:

建立 API 金鑰

如要使用 API 金鑰進行驗證,您必須建立 API 金鑰。 API 金鑰字串是加密字串,例如 AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe。 ABAP SDK for Google Cloud 會在 HTTP 要求中使用 API 金鑰字串,以便在呼叫 Google Cloud API 時安全地進行驗證。

Google Cloud 提供多種建立 API 金鑰的方式。

如要使用 Google Cloud 控制台建立 API 金鑰,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「憑證」頁面:

    前往「憑證」

  2. 按一下「建立憑證」,然後從選單中選取「API 金鑰」

    • 「建立的 API 金鑰」對話方塊會顯示 API 金鑰字串。 複製金鑰字串並妥善保存。您需要這個 API 金鑰,才能設定 Google Cloud的驗證。

    • 根據預設,API 金鑰不受限制。建議您選取可使用這組 API 金鑰的 API,藉此限制 API 金鑰。如要進一步瞭解如何新增 API 限制,請參閱「新增 API 限制」一文。

建立密鑰並儲存 API 金鑰

ABAP SDK for Google Cloud 提供選項,可使用 Google Cloud的 Secret Manager 服務安全地儲存 API 金鑰。如要安全地儲存 API 金鑰字串,Secret Manager 可讓您遵循安全使用 API 金鑰的最佳做法

如要建立密鑰並儲存 API 金鑰,請按照下列步驟操作:

  1. 啟用 Secret Manager API。

    前往 API 程式庫

  2. 在 Google Cloud console 中建立密鑰,並將 API 金鑰儲存為最新版本。

    前往 Secret Manager

如要瞭解如何建立密鑰,請參閱「建立密鑰」。

根據預設,ABAP SDK for Google Cloud 只會擷取密鑰的最新版本。

設定 Secret Manager 存取權的用戶端金鑰

Secret Manager API 會使用權杖進行驗證。 因此,您需要根據 SAP 部署作業設定以權杖為基礎的驗證,才能存取 Secret Manager API。

請使用下列任一方法設定權杖式驗證,以便存取 Secret Manager API:

記下您為 Secret Manager 存取權建立的用戶端金鑰名稱。

設定密鑰的用戶端金鑰

  1. 在 SAP GUI 中執行交易代碼 /GOOG/SDK_IMG

    或者,執行交易代碼 SPRO,然後按一下「SAP Reference IMG」

  2. 依序點選「ABAP SDK for Google Cloud」「Basic Settings」「Configure Client Key」

  3. 按一下「New Entries」

  4. 在下列欄位中輸入值:

    欄位 說明
    Google Cloud 金鑰名稱 指定用戶端金鑰設定的名稱。例如 DEMO_API_KEY
    Google Cloud 服務帳戶名稱 請將這個欄位留空。
    Google Cloud 範圍 指定 API 存取範圍 https://www.googleapis.com/auth/cloud-platform
    專案 ID 指定包含目標 API 的 Google Cloud 專案 ID。
    指令名稱 請將這個欄位留空。
    授權類別 指定 /GOOG/CL_AUTH_API_KEY_SM
    權杖快取

    這個旗標會決定是否要快取從 Google Cloud 擷取的存取權杖。

    完成設定並測試與 Google Cloud的連線後,建議您啟用權杖快取。如要進一步瞭解權杖快取,請參閱「啟用權杖快取」。

    權杖更新秒數 指定存取權杖到期前必須重新整理的時間長度 (以秒為單位)。預設值為 3500
    授權參數 1 指定您為 Secret Manager 存取權建立的用戶端金鑰名稱。例如 CLIENT_KEY_SM
    授權參數 2 指定儲存 API 金鑰的密鑰名稱。 例如 TEST_SECRET
  5. 儲存新項目。

建立新的 RFC 目的地

針對您打算使用 ABAP SDK for Google Cloud 執行的 API,建立新的 RFC 目的地。

如要瞭解如何建立 RFC 目的地,請參閱「RFC 目的地」。

如果未建立及設定 RFC 目的地,ABAP 版 Google Cloud SDK 函式會使用個別 API 用戶端存根中維護的預設 API 端點。

設定服務對應

使用 ABAP SDK for Google Cloud 時,請為您打算使用的 API 設定服務對應表。

  1. 在 SAP GUI 中執行交易代碼 /GOOG/SDK_IMG

    或者,執行交易代碼 SPRO,然後按一下「SAP Reference IMG」

  2. 依序點選「ABAP SDK for Google Cloud」>「Basic Settings」>「Configure Service Mapping」

  3. 按一下「New Entries」

  4. 為您打算使用的 API 指定 RFC 目的地,例如 addressvalidation v1。 如要使用其他 API,請為這些 API 指定 RFC 目的地。

    名稱 服務名稱 RFC 目的地
    Google Cloud 金鑰名稱 addressvalidation:v1 ZGOOG_ADDRVALDN_V1
  5. 儲存新項目。

驗證從 Secret Manager 擷取 API 金鑰

如要驗證從 Secret Manager 擷取 API 金鑰的作業,請完成下列步驟:

  1. 在 SAP GUI 中執行交易代碼 /GOOG/SDK_IMG

    或者,執行交易代碼 SPRO,然後按一下「SAP Reference IMG」

  2. 依序點選「ABAP SDK for Google Cloud」>「Utilities」>「Validate API key retrieval (Using Secret Manager)」
  3. 指定用戶端金鑰名稱。
  4. 按一下「執行」,檢查是否已從 Secret Manager 成功擷取 API 金鑰。

驗證驗證設定

如要驗證驗證設定是否就緒,請按照下列步驟操作:

  1. 在 SAP GUI 中執行交易代碼 /GOOG/SDK_IMG

    或者,執行交易代碼 SPRO,然後按一下「SAP Reference IMG」

  2. 依序點選「ABAP SDK for Google Cloud」>「Utilities」>「Validate Authentication Configuration」

  3. 輸入用戶端金鑰名稱。

  4. 按一下 [Execute] (執行)

    「結果」欄中的綠色勾號表示所有設定步驟都已順利完成。

取得支援

如需協助解決 ABAP SDK for Google Cloud 的問題,請按照下列步驟操作: