Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şirket içi veya üçüncü taraf veri merkezi gibi Azure dışında barındırılan uygulamalar, Azure hizmetlerde kimlik doğrulaması yapmak için Microsoft Entra ID aracılığıyla bir uygulama hizmet sorumlusu kullanmalıdır. Aşağıdaki bölümlerde şunları öğrenirsiniz:
- Hizmet sorumlusu oluşturmak için bir uygulamayı Microsoft Entra kaydetme.
- Kapsam izinlerine nasıl rol atanır.
- Uygulama kodunuzdan bir hizmet sorumlusu (service principal) kullanarak kimlik doğrulaması yapma hakkında.
Ayrılmış uygulama hizmet sorumlularını kullanarak, Azure kaynaklara erişirken en az ayrıcalık ilkesini izleyebilirsiniz. Diğer uygulamalara veya hizmetlere yönelik Azure kaynaklara yanlışlıkla erişimi önlemek için geliştirme sırasında uygulamanın belirli gereksinimleriyle izinleri sınırlayın. Bu yaklaşım, uygulamanın geliştirme ortamında aşırı ayrıcalıklı olmadığından emin olarak uygulamayı üretime taşırken karşılaşılan sorunları önlemenize de yardımcı olur.
Uygulamayı barındırdığınız her ortam için farklı bir uygulama kaydı oluşturun. Her hizmet sorumlusu için ortama özgü kaynak izinlerini yapılandırabilir ve bir ortama dağıtılan bir uygulamanın başka bir ortamdaki Azure kaynaklara erişmediğinden emin olabilirsiniz.
Uygulamayı Azure'a kaydetme
Azure'da bir uygulama kaydı üzerinden uygulama hizmet sorumlusu nesneleri, Azure portalı veya Azure CLI kullanılarak oluşturulur.
Azure portalında arama çubuğunu kullanarak App registrations sayfasına gidin.
App registrations sayfasında + Yeni kayıt'i seçin.
Uygulamayı kaydetme sayfasında:
- Adı alanı için uygulama adını ve hedef ortamı içeren açıklayıcı bir değer girin.
- Desteklenen hesap türleri için yalnızca bu kuruluş dizinindeki hesaplar (Yalnızca Microsoft Müşteri Liderliğinde - Tek kiracı) veya gereksinimlerinize en uygun seçeneğiseçin.
Uygulamanızı kaydetmek ve hizmet sorumlusunu oluşturmak için Kaydet seçin.
Uygulamanızın Uygulama kaydı sayfasında Uygulama (istemci) kimliği ve Dizin (kiracı) kimliği kopyalayın ve bunları uygulama kodu yapılandırmalarınızda daha sonra kullanmak üzere geçici bir konuma yapıştırın.
Uygulamanızın kimlik bilgilerini ayarlamak için Sertifika veya gizli dizi ekle'yi seçin.
Sertifikalar ve gizli anahtarlar sayfasında + Yeni istemci gizli anahtar'ı seçin.
İstemci sırrı ekle panosunda açılan panelde:
-
Açıklama için değerini
Currentgirin. -
Süre sonu değeri için varsayılan önerilen değerini
180 daysbırakın. - Sırrı eklemek için Ekle'yi seçin.
-
Açıklama için değerini
Sertifikalar & gizli anahtarları sayfasında, istemci gizli anahtarının Değer özelliğini gelecekte kullanmak üzere kopyalayın.
Uyarı
İstemci gizli anahtarı değeri, uygulama kaydı oluşturulduktan sonra yalnızca bir kez görüntülenir. Bu istemci sırrını geçersiz kılmadan daha fazla istemci sırrı ekleyebilirsiniz; ancak bu değeri yeniden görüntüleyebilmenin bir yolu yoktur.
Uygulama hizmet sorumlusuna rol atama
Ardından, uygulamanızın hangi kaynaklar üzerinde hangi rollere (izinlere) ihtiyacı olduğunu belirleyin ve bu rolleri oluşturduğunuz hizmet sorumlusuna atayın. Roller kaynak, kaynak grubu veya abonelik kapsamında atanabilir. Bu örnekte, çoğu uygulama tüm Azure kaynaklarını tek bir kaynak grubunda gruplandırdığından kaynak grubu kapsamında rollerin nasıl atandığı gösterilmektedir.
Azure portalında, uygulamanızı içeren kaynak grubunun Overview sayfasına gidin.
Sol gezinti bölmesinden Erişim denetimi (IAM) seçin.
Erişim denetimi (IAM) sayfasında + Ekle'yi ve ardından açılan menüden Rol ataması ekle'yi seçin. Rol ataması ekle sayfasında rolleri yapılandırmak ve atamak için birkaç sekme bulunur.
Rol sekmesinde, atamak istediğiniz rolü bulmak için arama kutusunu kullanın. Rolü seçin ve ardından İleri'yi seçin.
Üyeler sekmesinde:
- Değere erişim ata için Kullanıcı, grup veya hizmet sorumlusu öğesini seçin.
- Üyeler değeri için + Üyeleri seç'i seçerek Üyeleri seçin açılır penceresini açın.
- Daha önce oluşturduğunuz hizmet sorumlusunu arayın ve filtrelenen sonuçlardan seçin. Grubu seçmek ve açılır menü panelini kapatmak için Seç'i seçin.
- Gözden Geçir ve Ata'yı, Üyeler sekmesinin alt kısmında seçin.
Gözden geçir ve ata sekmesinde, sayfanın alt kısmında Gözden geçir ve ata seçeneğini seçin.
Uygulama ortamı değişkenlerini ayarlama
Çalışma zamanında, Azure Identity kitaplığı'ndan bazı kimlik bilgileri, örneğin DefaultAzureCredential, EnvironmentCredential ve ClientSecretCredential, ortam değişkenlerinde hizmet sorumlusu bilgilerini kurala göre arar. Java ile çalışırken, araçlarınıza ve ortamınıza bağlı olarak ortam değişkenlerini birden çok şekilde yapılandırabilirsiniz.
Seçtiğiniz yaklaşımdan bağımsız olarak, hizmet sorumlusu için aşağıdaki ortam değişkenlerini yapılandırın:
-
AZURE_CLIENT_ID: Azure'da kayıtlı uygulamayı tanımlamak için kullanılır. -
AZURE_TENANT_ID: Microsoft Entra kiracısının ID'si. -
AZURE_CLIENT_SECRET: Uygulama için oluşturulan gizli kimlik bilgisi.
- Bash
- Visual Studio Code
- IntelliJ IDEA
- Windows
Aşağıdaki ortam değişkenlerini ayarlayın. Yer tutucu değerlerini uygulama kaydınızdaki gerçek değerlerle değiştirin:
export AZURE_CLIENT_ID="<your-client-id>"
export AZURE_TENANT_ID="<your-tenant-id>"
export AZURE_CLIENT_SECRET="<your-client-secret>"
Üretim sunucusunda sistemli hizmet olarak çalışan bir Java uygulaması için, bir dosyada ortam değişkenlerini tanımlayın ve hizmet birimi dosyasındaki EnvironmentFile yönergesiyle buna başvurun:
[Unit]
Description=Java application service
After=network.target
[Service]
User=app-user
WorkingDirectory=/path/to/java-app
EnvironmentFile=/path/to/java-app/app-environment-variables
ExecStart=/usr/bin/java -jar app.jar
[Install]
WantedBy=multi-user.target
Ortam dosyası, ortam değişkenlerinin değerlerini içeren bir liste içermelidir:
AZURE_CLIENT_ID=<your-client-id>
AZURE_TENANT_ID=<your-tenant-id>
AZURE_CLIENT_SECRET=<your-client-secret>
Uygulamanızdan Azure hizmetleri için kimlik doğrulaması
Azure Identity kitaplığı farklı senaryoları ve Microsoft Entra kimlik doğrulama akışlarını destekleyen çeşitli credentials - TokenCredential uygulamaları sağlar. Aşağıdaki adımlarda, hizmet sorumlularıyla yerel olarak ve üretimde çalışırken ClientSecretCredential'ın nasıl kullanılacağı gösterilmektedir.
Kodu uygulama
azure-identity Dosyanıza pom.xml bağımlılığı ekleyin:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
</dependency>
Çeşitli Azure SDK istemci kitaplıklarından özelleştirilmiş istemci sınıflarını kullanarak Azure hizmetlere erişirsiniz. Uygulamanızda bir Azure SDK istemci nesnesi oluşturan tüm Java kodlar için şu adımları izleyin:
-
com.azure.identitypaketindenClientSecretCredentialBuildersınıfını içeri aktarın. -
ClientSecretCredential,ClientSecretCredentialBuilder,tenantIdveclientIdkullanarak birclientSecretnesne oluşturun. -
ClientSecretCredentialörneğini Azure SDK istemci nesnesi oluşturucusununcredentialyöntemine geçirin.
Bu yaklaşımın bir örneği aşağıdaki kod kesiminde gösterilmiştir:
import com.azure.identity.ClientSecretCredential;
import com.azure.identity.ClientSecretCredentialBuilder;
import com.azure.storage.blob.BlobServiceClient;
import com.azure.storage.blob.BlobServiceClientBuilder;
String tenantId = System.getenv("AZURE_TENANT_ID");
String clientId = System.getenv("AZURE_CLIENT_ID");
String clientSecret = System.getenv("AZURE_CLIENT_SECRET");
ClientSecretCredential credential = new ClientSecretCredentialBuilder()
.tenantId(tenantId)
.clientId(clientId)
.clientSecret(clientSecret)
.build();
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
.endpoint("https://<account-name>.blob.core.windows.net")
.credential(credential)
.buildClient();