Microsoft Azure Cloud Services (genişletilmiş destek) ile iletişim, Köprü Metni Aktarım Protokolü Güvenli (HTTPS) protokolü kullanılarak gerçekleştirilir. Bu makalede, Cloud Services için HTTPS iletişimin nasıl etkinleştirileceği açıklanır (genişletilmiş destek).
Azure'a Cloud Services (genişletilmiş destek) projesi dağıtmaya yönelik genel adımlar şunlardır:
Sertifikanızı hazırlayın.
Projenizi yapılandırın.
Proje dosyasını bulut hizmetinizin hizmet tanımı (.csdef), hizmet yapılandırması (.cscfg) ve hizmet paketi (.cspkg) dosyalarına paketleyin.
Gerekirse Cloud Services (genişletilmiş destek) kaynağının yapılandırmasını değiştirin. Örneğin, aşağıdaki değişikliklerden herhangi birini yapabilirsiniz:
Paket URL'sini güncelleştirin.
URL ayarını yapılandırın.
İşletim sistemi gizli dizileri ayarını güncelleştirin.
Yeni projeyi Azure'a dağıtın ve güncelleştirin.
Not
Proje, aşağıdaki araçlar kullanılarak gibi birkaç farklı yöntemle dağıtılabilir:
Azure DevOps gibi sürekli tümleştirme ve sürekli teslim (CI/CD) aracı
Dağıtım yöntemi ne olursa olsun, genel dağıtım adımları aynıdır.
Bu adımlardan ilk ikisi tüm dağıtım yöntemleri için gereklidir. Bu adımlar Kod değişiklikleri bölümünde ele alınmaktadır. Kalan adımlar da önemlidir, ancak her zaman el ile kullanıcı müdahalesi gerektirmez. Örneğin, adımlar Visual Studio gibi bir araç tarafından otomatik olarak yapılabilir. Bu adımların son üçü Yapılandırma değişiklikleri bölümünde ele alınmaktadır.
Kod değişiklikleri
Sertifikanızı hazırlamak ve projenizi yapılandırmak üzere kod değişiklikleri yapmak için aşağıdaki adımları izleyin:
Sertifikanın parmak izini (40 basamaklı onaltılık dize) not edin.
Projenizin hizmet yapılandırması (.cscfg) dosyasında sertifika parmak izini sertifikayı kullanmak istediğiniz role ekleyin. Örneğin, bir WebRole ile iletişim kurmak için sertifikayı SSL sertifikası olarak kullanmak istiyorsanız, kök ServiceConfiguration öğenin ilk alt öğesi olarak aşağıdaki WebRole1 kod parçacığına benzeyen XML kodu ekleyebilirsiniz:
öğesinin Certificates kapanış Endpoints etiketinden hemen sonra eklenmesi gerekir. Herhangi bir öznitelik içermez. Yalnızca alt Certificate öğeleri içerir.
Örneğin, hizmet tanımı dosyanız aşağıdaki XML koduna benzeyebilir:
Bu örnekte hizmet tanımı dosyası, 443 numaralı bağlantı noktasında HTTPS protokolü için giriş uç noktasını HttpsIn bağlamak üzere değiştirilmiştir. Yalnızca sınırlı veya yükseltilmiş izin düzeyi için adına My ve konumuna LocalMachine sahip bir deponun sertifikasını kullanırCertificate1. ve Certificate öğelerindeki InputEndpoint sertifika adları birbiriyle eşleşir. Ayrıca, önceki adımda hizmet yapılandırması (.cscfg) dosyasında kullanılan sertifika adıyla da eşleşir.
Yapılandırma değişiklikleri
Bulut hizmeti yapılandırmanızı değiştirme yönergeleri, bulut hizmetinizin dağıtılma şekline göre farklılık gösterir. Bu yönergeler aşağıdaki sekmelerde gösterilir. Her sekme farklı bir dağıtım yöntemini temsil eder.
Oluşturulan hizmet paketini (<project-name.cspkg>) ve bulut hizmeti yapılandırması (ServiceConfiguration.Cloud.cscfg) dosyalarını bulut hizmetiniz için bir depolama hesabı kapsayıcısına yükleyin.
Not
Diğer iki dosya için açıklanan işlemi kullanarak hizmet tanımı (ServiceDefinition.csdef) dosyasını da karşıya yüklemeniz gerekir.
Karşıya yüklenen dosyaların her biri için bir paylaşılan erişim imzası (SAS) URL'si oluşturun.
Azure portal bulut hizmetinizin Genel Bakış sayfasına dönün ve Güncelleştir'i seçin.
Bulut hizmetini güncelleştir sayfasında Temel Bilgiler sekmesinde aşağıdaki değişiklikleri yapın:
Paket/yapılandırma/hizmet tanımı konumu alanında Blobdan'ı seçin.
Paket karşıya yükle (.cspkg, .zip) alanında şu adımları izleyin:
Gözat bağlantısını seçin.
Dosyaları karşıya yüklediğiniz depolama hesabını ve kapsayıcıyı seçin.
Kapsayıcı sayfasında ilgili dosyayı seçin (bu örnekte project-name.cspkg<>) ve ardından Seç düğmesini seçin.
Yapılandırmayı karşıya yükle (.cscfg) alanı (ve ServiceConfiguration.Cloud.cscfg dosyası) için, önceki adımda özetlenen alt gereksinimi yineleyin.
Hizmet tanımını karşıya yükle (.csdef) alanı (ve ServiceDefinition.csdef dosyası) için alt işlemi tekrarlayın.
Yapılandırma sekmesini seçin.
Anahtar kasası alanında, sertifikayı karşıya yüklediğiniz anahtar kasasını seçin (Kod değişiklikleri bölümünün başlarında). Sertifika seçilen anahtar kasasında bulunduktan sonra, listelenen sertifika Bir BulunduDurumu görüntüler.
Yeni yapılandırılan projeyi dağıtmak için Güncelleştir düğmesini seçin.
Oluşturulan hizmet paketi (<project-name.cspkg>) dosyasını bulut hizmetiniz için bir depolama hesabı kapsayıcısına yükleyin.
Not
Yönergelerde belirtilenlere rağmen bulut hizmeti yapılandırması (ServiceConfiguration.Cloud.cscfg) dosyasını karşıya yüklemeniz gerekmez. Yalnızca hizmet paketi dosyasının buraya yüklenmesi gerekir.
Karşıya yüklenen hizmet paketi dosyası için paylaşılan erişim imzası (SAS) URL'si oluşturun.
Aşağıdaki PowerShell betiğinde, betiğin başındaki yer tutucuları her değişkenin gerçek değerleriyle değiştirin ve ardından bulut hizmetinizi güncelleştirmek için betiği çalıştırın:
Oluşturulan hizmet paketini (<project-name.cspkg>) ve bulut hizmeti yapılandırması (ServiceConfiguration.Cloud.cscfg) dosyalarını bulut hizmetiniz için bir depolama hesabı kapsayıcısına yükleyin.
Karşıya yüklenen dosyaların her biri için bir paylaşılan erişim imzası (SAS) URL'si oluşturun.
Azure portal anahtar kasası sertifika sayfasından aşağıdaki değerleri alın:
Anahtar kasası sertifika URL'si
Abonelik Kimliği
Anahtar kasasının dağıtıldığı kaynak grubunun adı
Anahtar kasası için hizmet adı
Bulut hizmeti için özgün ARM şablonunuzda osProfile özelliğini bulun. Özgün bulut hizmeti projesi yalnızca HTTP iletişimini osProfile destekliyorsa özelliği boş olur ("osProfile": {}). Bulut hizmetinin doğru anahtar kasasından doğru sertifikayı almasını sağlamak için ARM şablonunda hangi anahtar kasasını kullanmak istediğinizi belirtin. Bu değeri göstermek için bir parametre kullanabilirsiniz. Veya aşağıdaki örnekte gösterildiği gibi değeri ARM şablonuna sabit kodlayabilirsiniz:
ARM şablonunun JSON metninde, parametredeki sourceVault değer Azure portal id Key Vault sayfasının URL'sinin bir parçasıdır.
certificateUrl Değer, daha önce bulduğunuz anahtar kasası sertifika URL'sidir. Bu değerlerin metin biçimleri aşağıdaki tabloda gösterilmiştir.
Paket SAS belirteci, yapılandırma SAS belirteci ve daha fazlası gibi yeni parametreler içeren güncelleştirilmiş ARM şablonunuzu dağıtın. Bu parametrelerin nasıl bildirileceğini ve belirtileceğini görmek için örnek bir ARM şablon dosyasını ve örnek arm şablonu parametreleri dosyasını gözden geçirebilirsiniz. Ardından dağıtımın tamamlanmasını bekleyin.
Not
Genel IP adresinin kullanıldığını belirten bir hata iletisi alırsanız, hizmet yapılandırması (.cscfg) dosyasından ve ARM şablonu parametreleri dosyasından genel IP adresini kaldırın. GENEL IP adresi bildirimini ARM şablon dosyasının kendisinden kaldırmayın.
Bu bölümde, doğru yapılandırma değişikliklerini yapmak için Azure SDK ve C# kullanımı açıklanmaktadır. Bulut hizmeti projesini dağıtmak ve ilgili yapılandırmayı değiştirmek için SDK'yı başarıyla kullanmak için bir uygulamayı Microsoft Entra ID'a kaydetmeniz gerekir. Kaydı yapmak için Portalı kullanarak kaynaklara erişebilen bir Microsoft Entra uygulaması ve hizmet sorumlusu oluşturma makalesine bakın. Aşağıdaki tabloda, atılması gereken belirli adımlar ve bu makalede okunacak ilgili alt bölüm özetlenmiştir.
Oluşturulan hizmet paketi (<project-name.cspkg>) dosyasını bulut hizmetiniz için bir depolama hesabı kapsayıcısına yükleyin.
Not
Yönergelerde belirtilenlere rağmen bulut hizmeti yapılandırması (ServiceConfiguration.Cloud.cscfg) dosyasını karşıya yüklemeniz gerekmez. Yalnızca hizmet paketi dosyasının buraya yüklenmesi gerekir.
Karşıya yüklenen hizmet paketi dosyası için paylaşılan erişim imzası (SAS) URL'si oluşturun.
Azure portal anahtar kasası sertifika sayfasından aşağıdaki değerleri alın:
Anahtar kasası sertifika URL'si
Abonelik Kimliği
Anahtar kasasının dağıtıldığı kaynak grubunun adı
Anahtar kasası için hizmet adı
Örnek projeyi (sıkıştırılmış arşiv dosyası) indirin ve içeriğini ayıklayın.
SDKSample\CreateCloudService\CreateCloudService\LoginHelper.cs dosyasını bir metin düzenleyicisinde açın. yöntemindeInitializeServiceClient, sırasıyla kiracı kimliği, uygulama kimliği ve clientCredentials uygulama gizli dizisi değerleriyle , clientIdve dize değişkenlerinin değerlerinin üzerine yazıntenantId. Bu değerler, uygulamanızı kaydettiğinizde kopyaladığınız değerlerdir.
SDKSample\CreateCloudService\CreateCloudService\Program.cs dosyasını bir metin düzenleyicisinde açın. yönteminde Main , yönteminin başında bildirilen değişkenlerin başlatılan değerlerinden bazılarının üzerine yazın. Aşağıdaki tabloda değişken adları ve bunlar için kullanmanız gereken değerler gösterilmektedir.
Değişken adı
Yeni değer
m_subId
Bulut hizmetini içeren aboneliğin kimliği
csrgName
Bulut hizmetini içeren kaynak grubunun adı
csName
Bulut hizmeti kaynak adı
kvrgName
Anahtar kasası kaynağını içeren kaynak grubunun adı
kvName
Anahtar kasası kaynak adı
kvsubid
Anahtar kasasını içeren aboneliğin kimliği (bu, bulut hizmeti abonelik kimliğinden farklı olabilir)
secretidentifier
Anahtar kasası sertifika URL'si
filename
Hizmet yapılandırma dosyanızın yerel yolu (ServiceConfiguration.Cloud.cscfg)
packageurl
Hizmet paketi dosyasının SAS URL'si (<project-name.cspkg>)
Visual Studio Çözüm Gezgini bölmesinde proje düğümüne sağ tıklayın ve ardından NuGet Paketlerini Yönet'i seçin.
Gözat sekmesinde aşağıdaki paketleri arayın, seçin ve yükleyin:
Microsoft.Azure.Management.ResourceManager
Microsoft.Azure.Management.Compute
Microsoft.Azure.Management.Storage
Azure.Identity
Microsoft.Rest.ClientRuntime.Azure.Authentication
Projeyi çalıştırın ve sonra çıkış bölmesinde iletilerin görünmesini bekleyin. Bölmede "kod 0 ile çık" ifadesi görüntülenirse güncelleştirme ve dağıtım başarıyla çalışıyor olmalıdır. "Kod 1 ile çık" görüntülüyorsa, sorunları gözden geçirmek için hata iletilerini denetlemeniz gerekebilir.
Visual Studio'da iki yapılandırma değişikliği yapmanız gerekir. Yerel bağlamın bulut bağlamıyla uyumlu olması için hizmet yapılandırmanızı ayarlarsınız ve ardından anahtar kasanızın nerede olduğunu belirtirsiniz.
Hizmet yapılandırması için bulut bağlamının içeriğini ( ServiceConfiguration.Cloud.cscfg dosyası) kopyalayın ve yerel bağlama ( ServiceConfiguration.Local.cscfg dosyası) yapıştırın. Farklı bir yapılandırmanız mı var yoksa diğer kullanımlar için hala yerel yapılandırma dosyasına mı ihtiyacınız var? Her iki koşuldan biri doğruysa, mevcut yerel bağlamdaki öğeleri koruyun certificate .
Visual Studio Çözüm Gezgini bölmesinde proje düğümüne sağ tıklayın ve yayımla'yı seçin.
Ayarlar sekmesine ulaşana kadar Yayımlama Azure Uygulaması sihirbazında ilerleyin. Bu sekmede, Anahtar kasası alanını anahtar kasanızın kaydedildiği konuma ayarlayın. Son olarak Yayımla düğmesini seçin ve dağıtımın tamamlanmasını bekleyin.
Yapılandırma değişikliklerini yaptıktan sonra müşteriler, HTTPS protokollerini kullanarak bulut hizmetleri web sitenizle iletişim kurabilir. Sertifikanız otomatik olarak imzalandıysa, tarayıcı sertifikanın güvenli olmadığına dair bir uyarı bildirebilir, ancak tarayıcı bağlantıyı engellemez.