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

CreateAccount - 創(chuàng)建用戶名密碼

更新時間:

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

接口說明

背景信息

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

注意事項(xiàng)

  • 創(chuàng)建靜態(tài)用戶名密碼所屬的實(shí)例需處于服務(wù)中狀態(tài)。
  • 一個實(shí)例下的 AccessKey 和靜態(tài)用戶名密碼一一對應(yīng),即一個實(shí)例下的一個 AccessKey 只能創(chuàng)建一個靜態(tài)用戶名密碼。
  • 如果需要更新靜態(tài)用戶名密碼,您可以刪除該靜態(tài)用戶名密碼后重新創(chuàng)建。

用戶名計算示例代碼

請求參數(shù)中的 userName 的參數(shù)值,需要由實(shí)例 ID 和 AccessKey ID 構(gòu)造字符串并進(jìn)行 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) {
              //使用您的實(shí)例 ID 以及購買該實(shí)例的賬號 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);
        }
    }

簽名算法示例代碼

請求參數(shù)中 signature 和 secretSign 的參數(shù)值,需要由指定的靜態(tài)用戶名的創(chuàng)建時間戳和 AccessKey Secret 進(jìn)行加密算法計算得出。具體的算法和示例代碼如下:

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 參數(shù)。
         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);
    }

調(diào)試

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

授權(quán)信息

下表是API對應(yīng)的授權(quán)信息,可以在RAM權(quán)限策略語句的Action元素中使用,用來給RAM用戶或RAM角色授予調(diào)用此API的權(quán)限。具體說明如下:

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

請求參數(shù)

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

消息隊(duì)列 RabbitMQ 版實(shí)例的 ID,表示您需要為哪個實(shí)例創(chuàng)建靜態(tài)用戶名密碼。

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

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

說明 如果您使用 RAM 用戶的 AccessKey 創(chuàng)建的靜態(tài)用戶名密碼接入消息隊(duì)列 RabbitMQ 版并收發(fā)消息,請確保該 RAM 用戶已被授予收發(fā)消息權(quán)限。更多信息,請參見 RAM 權(quán)限策略。
LTAI5t8be*******tEJ6vfo
userNamestring

待創(chuàng)建的靜態(tài)用戶名。

該參數(shù)值由實(shí)例 ID 和 AccessKey ID 構(gòu)造的字符串經(jīng)過 Base64 編碼得出,具體計算方法,請參見本文中的用戶名計算示例代碼。

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

簽名,系統(tǒng)將根據(jù)請求參數(shù)中的簽名、AccessKey Secret 簽名和用戶名計算出靜態(tài)用戶密碼。

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

22c2d7d1769cb53c5a6d9213248e2de524******
createTimestamplong

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

說明 該時間戳用于計算靜態(tài)用戶密碼,由您自定義設(shè)置。不是系統(tǒng)生成用戶名密碼時的時間戳。
1671175303522
secretSignstring

AccessKey Secret 簽名,系統(tǒng)將根據(jù)請求參數(shù)中的簽名、AccessKey Secret 簽名和用戶名計算出靜態(tài)用戶密碼。

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

4c1a6367ce4c4255e9617326f9133ac635******

返回參數(shù)

名稱類型描述示例值
object

返回結(jié)果。

RequestIdstring

請求 ID。

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

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

200
Messagestring

返回信息。

operation success
Successboolean

執(zhí)行結(jié)果是否成功。

true
Dataobject

返回數(shù)據(jù)。

AccessKeystring

創(chuàng)建該用戶名密碼所使用的 AccessKey ID。

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

創(chuàng)建的靜態(tài)用戶密碼。

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

創(chuàng)建用戶名密碼的時間戳。單位:毫秒。

1671175303522
InstanceIdstring

消息隊(duì)列 RabbitMQ 版實(shí)例的 ID。

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

創(chuàng)建靜態(tài)用戶名密碼的 AccessKey 所屬的阿里云賬號或 RAM 用戶的賬號 ID。

1565*******973901
UserNamestring

創(chuàng)建的靜態(tài)用戶名。

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="
  }
}

錯誤碼

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

控制臺操作

除了調(diào)用 CreateAccount 接口,您還可以通過云消息隊(duì)列 RabbitMQ 版控制臺創(chuàng)建靜態(tài)用戶名密碼。具體操作,請參見靜態(tài)用戶名密碼管理。