全部產品
Search
文件中心

ID Verification:接入ID Verification- KYC服務

更新時間:Oct 13, 2024

本文介紹如何在應用中接入ID Verification- KYC服務。

前提條件

您已開通ID Verification- KYC服務。具體操作,請參見開通ID Verification- KYC服務

操作步驟

  1. 登入RAM存取控制台,擷取AccessKey。具體操作,請參見建立AccessKey

    您可以根據實際情況,使用阿里雲帳號或者RAM使用者進行相關業務的開發和管理。關於如何建立RAM使用者及相關操作,請參見授權RAM使用者訪問服務

    警告

    阿里雲帳號具有所有雲產品的訪問和控制許可權,一旦泄露將導致極大的安全風險,強烈建議您根據最小許可權原則建立並使用RAM使用者來使用金融級ID Verification服務。

  2. 進行API簽名。具體操作,請參見API簽名機制

  3. 根據業務需要,接入目標產品方案。

API簽名機制

對於每一次HTTP或者HTTPS協議請求,我們會根據訪問中的簽名資訊驗證訪問要求者身份。具體由使用AccessKeyID和AccessKeySecret對稱式加密驗證實現。

  1. 構造正常化請求字串。通過以上步驟得到了正常化請求字串(CanonicalizedQueryString),其結構遵循請求結構的要求。

    1. 參數排序。 將所有公用請求參數按照首字母順序排序。

      說明

      當使用GET方法提交請求時,這些參數就是請求URL中的參數部分,即URL中?之後由&串連的部分。

    2. 參數編碼。 使用UTF-8字元集按照RFC3986規則編碼請求參數和參數取值,編碼規則如下。

      private static final String ENCODING = "UTF-8";
      
      private static String percentEncode(String value) throws UnsupportedEncodingException {
          return value != null
                  ? URLEncoder.encode(value, ENCODING).replace("+", "%20").replace("*", "%2A").replace("%7E", "~")
                  : null;
      }
      說明
      • 不編碼以下內容:字元A~Z、a~z、0~9以及字元-、_、.、~。

      • 其它字元編碼成%XY的格式,其中XY是字元對應ASCII碼的16進位。樣本:半形雙引號(")對應%22。

      • 擴充的UTF-8字元,編碼成%XY%ZA…的格式。

      • 空格( )編碼成%20,而不是加號(+)。該編碼方式與application/x-www-form-urlencodedMIME格式編碼演算法相似,但又有所不同。如果您使用的是Java標準庫中的java.net.URLEncoder,可以先用標準庫中percentEncode編碼,然後將編碼後的字元中加號(+)替換為%20、星號(*)替換為%2A、%7E替換為波浪號(~),即可得到上述規則描述的編碼字串。

    3. 使用等號(=)串連編碼後的請求參數和參數取值。

    4. 使用與號(&)串連編碼後的請求參數,注意參數排序與第1步描述一致。

  2. 建構簽章字串。

    1. 構造待簽名字串StringToSign。您可以同樣使用percentEncode處理上一步構造的正常化請求字串,規則如下。

      String ToSign = HTTPMethod + "&" +  //HTTPMethod:發送請求的 HTTP 方法,例如 GET。
                  percentEncode("/") + "&" +  //percentEncode("/"):字元(/)UTF-8 編碼得到的值,即 %2F。
                  percentEncode(CanonicalizedQueryString);  //您的正常化請求字串。
    2. 按照RFC2104的定義,計算待簽名字串StringToSign的HMAC-SHA1值。樣本中使用的是Java Base64編碼方法。

      Signature = Base64( HMAC-SHA1( AccessSecret, UTF-8-Encoding-Of(StringToSign) ) )
      說明

      計算簽名時,RFC2104規定的Key值是您的AccessKey Secret並加上與號(&),其ASCII值為38。更多資訊,請參見建立AccessKey

    3. 添加根據RFC3986規則編碼後的參數Signature到正常化請求字串URL中。