Azure验证与证书安装

时间:2018-04-08 04:04:16

标签: azure active-directory certificate

我正在尝试设置Azure Key Vault,以便我可以使用PHP应用程序中的证书进行访问。我试图按照https://azurecto.com/azure-keyvault-authenticating-with-certificates-and-reading-secrets/上的步骤进行操作,该步骤说您必须创建一个AD应用程序,但我收到了错误消息。这就是我的尝试。

一个。我的Windows机器上已经有一个自签名的.pfx文件。

B中。因为我已经有了一个.pfx文件,所以我改变了他的步骤。我使用

将.pfx文件导入控制台
$cert = Get-PfxCertificate -FilePath "C:\azurecrt.pfx"

℃。然后它说要创建一些变量

$vaultName = 'Picklistsca1'
$dnsName = 'picklistsfakeurl.ca'
$dummyUrl = "http://$dnsName/"

d。然后它说调用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)

然后在New-AzureRmADApplication中将$ cert替换为$ b64。这给了我错误" New-AzureRmADApplication:证书无效:密钥值是无效证书"

任何建议都将不胜感激。感谢

1 个答案:

答案 0 :(得分:0)

  

我正在尝试设置Azure Key Vault,以便我可以使用我的PHP应用程序中的证书进行访问

您可以从此tutorial获取答案和演示代码。 由于juunas提到您需要 .cer 文件。

以下是tutorial

的摘录

$ certificate = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2     $ certificate.Import(' c:\ location \ certificate.cer')#需要一个.cer文件。     $ startDate = $ certificate.GetEffectiveDateString()     $ endDate = $ certificate.GetExpirationDateString()     $ credValue = [System.Convert] :: ToBase64String($ certificate.GetRawCertData())     $ azureADApplication = New-AzureRmADApplication -DisplayName" {application name}" -HomePage" {application page}" -IdentifierUris" {application page}" -KeyValue $ credValue -KeyType" AsymmetricX509Cert" -KeyUsage"验证" -StartDate $ startDate -EndDate $ endDate

<强>更新

我已将代码更新如下。我已经在我这边测试了它。

$credValue = [System.Convert]::ToBase64String($certificate.GetRawCertData())
$azureADApplication = New-AzureRmADApplication -DisplayName "{application name}" -HomePage "{application page}" -IdentifierUris "{application page}" -CertValue $credValue  -StartDate $startDate -EndDate $endDate
$azureADApplication.ApplicationId
$principal= New-AzureRmADServicePrincipal -ApplicationId $azureADApplication.ApplicationId

enter image description here