0

Я пытался создать приложение в Azure AD с проверкой подлинности Azure PowerShell сертификатов ниже является Powershell фрагмент кода:Создание приложения в Azure AD с проверкой подлинности Azure PowerShell сертификат

Login-AzureRmAccount 
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate("PATH_TO_CER_FILE") 
$key = [System.Convert]::ToBase64String($cert.GetRawCertData()) 
$app = New-AzureRmADApplication -DisplayName "SetupTet4" -HomePage "http://localhost" -IdentifierUris "http://localhost" -KeyValue $key -KeyType AsymmetricX509Cert 
New-AzureRmADServicePrincipal -ApplicationId $app.ApplicationId 
New-AzureRmRoleAssignment -RoleDefinitionName "Owner" -ServicePrincipalName $app.ApplicationId 

Лазурное приложение AD был успешно создан однако для применения AD Azure с проверкой подлинности сертификата, в customKeyIdentifier и значение в keyCredentials равно нулю после создания, это часть манифеста моего приложения я скачал с Azure портала:

"keyCredentials": [{ 
"customKeyIdentifier": null, 
"endDate": "2017-02-25T20:48:35.5174541Z", 
"keyId": "575580cc-ce4e-4862-ad3e-1ba5833fe7f6", 
"startDate": "2016-02-25T20:48:35.5174541Z", 
"type": "AsymmetricX509Cert", 
"usage": "Verify", 
"value": null 
}], 

FYI сертификат является самоподписанным сертификатом. Я использую команду makecert, сгенерированную локально.

Любые советы, отличные оценки.

Джеймс

+0

В чем вопрос? Шаги, которые вы опубликовали, - это шаги для создания приложения в Azure AD. Какая у вас проблема с customKeyIdentifier и значением null? –

+0

Рик, спасибо за вопрос, в этом проблема, если customKeyIdentifier и значение равно null, аутентификация приложения завершится неудачно. –

+0

Я также пытаюсь использовать API-интерфейс Graph, следуя этому коде: [link] (https://github.com/Azure-Samples/active-directory-dotnet-graphapi-console/tree/master/GraphConsoleAppV3), однако результат тот же, customKeyIdentifier и значение равно null, это ошибка в MS API, или я что-то пропустил? –

ответ

1

Добавьте вызов Set-AzureRmKeyVaultAccessPolicy указать уровень доступа вы хотите принцип обслуживания, чтобы иметь для ключа хранилища. См. Изменения в последних двух строках для вашего скрипта.

Login-AzureRmAccount 
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate("PATH_TO_CER_FILE") 
$key = [System.Convert]::ToBase64String($cert.GetRawCertData()) 
$app = New-AzureRmADApplication -DisplayName "SetupTet4" -HomePage "http://localhost" -IdentifierUris "http://localhost" -KeyValue $key -KeyType AsymmetricX509Cert 
$sp = New-AzureRmADServicePrincipal -ApplicationId $app.ApplicationId 
Set-AzureRmKeyVaultAccessPolicy -VaultName "<your-vault-name>" ` 
    -ServicePrincipalName $sp.ServicePrincipalName ` 
    -PermissionsToKeys all -PermissionsToSecrets all ` 
    -ResourceGroupName "<your-resource-group-name>" 
+0

Спасибо за ваш быстрый ответ, даже с Set-AzureRmKeyVaultAccessPolicy, это свойство «value» по-прежнему равно null (тогда как я ранее ввел в него мой открытый сертификат). Означает ли это, что это действительно пустое или просто пустое свойство для безопасности причины? –

+0

Вы попробовали запустить приложение? Я могу выполнить аутентификацию с помощью сертификата и успешно получить доступ к хранилищу из приложения. И это значение равно нулю и в моей среде. Что заставляет вас поверить, что это ваша проблема? –

+1

Рик, вы правы, нуль в значении кажется неважным, THX для взгляда. –