2017-12-19 24 views
0

Azure Web Apps가 Azure Key Vault에 액세스 할 수 있도록 인증서 주체와 인증서 및 응용 프로그램 등록을 사용합니다.내 Azure 응용 프로그램 등록/서비스 주체 자격 증명의 유효 기간은 언제입니까?

인증서를 생성 한 후 다음 Azure PowerShell을 사용하여 응용 프로그램 등록 및 서비스 주체를 만들고 서비스 주체에게 Azure Key Vault에 대한 액세스 권한을 부여합니다. 그런 다음 웹 응용 프로그램은이 인증서를로드하고이를 Azure Key Vault로 인증하는 데 사용합니다. 그것은 모두 잘 작동합니다.

$application = New-AzureRmADApplication -DisplayName $applicationName -HomePage "https://$applicationName" -IdentifierUris "https://$applicationName" -CertValue $rawCertData -StartDate $now -EndDate $now.AddYears(1) 

그것은 현재 날짜와 현재 날짜 플러스 일년에 StartDateEndDate 설정 :

$subscriptionId = Read-Host -Prompt 'SubscriptionId' 
Select-AzureRmSubscription -SubscriptionId $subscriptionId 
$resourceGroupName = Read-Host -Prompt 'Resource group name' 
$vaultName = Read-Host -Prompt 'Vault name' 
$certificateName = Read-Host -Prompt 'Certificate name' 
$applicationName = Read-Host -Prompt 'Application name' 

$certificatePath = Join-Path (Get-Location) "$certificateName.cer" 
$certificate = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 
$certificate.Import($certificatePath) 

$rawCertData = [System.Convert]::ToBase64String($certificate.GetRawCertData()) 
$now = [System.DateTime]::UtcNow 

$application = New-AzureRmADApplication -DisplayName $applicationName -HomePage "https://$applicationName" -IdentifierUris "https://$applicationName" -CertValue $rawCertData -StartDate $now -EndDate $now.AddYears(1) 

$servicePrincipal = New-AzureRmADServicePrincipal -ApplicationId $application.ApplicationId 

Set-AzureRmKeyVaultAccessPolicy -ResourceGroupName $resourceGroupName -VaultName $vaultName -ServicePrincipalName "https://$applicationName" -PermissionsToSecrets get 

문제는이 라인입니다. $now.AddYears(1) 후 어떤 일이 일어날 것입니다 -

$application = New-AzureRmADApplication -DisplayName $applicationName -HomePage "https://$applicationName" -IdentifierUris "https://$applicationName" -CertValue $rawCertData -StartDate` $certificate.NotBefore -EndDate $certificate.NotAfter 

내 질문은 : 지나고 나는 인증서 시작과 끝 날짜 했어야 생각? 인증서는 3 년 만료로 생성되었지만 응용 프로그램 등록/서비스 보안 주체는 이전 EndDate으로 생성되었지만 그 의미는 무엇입니까?

+2

나는이 시나리오를 테스트하지 않은,하지만 난 * 그 1 년 후 더 이상 해당 인증서로 서명 요청을 수락하지 않습니다 * 생각합니다. – juunas

답변

1

문서에서 해당 자격 증명의 유효 종료일이므로 해당 시점에 자격 증명이 작동하지 않는다고 가정합니다.

https://docs.microsoft.com/en-us/powershell/module/azurerm.resources/new-azurermadapplication?view=azurermps-5.1.1

당신은 그 시간 전에 비밀을 출시 할 새로운-AzureRmADAppCredential를 사용할 수 있습니다.

https://docs.microsoft.com/en-us/powershell/module/azurerm.resources/new-azurermadappcredential?view=azurermps-5.1.1

+0

당신이 옳았다면, 당신이 얻는 오류는'Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException : AADSTS70002 : 자격 증명의 유효성 검사 오류입니다. AADSTS50012 : 클라이언트 어설 션에 유효하지 않은 특성이 있습니다. [이유 - 사용 된 키가 만료되었습니다. 클라이언트에서 사용 된 키의 엄지 손가락 : 'XXXXXXXCERTIFICATETHUMBPRINTXXXXX', 발견 된 키 '시작 = 02/10/2017, 끝 = 02/10/2018, 엄지 손가락 = XXXXXXXXX', 구성된 키 : [Key0 : 시작 = 02/10/2017, 끝 = 02/10/2018, 엄지 손가락 = XXXXXXXXXX;]]'. 'New-AzureRmADAppCredential'을 사용하여 만료가 길면 (동일한 인증서) 작업을 수행했습니다. – tjrobinson