Azure Web 門戶僅允許將 RSA 密鑰匯入 Key Vault。您可以生成EC 密鑰,但不能匯入。有沒有辦法以編程方式匯入 EC 密鑰?
編輯
我的解決方案:
$p8Raw = Get-Content -Path .\KEY.p8 | ? {$_ -ne '-----BEGIN PRIVATE KEY-----' -and $_ -ne '-----END PRIVATE KEY-----'}
$p8Bytes = [System.Convert]::FromBase64String($p8Raw -join '')
$cng = [System.Security.Cryptography.ECDsaCng]::Create()
$len = $null
$cng.ImportPkcs8PrivateKey($p8Bytes, [ref] $len)
$params = $cng.ExportParameters($true)
$ToBase64Url = { Param($Content) [System.Convert]::ToBase64String($Content).Replace(' ', '-').Replace('/', '_').Replace('=', '') }
$pubX = & $ToBase64Url -Content $params.Q.X
$pubY = & $ToBase64Url -Content $params.Q.Y
$prvD = & $ToBase64Url -Content $params.D
$jwk = @{ crv = 'P-256'; d = $prvD; kty = 'EC'; x = $pubX; y = $pubY }
$RequestPayload = @{ key = $jwk } | ConvertTo-Json
$token = Get-MsalToken -Scope 'https://vault.azure.net/user_impersonation' -ClientId $ClientId -TenantId $TenantId -Interactive
Invoke-WebRequest -Uri "${VaultUri}keys/${KeyName}?api-version=7.3" -Authentication Bearer -Token ($token.AccessToken | ConvertTo-SecureString -AsPlainText -Force) -Method Put -Body $RequestPayload -ContentType 'application/json'
uj5u.com熱心網友回復:
這個 REST 端點應該能夠根據這一行來做到這一點:
匯入密鑰操作可用于將任何密鑰型別匯入 Azure Key Vault。
我認為最簡單的方法是使用任何官方 SDK(Java、.Net、Python 等),但如果您愿意將正確的 HTTP 請求放在一起,那也應該可以。
uj5u.com熱心網友回復:
我會選擇支持的 Powershell cmdlet 或 Azure CLI。
Import-AzKeyvaultKey從電源外殼。az keyvault key import從 Azure CLI。
https://docs.microsoft.com/en-us/powershell/module/az.keyvault/add-azkeyvaultkey?view=azps-8.0.0
https://docs.microsoft.com/en-us/cli/azure/keyvault/key?view=azure-cli-latest#az-keyvault-key-import
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/492647.html
