다음을 통해 공유


앱이 Azure Stack Hub Key Vault 비밀에 액세스하도록 허용

이 문서의 단계에서는 Azure Stack Hub의 키 자격 증명 모음에서 키와 비밀을 검색하는 샘플 앱 HelloKeyVault 를 실행하는 방법을 설명합니다.

사전 요구 사항

VPN을 통해 연결된 경우 Azure Stack Development Kit 또는 Windows 기반 외부 클라이언트에서 다음 필수 조건을 설치할 수 있습니다.

키 자격 증명 모음 만들기 및 앱 등록

샘플 애플리케이션을 준비하려면 다음을 수행합니다.

  • Azure Stack Hub에서 키 자격 증명 모음을 만듭니다.
  • Microsoft Entra ID에 앱을 등록합니다.

Azure Portal 또는 PowerShell을 사용하여 샘플 앱을 준비합니다.

참고

기본적으로 PowerShell 스크립트는 Active Directory에 새 앱을 만듭니다. 그러나 기존 애플리케이션 중 하나를 등록할 수 있습니다.

다음 스크립트를 실행하기 전에 및 applicationPassword 변수에 aadTenantName 대한 값을 제공해야 합니다. 에 대한 applicationPassword값을 지정하지 않으면 이 스크립트는 임의 암호를 생성합니다.

$vaultName           = 'myVault'
$resourceGroupName   = 'myResourceGroup'
$applicationName     = 'myApp'
$location            = 'local'

# Password for the application. If not specified, this script generates a random password during app creation.
$applicationPassword = ''

# Function to generate a random password for the application.
Function GenerateSymmetricKey()
{
    $key = New-Object byte[](32)
    $rng = [System.Security.Cryptography.RNGCryptoServiceProvider]::Create()
    $rng.GetBytes($key)
    return [System.Convert]::ToBase64String($key)
}

Write-Host 'Please log into your Azure Stack Hub user environment' -foregroundcolor Green

$tenantARM = "https://management.local.azurestack.external"
$aadTenantName = "FILL THIS IN WITH YOUR AAD TENANT NAME. FOR EXAMPLE: myazurestack.onmicrosoft.com"

# Configure the Azure Stack Hub operator's PowerShell environment.
Add-AzEnvironment `
  -Name "AzureStackUser" `
  -ArmEndpoint $tenantARM

$TenantID = Get-AzsDirectoryTenantId `
  -AADTenantName $aadTenantName `
  -EnvironmentName AzureStackUser

# Sign in to the user portal.
Connect-AzAccount `
  -EnvironmentName "AzureStackUser" `
  -TenantId $TenantID `

$now = [System.DateTime]::Now
$oneYearFromNow = $now.AddYears(1)

$applicationPassword = GenerateSymmetricKey

# Create a new Azure AD application.
$identifierUri = [string]::Format("http://localhost:8080/{0}",[Guid]::NewGuid().ToString("N"))
$homePage = "https://contoso.com"

Write-Host "Creating a new AAD Application"
$ADApp = New-AzADApplication `
  -DisplayName $applicationName `
  -HomePage $homePage `
  -IdentifierUris $identifierUri `
  -StartDate $now `
  -EndDate $oneYearFromNow `
  -Password $applicationPassword

Write-Host "Creating a new AAD service principal"
$servicePrincipal = New-AzADServicePrincipal `
  -ApplicationId $ADApp.ApplicationId

# Create a new resource group and a key vault in that resource group.
New-AzResourceGroup `
  -Name $resourceGroupName `
  -Location $location

Write-Host "Creating vault $vaultName"
$vault = New-AzKeyVault -VaultName $vaultName `
  -ResourceGroupName $resourceGroupName `
  -Sku standard `
  -Location $location

# Specify full privileges to the vault for the application.
Write-Host "Setting access policy"
Set-AzKeyVaultAccessPolicy -VaultName $vaultName `
  -ObjectId $servicePrincipal.Id `
  -PermissionsToKeys all `
  -PermissionsToSecrets all

Write-Host "Paste the following settings into the app.config file for the HelloKeyVault project:"
'<add key="VaultUrl" value="' + $vault.VaultUri + '"/>'
'<add key="AuthClientId" value="' + $servicePrincipal.ApplicationId + '"/>'
'<add key="AuthClientSecret" value="' + $applicationPassword + '"/>'
Write-Host

다음 이미지는 키 자격 증명 모음을 만드는 데 사용되는 스크립트의 출력을 보여 줍니다.

액세스 키가 있는 키 자격 증명 모음

이전 스크립트에서 반환한 VaultUrl, AuthClientIdAuthClientSecret 값을 기록해 둡니다. 이러한 값을 사용하여 HelloKeyVault 애플리케이션을 실행합니다.

샘플 애플리케이션 다운로드 및 구성

Azure Key Vault 클라이언트 샘플 페이지에서 키 자격 증명 모음 샘플을 다운로드합니다. 개발 워크스테이션에서 .zip 파일의 내용을 추출합니다. samples 폴더에는 두 개의 앱이 있습니다. 이 문서에서는 HelloKeyVault를 사용합니다.

HelloKeyVault 샘플을 로드하려면 다음을 수행합니다.

  1. Microsoft.Azure.KeyVault.Samples>샘플>HelloKeyVault 폴더로 이동합니다.
  2. Visual Studio에서 HelloKeyVault 앱을 엽니다.

샘플 애플리케이션 구성

Visual Studio에서 다음을 수행합니다.

  1. HelloKeyVault\App.config 파일을 열고 요소를 찾습니다 <appSettings> .

  2. VaultUrl, AuthClientIdAuthCertThumbprint 키를 키 자격 증명 모음을 만들 때 반환되는 값으로 업데이트합니다. 기본적으로 App.config 파일에는 에 대한 AuthCertThumbprint자리 표시자가 있습니다. 이 자리 표시자를 로 바꿉다 AuthClientSecret.

    <appSettings>
     <!-- Update these settings for your test environment -->
     <add key="VaultUrl" value="URL to your Vault" />
     <add key="AuthClientId" value="Client Id of your Service Principal" />
     <add key="AuthCertThumbprint" value="Thumbprint of the certificate used for authentication" />
     <add key="TracingEnabled" value="false" />
    </appSettings>
    
  3. 솔루션을 다시 빌드합니다.

앱 실행

HelloKeyVault를 실행하면 앱이 Microsoft Entra ID에 로그인한 다음 토큰을 사용하여 AuthClientSecret Azure Stack Hub의 키 자격 증명 모음에 인증합니다.

HelloKeyVault 샘플을 사용하여 다음을 수행할 수 있습니다.

  • 키와 비밀에서 만들기, 암호화, 래핑 및 삭제와 같은 기본 작업을 수행합니다.
  • decrypt 와 같은 encrypt 매개 변수를 HelloKeyVault에 전달하고 지정된 변경 내용을 키 자격 증명 모음에 적용합니다.

다음 단계