Azure'da kimlik doğrulaması için Microsoft Entra ID kullanma

Microsoft Entra ID hizmeti kullanıcı yönetimi, etki alanı yönetimi ve çoklu oturum açma yapılandırması gibi çeşitli yönetim görevlerini etkinleştirir. Bu makalede Azure'da kimlik doğrulaması için sağlayıcı olarak Azure Otomasyonu içinde Microsoft Entra Id'nin nasıl kullanılacağı açıklanmaktadır.

Microsoft Entra modüllerini yükleme

Microsoft Entra Id'yi aşağıdaki PowerShell modülleri aracılığıyla etkinleştirebilirsiniz:

  • Graph için Azure Active Directory PowerShell (AzureRM ve Az modülleri). Azure Otomasyonu, AzureRM modülü ve son yükseltmesi olan Az modülüyle birlikte sağlanır. İşlev, Microsoft Entra kullanıcısı (OrgId) kimlik bilgisi tabanlı kimlik doğrulaması kullanarak Azure'da etkileşimli olmayan kimlik doğrulamasını içerir. Bkz . Microsoft Entra Id 2.0.2.76.

  • Windows PowerShell için Microsoft Entra Id (MSOnline modülü). Bu modül, Microsoft 365 dahil olmak üzere Microsoft Online ile etkileşimler sağlar.

Not

PowerShell Core, MSOnline modülünü desteklemez. Modül cmdlet'lerini kullanmak için bunları Windows PowerShell'den çalıştırmanız gerekir. MSOnline modülü yerine daha yeni Graph için Azure Active Directory PowerShell modüllerini kullanmanız tavsiye edilir.

Not

Azure AD ve MSOnline PowerShell modülleri 30 Mart 2024 itibarıyla kullanım dışı bırakılmıştır. Daha fazla bilgi edinmek için kullanımdan kaldırma güncelleştirmesini okuyun. Bu tarihten sonra bu modüllere yönelik destek, Microsoft Graph PowerShell SDK'sına geçiş yardımı ve güvenlik düzeltmeleriyle sınırlıdır. Kullanım dışı bırakılan modüller Mart 30 2025'e kadar çalışmaya devam edecektir.

Microsoft Entra ID (eski adıyla Azure AD) ile etkileşime geçmek için Microsoft Graph PowerShell'e geçiş yapmanızı öneririz. Sık sorulan geçiş soruları için Bkz. Geçiş hakkında SSS. Not: MSOnline'ın 1.0.x sürümleri 30 Haziran 2024'den sonra kesintiye neden olabilir.

Önyükleme

Microsoft Entra modüllerini bilgisayarınıza yüklemeden önce:

  • AzureRM/Az modülünün ve MSOnline modülünün önceki sürümlerini kaldırın.

  • Yeni PowerShell modüllerinin doğru şekilde çalıştığından emin olmak için Microsoft Online Services Oturum Açma Yardımcısı'nı kaldırın.

AzureRM ve Az modüllerini yükleme

Not

Bu modüllerle çalışmak için Windows'un 64 bit sürümüyle PowerShell sürüm 5.1 veya üzerini kullanmanız gerekir.

  1. Windows Management Framework (WMF) 5.1'i yükleyin. Bkz. WMF 5.1'i Yükleme ve Yapılandırma.

  2. PowerShellGet ile Windows'a Azure PowerShell yükleme başlığındaki yönergeleri kullanarak AzureRM ve/veya Az'yi yükleyin.

MSOnline modülünü yükleme

Not

MSOnline modülünü yüklemek için bir yönetici rolünün üyesi olmanız gerekir. Bkz. Yönetici rolleri hakkında.

  1. Bilgisayarınızda Microsoft .NET Framework 3.5.x özelliğinin etkinleştirildiğinden emin olun. Büyük olasılıkla bilgisayarınızda daha yeni bir sürüm yüklüdür, ancak .NET Framework'ün eski sürümleriyle geriye dönük uyumluluk etkinleştirilebilir veya devre dışı bırakılabilir.

  2. Microsoft Online Services Oturum Açma Yardımcısı'nın 64 bit sürümünü yükleyin.

  3. Yükseltilmiş bir Windows PowerShell komut istemi oluşturmak için Windows PowerShell'i yönetici olarak çalıştırın.

  4. MSOnline 1.0'dan Microsoft Entra Id'yi dağıtın.

  5. NuGet sağlayıcısını yüklemeniz istenirse Y yazın ve ENTER tuşuna basın.

  6. Modülü PSGallery'den yüklemeniz istenirse Y yazın ve ENTER tuşuna basın.

PSCredential için yükleme desteği

Azure Otomasyonu,Kimlik bilgisi varlığını temsil eden PSCredential sınıfı. Betikleriniz cmdlet'ini Get-AutomationPSCredential kullanarak nesneleri alırPSCredential. Daha fazla bilgi için bkz. Azure Otomasyonu kimlik bilgileri varlıkları.

Abonelik yöneticisi atama

Azure aboneliği için bir yönetici atamanız gerekir. Bu kişi, abonelik kapsamı için Sahip rolüne sahiptir. Bkz. Azure Otomasyonu’nda rol tabanlı erişim denetimi.

Microsoft Entra kullanıcısının parolasını değiştirme

Microsoft Entra kullanıcısının parolasını değiştirmek için:

  1. Azure oturumunuzu kapatın.

  2. Yöneticinin tam kullanıcı adını (etki alanı dahil) ve geçici bir parolayı kullanarak Yeni oluşturulan Microsoft Entra kullanıcısı olarak Azure'da oturum açmasını sağlayın.

  3. İstendiğinde yöneticiden parolayı değiştirmesini isteyin.

Azure aboneliğini yönetmek için Azure Otomasyonu yapılandırma

Azure Otomasyonu Microsoft Entra Id ile iletişim kurabilmesi için Microsoft Entra Id ile Azure bağlantısıyla ilişkili kimlik bilgilerini almanız gerekir. Bu kimlik bilgilerine örnek olarak kiracı kimliği, abonelik kimliği ve benzeri verilebilir. Azure ile Microsoft Entra Id arasındaki bağlantı hakkında daha fazla bilgi için bkz. Kuruluşunuzu Microsoft Entra Id ile Bağlan.

Kimlik bilgisi varlığı oluşturma

Microsoft Entra için Azure kimlik bilgileri kullanılabilir durumda olduğunda, runbook'ların ve Desire State Configuration (DSC) betiklerinin bunlara erişebilmesi için Microsoft Entra kimlik bilgilerini güvenli bir şekilde depolamak için bir Azure Otomasyonu kimlik bilgisi varlığı oluşturmanın zamanı geldi. Bunu Azure portalını veya PowerShell cmdlet'lerini kullanarak yapabilirsiniz.

Azure portalında kimlik bilgisi varlığını oluşturma

Kimlik bilgisi varlığını oluşturmak için Azure portalını kullanabilirsiniz. Bu işlemi, Paylaşılan Kaynaklar altındaki Kimlik Bilgilerini kullanarak Otomasyon hesabınızdan yapın. Bkz. Azure Otomasyonu kimlik bilgileri varlıkları.

Windows PowerShell ile kimlik bilgisi varlığı oluşturma

Windows PowerShell'de yeni bir kimlik bilgisi varlığı hazırlamak için betiğiniz önce atanan kullanıcı adı ve parolayı kullanarak bir PSCredential nesne oluşturur. Betik daha sonra New-AzureAutomationCredential cmdlet'ine yapılan bir çağrı aracılığıyla varlığı oluşturmak için bu nesneyi kullanır. Alternatif olarak betik, kullanıcıdan bir ad ve parola yazmasını istemesi için Get-Credential cmdlet'ini çağırabilir. Bkz. Azure Otomasyonu kimlik bilgileri varlıkları.

Azure Otomasyonu runbook'tan Azure kaynaklarını yönetme

Kimlik bilgisi varlığını kullanarak azure kaynaklarını Azure Otomasyonu runbook'lardan yönetebilirsiniz. Aşağıda, Bir Azure aboneliğinde sanal makineleri durdurmak ve başlatmak için kullanılacak kimlik bilgisi varlığını toplayan örnek bir PowerShell runbook'u verilmiştir. Bu runbook ilk olarak Azure'da kimlik doğrulaması yapmak için kullanılacak kimlik bilgilerini almak için kullanır Get-AutomationPSCredential . Ardından kimlik bilgilerini kullanarak Azure'a bağlanmak için Bağlan-AzAccount cmdlet'ini çağırır.

Workflow Workflow
{ 
    Param 
    (    
        [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] 
        [String] 
        $AzureSubscriptionId, 
        [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] 
        [String] 
        $AzureVMList="All", 
        [Parameter(Mandatory=$true)][ValidateSet("Start","Stop")] 
        [String] 
        $Action 
    ) 
     
    # Ensures you do not inherit an AzContext in your runbook
    Disable-AzContextAutosave -Scope Process

    # Connect to Azure with system-assigned managed identity
    $AzureContext = (Connect-AzAccount -Identity).context

    # set and store context
    $AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile $AzureContext 

    # get credential
    $credential = Get-AutomationPSCredential -Name "AzureCredential"

    # Connect to Azure with credential
    $AzureContext = (Connect-AzAccount -Credential $credential -TenantId $AzureContext.Subscription.TenantId).context 

    # set and store context
    $AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription `
        -TenantId $AzureContext.Subscription.TenantId `
        -DefaultProfile $AzureContext
 
    if($AzureVMList -ne "All") 
    { 
        $AzureVMs = $AzureVMList.Split(",") 
        [System.Collections.ArrayList]$AzureVMsToHandle = $AzureVMs 
    } 
    else 
    { 
        $AzureVMs = (Get-AzVM -DefaultProfile $AzureContext).Name 
        [System.Collections.ArrayList]$AzureVMsToHandle = $AzureVMs 
    } 
 
    foreach($AzureVM in $AzureVMsToHandle) 
    { 
        if(!(Get-AzVM -DefaultProfile $AzureContext | ? {$_.Name -eq $AzureVM})) 
        { 
            throw " AzureVM : [$AzureVM] - Does not exist! - Check your inputs " 
        } 
    } 
 
    if($Action -eq "Stop") 
    { 
        Write-Output "Stopping VMs"; 
        foreach -parallel ($AzureVM in $AzureVMsToHandle) 
        { 
            Get-AzVM -DefaultProfile $AzureContext | ? {$_.Name -eq $AzureVM} | Stop-AzVM -DefaultProfile $AzureContext -Force 
        } 
    } 
    else 
    { 
        Write-Output "Starting VMs"; 
        foreach -parallel ($AzureVM in $AzureVMsToHandle) 
        { 
            Get-AzVM -DefaultProfile $AzureContext | ? {$_.Name -eq $AzureVM} | Start-AzVM -DefaultProfile $AzureContext
        } 
    } 
}

Sonraki adımlar