代码之家  ›  专栏  ›  技术社区  ›  Jinesh

使用API在Azure密钥库中创建密钥

  •  1
  • Jinesh  · 技术社区  · 7 年前

    我是通过在指定订阅中创建的Azure密钥库创建的。在这篇文章之后,

    https://docs.microsoft.com/en-us/rest/api/keyvault/keyvaultpreview/vaults/createorupdate#examples

    当API调用时,Azure保管库成功创建。现在,我还需要为创建的密钥库创建一个密钥。在创建Azure密钥库时是否可以创建密钥?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Joey Cai    7 年前
    < Buff行情>

    在创建Azure密钥库时是否可以创建密钥?

    < /块引用>

    正如朱纳斯所说,你需要单独打一个电话来实现你想要的。

    我用下面的代码测试它,它在我这边工作正常。resourceuri是 https://vault.azure.net 。有关更多详细信息,请参阅此 so thread

    key vault channel中,您需要将 add policies 添加到已注册的应用程序或用户。在“访问控制”中,您需要向注册的应用程序或用户添加权限。

    var appid=“00000000000000000000000000000000”;
    var secretkey=“***************************************************”;
    var tenantid=“00000000000000000000000000000000”;
    var context=new authenticationContext(“https://login.windows.net/”+tenantid);
    clientCredential clientCredential=新的clientCredential(appid,secretkey);
    var tokenresponse=context.acquiretokenasync(“https://vault.azure.net”,clientcredential).result;
    var accesstoken=tokenresponse.accesstoken;
    使用(var client=new httpclient())
    {
    client.defaultrequestheaders.add(“授权”,“承载者”+accesstoken);
    var requesturl=“https://xxxx.vault.azure.net/keys/xxxx/create?”API版本=2016-10-01“;
    string body=“\”kty\“:\”rsa\“”;
    var stringcontent=新的stringcontent(body,encoding.utf8,“application/json”);
    var response=client.post异步(requesturl,stringcontent).result;
    }
    < /代码> 
    
    

    我要实现你想要的。

    我用下面的代码测试它,它在我这边工作正常。资源URI是https://vault.azure.net. 有关详细信息,请参阅SO thread

    Key vault频道,你需要Add policies注册的应用程序或用户。而在Access Control你需要add permission注册的应用程序或用户。

    enter image description here enter image description here

    var appId = "0000000000000000000000000000000";
    var secretKey = "******************************************";
    var tenantId = "0000000000000000000000000000000";
    var context = new AuthenticationContext("https://login.windows.net/" + tenantId);
    ClientCredential clientCredential = new ClientCredential(appId, secretKey);
    var tokenResponse = context.AcquireTokenAsync("https://vault.azure.net", clientCredential).Result;
    var accessToken = tokenResponse.AccessToken;
    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken);
        var requestURl = "https://xxxxxx.vault.azure.net/keys/xxxx/create?api-version=2016-10-01";
        string body = "{\"kty\": \"RSA\"}";
        var stringContent = new StringContent(body, Encoding.UTF8, "application/json");
        var response = client.PostAsync(requestURl, stringContent).Result;
    }
    

    enter image description here