gpt4 book ai didi

azure - 如何通过调用 api 设置 Key Vault key 的过期日期

转载 作者:行者123 更新时间:2023-12-03 01:26:04 25 4
gpt4 key购买 nike

我正在调用 keyvault API 来设置新的 secret ,实际上它工作正常,这意味着除了过期日期不存在之外,该 secret 显示正确。

$expiryDate = ((Get-Date).AddMonths(3)).ToFileTimeUtc()
$body = @{
"value" = $KeyValue
"contentType" = $KeyType
"exp" = $expiryDate
} | ConvertTo-Json

$params = @{
"Uri" = "https://$($KeyVaultName).vault.azure.net/secrets/$($KeyName)?api-version=7.0"
"Method" = "Put"
"Headers" = @{
'Authorization' = $Authorization
"Accept" = "application/json"
"Content-Type" = "application/json"
}
"Body" = $body
}

我唯一能想到的就是 Documentation是它需要一个整数,而我不确定 Get-Date 是否返回一个整数。

在当前的解决方案中,我尝试使用 ToFileTimeUtc 将其转换为整数在此之前,我只是尝试了 ToUniversalTime 但两者都不起作用。同样, secret 出现在 key 保管库上,但似乎没有设置过期日期:

enter image description here

最后一句话,我想坚持使用 REST API 调用,而不是使用 az Azure CLI。

最佳答案

解决方案:

# UNIX Epoch is January 1st, 1970 at 12:00 AM
$unixEpoch = Get-Date -Date "01/01/1970"
$expiryDate = ((Get-Date).AddMonths(3)).ToUniversalTime()
$unixExpiryDate = (New-TimeSpan -Start $unixEpoch -End
$expiryDate).TotalSeconds

$attributes = @{
"exp" = $unixExpiryDate
}

$body = @{
"value" = $KeyValue
"contentType" = $KeyType
"attributes" = $attributes
} | ConvertTo-Json

解决方案包含两部分:

  1. json 构造错误,需要嵌套“属性”节点

  2. 正如我的问题评论中所指出的,归功于@Mathias R. Jessen,它需要 UNIX 格式的日期:

关于azure - 如何通过调用 api 设置 Key Vault key 的过期日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66171540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com