日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

CreateAccount - 創建用戶名密碼

更新時間:

開源客戶端訪問云消息隊列 RabbitMQ 版服務端時,需要傳入用戶名和密碼進行權限認證,認證通過才允許訪問服務端。云消息隊列 RabbitMQ 版支持通過阿里云訪問控制(RAM)的AccessKey和AccessKey Secret生成用戶名和密碼。

接口說明

背景信息

開源客戶端訪問云消息隊列 RabbitMQ 版服務端時,需要傳入用戶名和密碼進行權限認證,認證通過才允許訪問服務端。 云消息隊列 RabbitMQ 版支持通過阿里云訪問控制(RAM)的 AccessKey 和 AccessKey Secret 生成用戶名和密碼。

注意事項

  • 創建靜態用戶名密碼所屬的實例需處于服務中狀態。
  • 一個實例下的 AccessKey 和靜態用戶名密碼一一對應,即一個實例下的一個 AccessKey 只能創建一個靜態用戶名密碼。
  • 如果需要更新靜態用戶名密碼,您可以刪除該靜態用戶名密碼后重新創建。

用戶名計算示例代碼

請求參數中的 userName 的參數值,需要由實例 ID 和 AccessKey ID 構造字符串并進行 Base64 編碼得出。具體的計算方法如下:

    public class Base64Utils {
         public static final Charset UTF8 = Charset.forName("UTF-8");
         /\*\*
         *解碼 base64 字符串
         \* @param str
         \* @return
         \*/
         public static String decode(String str) {
              return new String(Base64.getDecoder().decode(str.getBytes(UTF8)), UTF8);
         }
        
         public static String encode(String bytes) {
              return new String(Base64.getEncoder().encode(bytes.getBytes(UTF8)), UTF8);
          }

         public static void main(String[] args) {
              String example = "this is a example";
              System.out.println(encode(example));
              System.out.println(decode(encode(example)));

        }
        public static void main(String[] args) {
              //使用您的實例 ID 以及購買該實例的賬號 AK,組成字符串。
              String str = "2:${instanceId}:${ak}";

              //生成 API 使用的 userName。
              String userName = encode(example);
              System.out.println("userName=" + userName);

              String decodeStr = decode(userName);
              System.out.println("originStr=" + decodeStr);
        }
    }

簽名算法示例代碼

請求參數中 signature 和 secretSign 的參數值,需要由指定的靜態用戶名的創建時間戳和 AccessKey Secret 進行加密算法計算得出。具體的算法和示例代碼如下:

public static String hamcsha1(byte[] data, byte[] key) throws NoSuchAlgorithmException, InvalidKeyException {
        SecretKeySpec signingKey = new SecretKeySpec(key, "HmacSHA1");
        Mac mac = Mac.getInstance("HmacSHA1");
        mac.init(signingKey);
        return byte2hex(mac.doFinal(data));
    }

    public static String byte2hex(byte[] b) {
        StringBuilder hs = new StringBuilder();
        String stmp;
        for (int n = 0; b != null && n < b.length; n++) {
            stmp = Integer.toHexString(b[n] & 0XFF);
            if (stmp.length() == 1) {
                hs.append('0');
            }
            hs.append(stmp);
       } 
       return hs.toString().toUpperCase();
    }
     public static void main(String[] args) throws InvalidKeyException, NoSuchAlgorithmException {
          //createTimestamp 即是 API 的 createTimestamp 參數。
         String createTimestamp = String.valueOf(System.currentTimeMillis());
         System.out.println("timestamp:" + createTimestamp);

          //您賬號的 sk。
         String sk = "${sk}";

          //生成 API 使用的 SecretSign。
         String SecretSign = hamcsha1(sk.getBytes(), timestamp.getBytes());
         System.out.println("SecretSign:" + SecretSign);

          //生成 API 使用的 signature。
         String signature = hamcsha1(timestamp.getBytes(), sk.getBytes());
         System.out.println("signature:" + signature);
    }

調試

您可以在OpenAPI Explorer中直接運行該接口,免去您計算簽名的困擾。運行成功后,OpenAPI Explorer可以自動生成SDK代碼示例。

授權信息

下表是API對應的授權信息,可以在RAM權限策略語句的Action元素中使用,用來給RAM用戶或RAM角色授予調用此API的權限。具體說明如下:

  • 操作:是指具體的權限點。
  • 訪問級別:是指每個操作的訪問級別,取值為寫入(Write)、讀取(Read)或列出(List)。
  • 資源類型:是指操作中支持授權的資源類型。具體說明如下:
    • 對于必選的資源類型,用背景高亮的方式表示。
    • 對于不支持資源級授權的操作,用全部資源表示。
  • 條件關鍵字:是指云產品自身定義的條件關鍵字。
  • 關聯操作:是指成功執行操作所需要的其他權限。操作者必須同時具備關聯操作的權限,操作才能成功。
操作訪問級別資源類型條件關鍵字關聯操作
amqp:GetInstancecreate
  • Instance
    acs:amqp:{#regionId}:{#accountId}:/instances/{#instanceId}
  • amqp:FetchStaticAccount

請求參數

名稱類型必填描述示例值
instanceIdstring

消息隊列 RabbitMQ 版實例的 ID,表示您需要為哪個實例創建靜態用戶名密碼。

amqp-cn-*********
accountAccessKeystring

您的阿里云賬號或 RAM 用戶的 AccessKey ID。獲取方式,請參見創建 AccessKey

說明 如果您使用 RAM 用戶的 AccessKey 創建的靜態用戶名密碼接入消息隊列 RabbitMQ 版并收發消息,請確保該 RAM 用戶已被授予收發消息權限。更多信息,請參見 RAM 權限策略
LTAI5t8be*******tEJ6vfo
userNamestring

待創建的靜態用戶名。

該參數值由實例 ID 和 AccessKey ID 構造的字符串經過 Base64 編碼得出,具體計算方法,請參見本文中的用戶名計算示例代碼

LTAI5***********eRZtEJ6vfo
signaturestring

簽名,系統將根據請求參數中的簽名、AccessKey Secret 簽名和用戶名計算出靜態用戶密碼。

簽名由指定的用戶名創建時間戳和 AccessKey ID 進行 HmacSHA1 加密算法計算得出。具體計算方法,請參見本文中的簽名算法示例代碼

22c2d7d1769cb53c5a6d9213248e2de524******
createTimestamplong

指定該用戶名密碼創建的時間戳。單位:毫秒。

說明 該時間戳用于計算靜態用戶密碼,由您自定義設置。不是系統生成用戶名密碼時的時間戳。
1671175303522
secretSignstring

AccessKey Secret 簽名,系統將根據請求參數中的簽名、AccessKey Secret 簽名和用戶名計算出靜態用戶密碼。

AccessKey Secret 簽名由指定的用戶名創建時間戳和 AccessKey ID 進行 HmacSHA1 加密算法計算得出。具體計算方法,請參見本文中的簽名算法示例代碼

4c1a6367ce4c4255e9617326f9133ac635******

返回參數

名稱類型描述示例值
object

返回結果。

RequestIdstring

請求 ID。

FEBA5E0C-50D0-4FA6-A794-4901E5465***
Codeinteger

返回碼。返回 200 代表成功。

200
Messagestring

返回信息。

operation success
Successboolean

執行結果是否成功。

true
Dataobject

返回數據。

AccessKeystring

創建該用戶名密碼所使用的 AccessKey ID。

LTAI5***********eRZtEJ6vfo
Passwordstring

創建的靜態用戶密碼。

OUYwQzM2QjZBRkUxNDRFM***************MzZCNzdDQzoxNjcxNDMwMzkyODI1
CreateTimeStamplong

創建用戶名密碼的時間戳。單位:毫秒。

1671175303522
InstanceIdstring

消息隊列 RabbitMQ 版實例的 ID。

amqp-cn-*********
MasterUIdlong

創建靜態用戶名密碼的 AccessKey 所屬的阿里云賬號或 RAM 用戶的賬號 ID。

1565*******973901
UserNamestring

創建的靜態用戶名。

MjphbXFwLWNuLXVxbTJ6cjc2djAwMzpMVEFJNX*******ZNMWVSWnRFSjZ2Zm8=

示例

正常返回示例

JSON格式

{
  "RequestId": "FEBA5E0C-50D0-4FA6-A794-4901E5465***",
  "Code": 200,
  "Message": "operation success",
  "Success": true,
  "Data": {
    "AccessKey": "LTAI5***********eRZtEJ6vfo",
    "Password": "OUYwQzM2QjZBRkUxNDRFM***************MzZCNzdDQzoxNjcxNDMwMzkyODI1",
    "CreateTimeStamp": 1671175303522,
    "InstanceId": "amqp-cn-*********",
    "MasterUId": 0,
    "UserName": "MjphbXFwLWNuLXVxbTJ6cjc2djAwMzpMVEFJNX*******ZNMWVSWnRFSjZ2Zm8="
  }
}

錯誤碼

訪問錯誤中心查看更多錯誤碼。

控制臺操作

除了調用 CreateAccount 接口,您還可以通過云消息隊列 RabbitMQ 版控制臺創建靜態用戶名密碼。具體操作,請參見靜態用戶名密碼管理