Я пытаюсь настроить Azure Key Vault, чтобы получить доступ с помощью сертификата из моего приложения PHP. Я пытаюсь выполнить шаги на https://azurecto.com/azure-keyvault-authenticating-with-certificates-and-reading-secrets/, где говорится, что вам нужно создать приложение AD, но я получаю сообщения об ошибках. Вот что я пробовал.
А. У меня уже есть самозаверяющий файл .pfx на моем компьютере с Windows.
Б. Поскольку у меня уже есть файл .pfx, я немного изменю его шаги. Я импортирую файл .pfx в консоль с
$cert = Get-PfxCertificate -FilePath "C:\azurecrt.pfx"
К. Затем он говорит создать некоторые переменные
$vaultName = 'Picklistsca1'
$dnsName = 'picklistsfakeurl.ca'
$dummyUrl = "http://$dnsName/"
Д. Затем он говорит, вызовите New-AzureRmADApplication. Здесь у меня проблемы.
$app = New-AzureRmADApplication
-DisplayName $dummyUrl
-HomePage $dummyUrl
-IdentifierUris $dummyUrl
-CertValue $cert
-StartDate '2018-04-07 6:40:23 PM'
-EndDate '2019-04-07 6:40:23 PM'
Я получаю сообщение об ошибке "New-AzureRmADApplication: невозможно преобразовать примитивное значение в ожидаемый тип Edm.Binary. Дополнительные сведения см. во внутреннем исключении".
Я думаю, это связано с тем, что сертификат $cert должен быть в формате base64, но все мои попытки преобразовать его в формат base64 не увенчались успехом. Например, я пробовал
$bytes = [System.IO.File]::ReadAllBytes("C:\azurecrt.pfx")
$b64 = [System.Convert]::ToBase64String($bytes)
Затем замените $cert на $b64 в New-AzureRmADApplication. Это дает мне ошибку «New-AzureRmADApplication: недействительный сертификат: значение ключа является недопустимым сертификатом»
Любой совет будет принят с благодарностью. Спасибо
Вы не должны загружать закрытый ключ! Вам нужен только открытый ключ в файле .cer :)
Azure AD требуется только открытый ключ для проверки запроса.
И это должно быть в base64
.pem
или в мире Windows, эквивалентном этому....cer
или.crt
, один из них правильный :)