Microsoft Azure Cloud Services(추가 지원)와의 통신은 HTTPS(Hypertext Transfer Protocol Secure) 프로토콜을 사용하여 수행됩니다. 이 문서에서는 Cloud Services(추가 지원)에 대해 HTTPS 통신을 사용하도록 설정하는 방법을 설명합니다.
이러한 단계 중 처음 두 단계는 모든 배포 방법에 필요합니다. 이러한 단계는 코드 변경 섹션에서 설명합니다. 나머지 단계도 중요하지만 항상 수동 사용자 개입이 필요한 것은 아닙니다. 예를 들어 Visual Studio와 같은 도구에서 자동으로 단계를 수행할 수 있습니다. 이 단계의 마지막 세 가지 단계는 구성 변경 섹션에서 설명합니다.
프로젝트의 서비스 구성(.cscfg) 파일에서 인증서를 사용하려는 역할에 인증서 지문을 추가합니다. 예를 들어 인증서를 SSL 인증서로 사용하여 WebRole과 통신하려는 경우 루트 ServiceConfiguration 요소의 첫 번째 자식으로 다음 코드 WebRole1 조각과 유사한 XML 코드를 추가할 수 있습니다.
이 예제에서 서비스 정의 파일은 포트 443에서 HTTPS 프로토콜에 HttpsIn 대한 입력 엔드포인트를 바인딩하도록 수정됩니다. 제한된 권한 또는 상승된 권한 수준에 대한 이름과 My 위치 LocalMachine 가 있는 저장소에 인증서를 사용합니다Certificate1. 요소와 Certificate 요소의 InputEndpoint 인증서 이름이 서로 일치합니다. 또한 이전 단계의 서비스 구성(.cscfg) 파일에 사용된 인증서 이름과도 일치합니다.
구성 변경 내용
클라우드 서비스 구성을 변경하는 지침은 클라우드 서비스가 배포된 방식에 따라 다릅니다. 이러한 지침은 다음 탭에 표시됩니다. 각 탭은 다른 배포 방법을 나타냅니다.
생성된 서비스 패키지(<project-name.cspkg>) 및 클라우드 서비스 구성(ServiceConfiguration.Cloud.cscfg) 파일을 클라우드 서비스의 스토리지 계정 컨테이너에 업로드합니다.
업로드된 각 파일에 대한 SAS(공유 액세스 서명) URL을 생성합니다.
Azure Portal의 키 자격 증명 모음 인증서 페이지에서 다음 값을 가져옵니다.
Key Vault 인증서 URL
구독 ID
키 자격 증명 모음이 배포되는 리소스 그룹의 이름
키 자격 증명 모음의 서비스 이름
클라우드 서비스에 대한 원래 ARM 템플릿에서 속성을 찾습니다 osProfile . 원래 클라우드 서비스 프로젝트에서 HTTP 통신 osProfile 만 지원하는 경우 속성은 비어 있습니다("osProfile": {}). 클라우드 서비스가 올바른 키 자격 증명 모음에서 올바른 인증서를 검색할 수 있도록 하려면 ARM 템플릿 내에서 사용할 키 자격 증명 모음을 지정합니다. 매개 변수를 사용하여 이 값을 나타낼 수 있습니다. 또는 다음 예제와 같이 ARM 템플릿으로 값을 하드 코딩할 수 있습니다.
ARM 템플릿 id 의 JSON 텍스트에서 매개 변수의 sourceVault 값은 Azure Portal의 Key Vault 페이지 URL에 포함됩니다. 값은 certificateUrl 이전에 찾은 키 자격 증명 모음 인증서 URL입니다. 이러한 값의 텍스트 형식은 다음 표에 나와 있습니다.
패키지 SAS 토큰, 구성 SAS 토큰 등과 같은 새 매개 변수를 포함하는 업데이트된 ARM 템플릿을 배포합니다. 이러한 매개 변수를 선언하고 지정하는 방법을 보려면 예제 ARM 템플릿 파일 및 예제 ARM 템플릿 매개 변수 파일을 검토할 수 있습니다. 그런 다음 배포가 완료되기를 기다립니다.
참고 항목
공용 IP 주소가 사용되고 있음을 나타내는 오류 메시지가 표시되면 서비스 구성(.cscfg) 파일 및 ARM 템플릿 매개 변수 파일에서 공용 IP 주소를 제거합니다. ARM 템플릿 파일 자체에서 공용 IP 주소 선언을 제거하지 마세요.
텍스트 편집기에서 SDKSample\CreateCloudService\CreateCloudService\LoginHelper.cs 파일을 엽니다. InitializeServiceClient 메서드에서 테넌트 ID, 애플리케이션 ID 및 애플리케이션 비밀에 대한 값tenantId으로 , clientId및 clientCredentials 문자열 변수의 값을 각각 덮어씁니다. 이러한 값은 애플리케이션을 등록할 때 복사한 값입니다.
텍스트 편집기에서 SDKSample\CreateCloudService\CreateCloudService\Program.cs 파일을 엽니다. 메서드에서 Main 메서드의 시작 부분에 선언된 변수의 초기화된 값 중 일부를 덮어씁니다. 다음 표에서는 변수 이름과 변수에 사용해야 하는 값을 보여 있습니다.
변수 이름
새 값
m_subId
클라우드 서비스를 포함하는 구독의 ID
csrgName
클라우드 서비스를 포함하는 리소스 그룹의 이름입니다.
csName
클라우드 서비스 리소스 이름
kvrgName
키 자격 증명 모음 리소스를 포함하는 리소스 그룹의 이름입니다.
kvName
키 자격 증명 모음 리소스 이름
kvsubid
키 자격 증명 모음을 포함하는 구독의 ID입니다(클라우드 서비스 구독 ID와 다를 수 있습니다).
secretidentifier
키 자격 증명 모음 인증서 URL
filename
서비스 구성 파일의 로컬 경로(ServiceConfiguration.Cloud.cscfg)
packageurl
서비스 패키지 파일의 SAS URL(project-name.cspkg>)<
Visual Studio 솔루션 탐색기 창에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭한 다음 NuGet 패키지 관리를 선택합니다. 찾아보기 탭에서 다음 패키지를 검색, 선택 및 설치합니다.
Microsoft.Azure.Management.ResourceManager
Microsoft.Azure.Management.Compute
Microsoft.Azure.Management.Storage
Azure.Identity
Microsoft.Rest.ClientRuntime.Azure.Authentication
프로젝트를 실행한 다음 메시지가 출력 창에 나타날 때까지 기다립니다. 창에 "코드 0으로 종료"가 표시되면 업데이트 및 배포가 성공적으로 작동해야 합니다. "코드 1을 사용하여 종료"가 표시되는 경우 문제를 검토하려면 오류 메시지를 확인해야 할 수 있습니다.
계속하기 전에 Visual Studio에서 Cloud Services 만들기 및 배포(추가 지원)를 참조 하세요.
Visual Studio에서는 두 가지 구성을 변경해야 합니다. 로컬 컨텍스트가 클라우드 컨텍스트와 정렬되도록 서비스 구성을 설정한 다음 키 자격 증명 모음의 위치를 지정합니다.
서비스 구성의 경우 클라우드 컨텍스트의 내용( ServiceConfiguration.Cloud.cscfg 파일)을 복사하여 로컬 컨텍스트( ServiceConfiguration.Local.cscfg 파일)에 붙여넣습니다. 다른 구성이 있나요? 아니면 다른 용도로 로컬 구성 파일이 필요한가요? 두 조건 중 하나가 true이면 기존 로컬 컨텍스트의 요소를 유지 certificate 합니다.
Visual Studio 솔루션 탐색기 창에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭한 다음 게시를 선택합니다. 설정 탭에 도달할 때까지 게시 Azure 애플리케이션 마법사를 진행합니다. 해당 탭에서 키 자격 증명 모음 필드를 키 자격 증명 모음이 저장된 위치로 설정합니다. 마지막으로 게시 단추를 선택한 다음 배포가 완료되기를 기다립니다.
구성을 변경한 후 고객은 HTTPS 프로토콜을 사용하여 클라우드 서비스 웹 사이트와 통신할 수 있습니다. 인증서가 자체 서명된 경우 브라우저는 인증서가 안전하지 않다는 경고를 보고할 수 있지만 브라우저는 연결을 차단하지 않습니다.