0

我们如何使用 Java 获取 Azure 存储帐户访问密钥?需要什么所有细节才能做到这一点。

谢谢,普里特

4

2 回答 2

0

@Prit,您需要使用 Azure Storage Service Management SDK for Java 来获取帐户密钥,请参阅以下步骤。

  1. 创建自签名证书并在 Azure 经典门户的选项卡MANAGEMENT CERTIFICATES中上传SETTINGS,请参阅博客

I. 使用 Java keytool 创建证书,请参见下面的命令。

  • keytool -genkeypair -alias mydomain -keyalg RSA -keystore WindowsAzureKeyStore.jks -keysize 2048 -storepass "test123";

  • keytool -v -export -file D:\WindowsAzureSMAPI.cer -keystore WindowsAzureKeyStore.jks -alias mydomain

二、上传.cer文件如下。 在此处输入图像描述

您需要将这些依赖项添加到您pom.xml的 maven 项目文件中。

<!-- https://mvnrepository.com/artifact/com.microsoft.azure/azure-svc-mgmt -->
<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>azure-svc-mgmt</artifactId>
    <version>0.9.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.microsoft.azure/azure-svc-mgmt-storage -->
<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>azure-svc-mgmt-storage</artifactId>
    <version>0.9.3</version>
</dependency>

这是我获取帐户密钥的代码。

import org.xml.sax.SAXException;

import com.microsoft.windowsazure.Configuration;
import com.microsoft.windowsazure.core.utils.KeyStoreType;
import com.microsoft.windowsazure.exception.ServiceException;
import com.microsoft.windowsazure.management.configuration.ManagementConfiguration;
import com.microsoft.windowsazure.management.storage.StorageManagementClient;
import com.microsoft.windowsazure.management.storage.StorageManagementService;
import com.microsoft.windowsazure.management.storage.models.StorageAccountGetKeysResponse;

public class AccountKeys {

    public static void main(String[] args) throws IOException, URISyntaxException, ServiceException, ParserConfigurationException, SAXException {

        String uri = "https://management.core.windows.net/";
        String subscriptionId = "<subscription-id>";
        String keyStorePath = "<path>/WindowsAzureKeyStore.jks";
        String keyStorePassword = "test123";
        String storageName

        Configuration config =     ManagementConfiguration.configure(
                    new URI(uri),
                    subscriptionId,
                    keyStorePath, // the file path to the JKS
                    keyStorePassword, // the password for the JKS
                    KeyStoreType.jks // flags that I'm using a JKS keystore
                  );
        StorageManagementClient client = StorageManagementService.create(config);
        StorageAccountGetKeysResponse response = client.getStorageAccountsOperations().getKeys(storageName);
        String pk = response.getPrimaryKey();
        String sk = response.getSecondaryKey();
        System.out.println(pk);
        System.out.println(sk);
    }
}

作为参考,相关的 REST API 在这里

于 2016-08-03T09:38:15.127 回答
0

若要使用 java 获取存储帐户访问密钥,可以使用 Azure Rest API。提供了一个 java sdk,它可以让您轻松管理您的存储帐户。

要获取访问密钥,您需要使用存储帐户所在的资源组名称和存储帐户名称。使用这些信息取回存储帐户后,称为“密钥”的方法会返回访问密钥。

List<StorageAccountKey> storageAccountKeys = storageAccount.keys();

是一个完整的文档示例。

问候

于 2016-08-02T13:45:48.307 回答