Microsoft Azure App Registrations Sertifika/Secret Süre Takibi

Microsoft-Azure

Azure ortamında uygulama kimlik doğrulaması için kullanılan sertifikaların geçerlilik süreleri, sistem sürekliliği ve güvenliği açısından kritik bir rol oynar. Süresi dolmuş veya dolmak üzere olan sertifika/secret’ler, uygulama erişim sorunlarına ve güvenlik açıklarına neden olabilir.

Bu içerikte, Azure Portal üzerindeki App Registrations bölümünde tanımlı sertifikaların sürelerinin nasıl takip edileceğini, olası kesintilerin nasıl önleneceğini adım adım ele alacağız. Burada bu kontrol adımlarını farklı seçenekler ile de yapabilirsiniz. Örneğin Powershell , Power Automate gibi burada Python üzerinden bu kontrolü nasıl yapabiliriz bunu paylaşacağım. Diğer seçenekler içinde kaynak linkler ekleyeceğim.

Öncelikle bu adımlar için Application.Read.All yetkisine sahip bir App Registration oluşturmamız gerekiyor.

Resim-1

+ New Registration alanına tıklanır.

Resim-2

1- Name (İsim):

  • Bu, uygulamanın kullanıcı arayüzünde gözüken adı olacak.
  • Daha sonra değiştirilebilir.

2- Supported Account Types (Desteklenen Hesap Türleri)

Uygulamanın hangi kullanıcı türleri tarafından erişilebileceğini belirler:

Accounts in this organizational directory only (sedat only – Single tenant): 

  • Sadece sedat Azure AD kiracısındaki kullanıcılar erişebilir.
  • Kurum içi kullanım için idealdir.
  • Bu seçenek ile adımlarımıza devam edeceğiz bu yazımızda.

Diğer seçenekleri de inceleyelim;

Accounts in any organizational directory (Microsoft Entra ID tenant – Multitenant):

  • Diğer organizasyonlardaki Azure kullanıcıları da erişebilir.
  • SaaS senaryoları için uygundur.

Accounts in any organizational directory + personal Microsoft accounts:

  • Azure AD kullanıcıları + Outlook, Xbox gibi kişisel Microsoft hesapları da erişebilir.

Personal Microsoft accounts only:

  • Sadece kişisel Microsoft hesaplarına (hotmail, outlook.com vs.) açıktır.

3- Redirect URI (Yönlendirme URI’si) – Opsiyonel

  • Kimlik doğrulama tamamlandığında kullanıcının yönlendirileceği URI.
  • Boş bırakılabilir, daha sonra tanımlanabilir.
  • Eğer OAuth gibi kimlik doğrulama senaryoları kullanılacaksa önemlidir.

4- Register Butonu

  • Tüm seçimler yapıldıktan sonra Register butonuna tıklanarak uygulama kaydı tamamlanır.
  • Bu işlem sonucunda Application (client) ID ve Directory (tenant) ID gibi bilgiler elde edilir.

Resim-3

App Registration oluşturuldu. Detaylarına buradan erişebiliriz.

Resim-4

Certificates & secrets seçeneği altında New client secret tıklanır;

  • Uygulamamızın Azure AD üzerinden kimlik doğrulaması (authentication) yapabilmesi için bir gizli anahtar (client secret) gerekir.
  • Oluşturulan client secret belirli bir süre (expiration) geçerlidir; süresi dolduğunda yenilenmesi gerekir.
  • Microsoft Graph gibi servisine güvenli bağlantı kurarken kullanacağız.

 

Resim-5

Oluşturulan Secret’in ne kadar süre geçerli olacağı seçilir. Custom seçeneği ile oluşturlan secret’in başlangıç ve süre sonu tarihleri el ile de seçilebilir maksimum süre başlangıç sonrasında 2 yıl şeklindedir.

Burada 90 günlük oluşturuyoruz. İşlemi tamamlamak için Add seçeneği’ne tıklıyoruz.

Resim-6
Oluşan secret’i kontrol ediyoruz. Burada ilk oluştuğunda bize sağladığı Value değerini saklamamız gerekiyor.
Resim-7
API Permissions seçeneği altında Add a permission alanına tıklanır.
Resim-8
Resim-9
Applications permissions seçilir açılan pencerede Application.Read.All yetkisi aratılır ve seçilir. Add permissions tıklanır.
Resim-10
İlgili alanda yetkiniz mevcut ise ” Grant admin constent for …” seçeneği tıklanır yetki onaylanır. Yetkiniz yok ise yetkili kişiden onay talep edebilirsiniz.
App Registration oluşturduk ve yetkileri tanımladık. Şimdi aşağıdaki Github linki üzerinden ilgili komut satırına ulaşabilirsiniz.
Link: azure_certificate_check
Komut içerisinde güncellenmesi gereken yerler;
# Oluşturduğumuz App Registration ve buna ait olan secret bilgileri
client_id = “ID”
client_secret = “Secret ID”
tenant_id = “Tenant ID”
# SMTP bilgileri
smtp_server = “smtp.outlook.com”
smtp_port = 587
smtp_user = “smtp@smtpuser.com”
smtp_password = “Password”  # Güvenli şekilde alınması önerilir.
Kullanım isteğine bağlı olarak değiştirilebilir bu değer: days_until_expiration = 30
Bilgilerin gönderileceği mail adresi: msg[‘To’] = “recipient email address”
Resim-11
Gönderilen örnek mail içeriği bu şekildedir.
Python üzerinden verilerin çekilmesini ve mail üzerinden paylaşılmasını paylaştım. Bunu isterseniz Görev zamanlayıcısı oluşturup günlük kontrol ile takip edebilir ve ilgili kullanıcılara bildirebilirsiniz mail üzerinden. Yukarıda bahsettiğim diğer seçeneklerde aşağıda linklerini paylaştığım şekildedir. İnceleyerek uygulayabilirsiniz.
Powershell: https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/scripts/powershell-export-apps-with-expiring-secrets
Power Automate: https://techcommunity.microsoft.com/blog/coreinfrastructureandsecurityblog/use-power-automate-to-notify-of-upcoming-azure-ad-app-client-secrets-and-certifi/2406145#comments

Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz. 

Referanslar

http://www.mshowto.org/

Yazı gezinmesi

Mobil sürümden çık