< 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
注册的应用程序或用户。

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;
}
