如何使用Java以编程方式获取Azure存储帐户密钥?

时间:2016-08-02 13:27:51

标签: java azure azure-storage azure-sdk

我们如何使用Java获取Azure存储帐户访问密钥?要获得这些所需的所有细节。

谢谢, PRIT

2 个答案:

答案 0 :(得分:0)

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

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

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

Here是一份完整的文档样本。

此致

答案 1 :(得分:0)

@Prit,您需要使用Azure存储服务管理SDK for Java来获取帐户密钥,请参阅以下步骤。

  1. 创建自签名证书并将其上传到Azure经典门户网站MANAGEMENT CERTIFICATES的标签SETTINGS中,请参阅blog
  2. 予。使用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

    •   

    II。上传.cer文件,如下所示。 enter image description here

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

    <!-- 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为here