Azure platformunda uygulamalarınızın Azure Active Directory (Azure AD) kiracınızdaki kaynaklara güvenli bir şekilde erişebilmesi için uygulama kaydı (App Registration) oluşturmanız gerekir. Bu işlem, uygulamanıza bir kimlik kazandırarak OAuth 2.0/OpenID Connect protokolleri üzerinden kimlik doğrulama ve yetkilendirme yapmanızı sağlar. Bu rehberde, Azure Portal üzerinden uygulama kaydı oluşturma sürecini detaylı olarak ele alacağız.
Neden Uygulama Kaydı Oluşturmalıyız?
Uygulama kaydı oluşturmak:
- Uygulamanıza Azure AD tarafından yönetilen bir kimlik kazandırır
- Microsoft Graph API, Azure REST API veya kendi API’lerinize güvenli erişim sağlar
- Single Sign-On (SSO) özelliğini uygulamanıza entegre etmenizi sağlar
- Kullanıcı adı/parola bilgilerini uygulamanızda saklamadan güvenli kimlik doğrulama yapmanızı sağlar
Ön Gereksinimler
- Aktif bir Azure hesabı
- Azure Active Directory üzerinde uygulama kaydetme yetkisi (genellikle Global Administrator, Cloud Application Administrator veya Application Administrator rollerine sahip kullanıcılar)
Adım 1: Azure Portal’a Giriş
- Azure Portal‘a gidin ve hesabınızla oturum açın.
- Üst arama çubuğunda “Azure Active Directory” yazıp seçin.
- Sol menüden “App registrations” (Uygulama kayıtları) seçeneğine tıklayın.
Adım 2: Yeni Uygulama Kaydı Oluşturma
- “New registration” (Yeni kayıt) düğmesine tıklayın.
- Aşağıdaki bilgileri doldurun:
- Name (Ad): Uygulamanızın adını girin (örneğin, “MyCompanyApp”)
- Supported account types (Desteklenen hesap türleri): Uygulamanızın erişmesini istediğiniz hesap türlerini seçin:
- Accounts in this organizational directory only (Yalnızca bu organizasyon dizinindeki hesaplar) – Sadece kendi kiracınızdaki kullanıcılar
- Accounts in any organizational directory (Herhangi bir organizasyon dizinindeki hesaplar) – Tüm Azure AD kiracılarındaki kullanıcılar
- Accounts in any organizational directory and personal Microsoft accounts (Herhangi bir organizasyon dizinindeki hesaplar ve kişisel Microsoft hesapları) – Azure AD kullanıcıları ve kişisel Microsoft hesapları
- Redirect URI (Yönlendirme URI’si): Kullanıcılar kimlik doğrulamayı tamamladıktan sonra yönlendirilecekleri URI’yi belirtin:
- Platform seçin (Web, SPA, iOS/macOS, Android veya Mobile and desktop applications)
- URI’yi girin (örneğin,
https://myapp.example.com/auth-callback
)
- “Register” (Kaydet) düğmesine tıklayın.
Adım 3: Kimlik Bilgilerini Alma
Uygulama kaydı oluşturulduğunda, aşağıdaki önemli kimlik bilgilerini alacaksınız:
- Application (client) ID (Uygulama (istemci) Kimliği): Uygulamanızı benzersiz şekilde tanımlayan GUID.
- Directory (tenant) ID (Dizin (kiracı) Kimliği): Azure AD kiracınızı tanımlayan GUID.
Bu değerler, uygulama kodunuzda Azure AD’ye karşı kimlik doğrulama yaparken kullanılacaktır.
Adım 4: İstemci Gizli Anahtarı (Client Secret) Oluşturma
Web uygulamaları veya API’ler için genellikle bir istemci gizli anahtarı oluşturmanız gerekir:
- Sol menüden “Certificates & secrets” (Sertifikalar ve gizli anahtarlar) seçeneğine tıklayın.
- “Client secrets” (İstemci gizli anahtarları) sekmesinde “New client secret” (Yeni istemci gizli anahtarı) düğmesine tıklayın.
- Bir açıklama girin ve süresini seçin (6 ay, 12 ay veya 24 ay).
- “Add” (Ekle) düğmesine tıklayın.
- Oluşturulan gizli anahtarın değerini hemen kopyalayın ve güvenli bir yerde saklayın. Bu değer, bir daha görüntülenmeyecektir!
Adım 5: API İzinlerini Yapılandırma
Uygulamanızın API’lere erişebilmesi için gerekli izinleri yapılandırın:
- Sol menüden “API permissions” (API izinleri) seçeneğine tıklayın.
- “Add a permission” (İzin ekle) düğmesine tıklayın.
- İzin vermek istediğiniz API’yi seçin (örneğin, Microsoft Graph).
- İzin türünü seçin:
- Delegated permissions (Yetkilendirilmiş izinler): Kullanıcı adına erişim
- Application permissions (Uygulama izinleri): Kullanıcı olmadan arka planda erişim
- Gerekli izinleri seçin ve “Add permissions” (İzinleri ekle) düğmesine tıklayın.
- Uygulama izinleri için, “Grant admin consent for [Tenant]” (Yönetici onayı ver) düğmesine tıklayarak kiracı genelinde onay verin.
Adım 6: Kimlik Doğrulama Ayarlarını Yapılandırma
- Sol menüden “Authentication” (Kimlik Doğrulama) seçeneğine tıklayın.
- İhtiyacınıza göre ek yönlendirme URI’leri ekleyin.
- “Implicit grant and hybrid flows” (Örtük hibe ve hibrit akışlar) bölümünde, uygulamanıza uygun akış türlerini etkinleştirin:
- ID tokens (Kimlik belirteçleri)
- Access tokens (Erişim belirteçleri)
- “Advanced settings” (Gelişmiş ayarlar) bölümünde:
- “Allow public client flows” (Genel istemci akışlarına izin ver): Mobil ve masaüstü uygulamalar için etkinleştirin.
- “Save” (Kaydet) düğmesine tıklayın.
Adım 7: Erişim Belirteci Yapılandırması (İsteğe Bağlı)
- Sol menüden “Token configuration” (Belirteç yapılandırması) seçeneğine tıklayın.
- “Add optional claim” (İsteğe bağlı talep ekle) düğmesine tıklayın.
- Belirteç türünü seçin (ID, Access, SAML).
- İhtiyacınız olan talepleri seçin ve “Add” (Ekle) düğmesine tıklayın.
Adım 8: Uygulama Manifestini Özelleştirme (İsteğe Bağlı)
- Sol menüden “Manifest” (Manifest) seçeneğine tıklayın.
- Uygulamanızın davranışını daha ayrıntılı yapılandırmak için JSON formatındaki manifestte değişiklikler yapabilirsiniz.
- Değişiklikleri yaptıktan sonra “Save” (Kaydet) düğmesine tıklayın.
Adım 9: Branding ve Özelleştirme
- Sol menüden “Branding” (Markalama) seçeneğine tıklayın.
- Uygulama adı, logosu, ana sayfa URL’si, kullanım koşulları URL’si ve gizlilik bildirimi URL’si gibi seçenekleri özelleştirin.
- “Save” (Kaydet) düğmesine tıklayın.
Adım 10: Sahip Atama (İsteğe Bağlı)
- Sol menüden “Owners” (Sahipler) seçeneğine tıklayın.
- “Add owners” (Sahip ekle) düğmesine tıklayarak uygulamanızı yönetecek ek kullanıcılar atayabilirsiniz.
Uygulama Kodunda Kullanım Örneği
Aşağıda, Node.js ile MSAL (Microsoft Authentication Library) kullanarak Azure AD kimlik doğrulaması yapan basit bir örnek bulunmaktadır:
const msal = require('@azure/msal-node');
const config = {
auth: {
clientId: "UYGULAMA_KIMLIGINIZ",
authority: "https://login.microsoftonline.com/KIRACI_KIMLIGINIZ",
clientSecret: "ISTEMCI_GIZLI_ANAHTARINIZ"
}
};
const cca = new msal.ConfidentialClientApplication(config);
async function getToken() {
const tokenRequest = {
scopes: ["https://graph.microsoft.com/.default"]
};
try {
const response = await cca.acquireTokenByClientCredential(tokenRequest);
return response.accessToken;
} catch (error) {
console.log("Hata oluştu:", error);
}
}
// Token'ı kullanarak API çağrıları yapın
getToken().then(token => {
console.log("Access Token:", token);
// Bu token ile API çağrıları yapabilirsiniz
});
Sık Karşılaşılan Sorunlar ve Çözümleri
- AADSTS65001: Kullanıcının onayı/iznini gerektiren yetkilendirilmiş izinler için gerekli yönetici onayı verilmemiş
- Çözüm: Azure AD yöneticisinden “Grant admin consent” (Yönetici onayı ver) düğmesine tıklamasını isteyin.
- AADSTS700016: Uygulama bulunamadı
- Çözüm: Uygulama (istemci) Kimliğinin doğru olduğundan emin olun.
- AADSTS7000215: Geçersiz istemci gizli anahtarı sağlandı
- Çözüm: İstemci gizli anahtarınızın süresi dolmuş olabilir, yeni bir tane oluşturun.
- Yönlendirme URI’si eşleşmiyor
- Çözüm: Uygulamanızda kullandığınız yönlendirme URI’sinin, Azure Portal’da kaydettiğinizle tam olarak eşleştiğinden emin olun.
En İyi Uygulamalar
- Gizli anahtarları güvenli tutun: İstemci gizli anahtarlarını kodunuza doğrudan yazmak yerine Azure Key Vault veya ortam değişkenleri gibi güvenli yöntemlerle saklayın.
- En Az Ayrıcalık İlkesi: Uygulamanıza sadece ihtiyaç duyduğu minimum izinleri verin.
- Sertifika Kullanımı: Uzun vadeli ve daha güvenli kimlik doğrulama için istemci gizli anahtarı yerine sertifikalar kullanmayı düşünün.
- Düzenli Rotasyon: İstemci gizli anahtarlarını düzenli olarak yenileyin ve eski anahtarları devre dışı bırakın.
- İzleme ve Denetim: Azure AD Denetim Günlüklerini kullanarak uygulama etkinliklerini düzenli olarak izleyin.
Sonuç
Azure Portal’da uygulama kaydı oluşturmak, uygulamalarınızın Azure hizmetleriyle güvenli bir şekilde entegre olmasını sağlayan temel bir adımdır. Bu rehberde öğrendiğiniz adımları takip ederek, uygulamanız için kimlik doğrulama ve yetkilendirme altyapısını kurabilir, modern kimlik doğrulama protokollerinin avantajlarından yararlanabilirsiniz.
Daha fazla bilgi için Microsoft Identity Platform dokümantasyonunu inceleyebilirsiniz.