無需函式庫產生租戶令牌

    無需函式庫產生租戶令牌是可行的,但不建議。本指南總結了必要的步驟。

    完整流程需要您建立令牌標頭、準備至少包含一組搜尋規則的資料酬載,然後使用 API 金鑰簽署令牌。

    準備令牌標頭

    令牌標頭必須指定 JWT 類型和加密演算法。支援的租戶令牌加密演算法為 HS256HS384HS512

    {
      "alg": "HS256",
      "typ": "JWT"
    }
    

    建立令牌酬載

    首先,建立一組搜尋規則

    {
      "INDEX_NAME": {
        "filter": "ATTRIBUTE = VALUE"
      }
    }
    

    接下來,找到您的預設搜尋 API 金鑰。查詢取得 API 金鑰端點並檢查 uid 欄位以取得您的 API 金鑰的 UID

    curl \
      -X GET 'https://127.0.0.1:7700/keys/API_KEY' \
      -H 'Authorization: Bearer MASTER_KEY'
    

    為了最大程度的安全性,您還應該為您的租戶令牌設定到期日。以下 Node.js 範例將令牌設定為在其建立後 20 分鐘到期

    parseInt(Date.now() / 1000) + 20 * 60
    

    最後,將酬載的所有部分組合成一個物件

    {
      "exp": UNIX_TIMESTAMP,
      "apiKeyUid": "API_KEY_UID",
      "searchRules": {
        "INDEX_NAME": {
          "filter": "ATTRIBUTE = VALUE"
        }
      }
    }
    

    請參閱令牌酬載參考,以了解有關每個酬載欄位需求的更多資訊。

    編碼標頭和酬載

    然後,您必須將標頭和酬載都編碼為 base64,將它們串連起來,並使用您選擇的加密演算法對其進行簽名以產生令牌。

    使用租戶令牌發出搜尋請求

    簽署令牌後,您可以使用它來執行搜尋查詢,方式與使用 API 金鑰相同。

    curl \
      -X POST 'https://127.0.0.1:7700/indexes/patient_medical_records/search' \
      -H 'Authorization: Bearer TENANT_TOKEN'