Kişisel erişim belirteçlerini kullanma

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Kişisel Erişim Belirteci (PAT), Azure DevOps'ta kimlik doğrulaması için alternatif bir parola görevi görür. Bu PAT sizi tanımlar ve erişilebilirliğinizi ve erişim kapsamınızı belirler. Bu nedenle, PAT'lere parolalarla aynı düzeyde dikkatli davranın.

Microsoft araçlarını kullandığınızda, Microsoft hesabınız (MSA) veya Microsoft Entra Id tanınan ve desteklenen bir yöntemdir. Microsoft veya Microsoft Entra hesaplarını desteklemeyen Microsoft dışı araçlar kullanıyorsanız veya birincil kimlik bilgilerinizi bu araçlarla paylaşmayı tercih ediyorsanız, PAT'ler uygun bir alternatiftir.

Bu makale, Azure DevOps için PAT oluşturma, kullanma, değiştirme ve iptal etme konusunda size yol gösterir.

AŞAĞıDAKI yöntemleri kullanarak PTS'leri yönetebilirsiniz:

Microsoft dışı araçlar için PAT'ler oluşturmak için Git kimlik bilgileri yöneticilerini kullanabilir veya bunları el ile oluşturabilirsiniz. Uygun kimlik doğrulama mekanizmasını seçmek için kimlik doğrulama kılavuzumuzu gözden geçirmenizi öneririz. PAT'ler, kapsamlı bir çözüm gerektirmeyen küçük projeler için basit bir alternatif sağlar. Kimlik bilgisi yöneticisi olmadan, kullanıcılar kimlik bilgilerini her seferinde girişler.

Önkoşullar

  • İzinler:
    • PAT'ların yönetildiği kullanıcı ayarlarınıza erişme ve bunları değiştirme iznine sahip olun.
      • İzinleri denetleme: İzinlerinizi denetlemek için Azure DevOps'ta aşağıdaki işlemlerden birini yapın:
        • Profilinize gidin ve Kullanıcı ayarları>Kişisel erişim belirteçleri'ni seçin. PAT'lerinizi burada görüp yönetebiliyorsanız, gerekli izinlere sahipsinizdir.
        • Projenize gidin ve Proje ayarları>İzinler'i seçin. Listede kullanıcı hesabınızı bulun ve size atanan izinleri denetleyin. Belirteçleri veya kullanıcı ayarlarını yönetmeyle ilgili izinleri arayın.
    • Kuruluşunuzda ilkeler varsa, Azure DevOps Yöneticisinin size belirli izinler vermesi veya PAT'leri oluşturup yönetmek için sizi izin verilenler listesine eklemesi gerekebilir.
    • PAT ile gerçekleştirmek istediğiniz görevlere bağlı olarak ek izinlere ihtiyacınız olabilir. Örneğin:
      • Derleme: Okuma ve yürütme
      • Kod: Okuma, yazma ve yönetme
      • Ortam: Okuma ve yönetme
      • Proje ve ekip: Okuma, yazma ve yönetme
      • Değişken grupları: Okuma ve oluşturma
  • Erişim düzeyleri: En az Temel erişime sahip olun.
  • En iyi güvenlik uygulamaları: PAT'leri yönetmek için yalnızca gerektiğinde kullanma ve düzenli olarak döndürme gibi en iyi güvenlik uygulamaları hakkında bilgi sahibi olun.

PAT oluşturma

  1. Kuruluşunuzda oturum açın (https://dev.azure.com/{Your_Organization}).

  2. Giriş sayfanızdan kullanıcı ayarlarını açın ve Kişisel erişim belirteçleri'ni seçin.

    Kişisel Erişim Belirteçleri seçimini gösteren ekran görüntüsü.

  3. + Yeni Belirteç'i seçin.

    Yeni Belirteç seçimini gösteren ekran görüntüsü.

  4. Belirtecinizi adlandırın, belirteci kullanmak istediğiniz kuruluşu seçin ve belirtecinizin süresi belirli bir gün sayısından sonra otomatik olarak dolacak şekilde ayarlayın.

    Temel belirteç bilgilerinin girişini gösteren ekran görüntüsü.

  5. Belirli görevleriniz için yetkilendirmek üzere bu belirtecin kapsamlarını seçin.

    Örneğin, Azure DevOps'ta kimlik doğrulaması yapmak üzere bir derleme ve yayın aracısı için belirteç oluşturmak için belirtecin kapsamını Aracı Havuzları (Okuma ve yönetme) olarak ayarlayın. Denetim günlüğü olaylarını okumak ve akışları yönetmek veya silmek için Denetim Günlüğünü Oku'ya ve ardından Oluştur'a tıklayın.

    PAT için seçili kapsamları gösteren ekran görüntüsü.

    Not

    Tam kapsamlı PAT'ler oluşturmanız kısıtlanmış olabilir. Bu durumda, Microsoft Entra Id'deki Azure DevOps Yöneticiniz sizi belirli bir özel tanımlı kapsam kümesiyle sınırlayan bir ilke etkinleştirmiştir. Daha fazla bilgi için bkz . İlkelerle PAT'leri yönetme/Tam kapsamlı PAT oluşturmayı kısıtlama. Özel tanımlı bir PAT için, Bileşen İdareSI API'sine vso.governanceerişmek için gereken kapsam kullanıcı arabiriminde seçilemez.

  6. İşiniz bittiğinde belirteci kopyalayın ve güvenli bir konumda depolayın. Güvenliğiniz için yeniden görüntülenmez.

    Belirtecin panonuza nasıl kopyalanmasını gösteren ekran görüntüsü.

Azure DevOps'ta kimlik doğrulaması için kullanıcı kimlik bilgilerinizin gerekli olduğu her yerde PAT'nizi kullanın.

Önemli

  • Pat'e parolanızla aynı dikkatle davranın ve gizli tutun.
  • Microsoft Entra Id tarafından desteklenen kuruluşlar için 90 gün içinde yeni PAT'nizle oturum açın; aksi takdirde PAT etkin değildir. Daha fazla bilgi için bkz . Koşullu Erişim için kullanıcı oturum açma sıklığı.

Notifications

Pat'in kullanım ömrü boyunca kullanıcılar iki bildirim alır: oluşturma sırasında ilk ve sona erme tarihinden yedi gün önceki ikinci bildirim.

PAT oluşturduktan sonra aşağıdaki örneğe benzer bir bildirim alırsınız. Bu bildirim, PAT'nizin kuruluşunuza başarıyla eklendiğini onaylar.

PAT tarafından oluşturulan bildirimi gösteren ekran görüntüsü.

Aşağıdaki görüntüde PAT'nizin süresi dolmadan önceki yedi günlük bildirimin bir örneği gösterilmektedir.

PAT yakın süre sonu bildirimini gösteren ekran görüntüsü.

Beklenmeyen bildirim

Beklenmeyen bir PAT bildirimi alırsanız, bu bir yöneticinin veya aracın sizin için bir PAT oluşturduğu anlamına gelebilir. İşte bazı örnekler.

  • git.exe aracılığıyla bir Azure DevOps Git deposuna bağlandığınızda "git: https://dev.azure.com/{Your_Organization} on YourMachine" adlı bir belirteç oluşturulur.
  • Siz veya bir yönetici Azure Uygulaması Service web uygulaması dağıtımı ayarladığınızda "Hizmet Kancaları: : Azure Uygulaması Hizmeti: : Web uygulaması dağıtma" adlı bir belirteç oluşturulur.
  • Web yük testi siz veya yönetici tarafından bir işlem hattının parçası olarak ayarlandığında "WebAppLoadTestCDIntToken" adlı bir belirteç oluşturulur.
  • Microsoft Teams Integration Messaging Uzantısı ayarlandığında "Microsoft Teams Tümleştirmesi" adlı bir belirteç oluşturulur.

Uyarı

PAT kullanma

PAT'niz, parola gibi dijital kimliğiniz olarak görev alır.

Git

Git etkileşimleri, boş bir dize dışında herhangi bir şey olabilecek bir kullanıcı adı gerektirir. AŞAĞıDAKI kod bloğunda gösterildiği gibi, Base64-encode HTTP temel kimlik doğrulaması ile pat kullanmak için.$MyPat

PowerShell'de aşağıdaki kodu girin.

$MyPat = 'yourPat'
$headerValue = "Authorization: Basic " + [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(":" + $MyPat))
$env:GIT_AUTH_HEADER = $headerValue

git --config-env=http.extraheader=GIT_AUTH_HEADER clone https://dev.azure.com/yourOrgName/yourProjectName/_git/yourRepoName

Kimlik bilgilerinizi her seferinde girmekten kaçınmak ve belirtecinizi daha güvenli tutmak için kimlik bilgileri yöneticilerini kullanın:

Mevcut depolar

  • Var olan kaynağı kaldır: Kaynağı daha önce bir kullanıcı adı kullanarak eklediyseniz, aşağıdaki komutu çalıştırarak kaynağı kaldırın:

    git remote remove origin

  • PAT ile kimlik doğrulaması: Standart kimlik doğrulamasıyla ilgili sorunlarla karşılaşırsanız, komut satırı aracılığıyla kimlik doğrulaması yapmak için aşağıdaki komutu çalıştırın:

    git remote add origin https://dev.azure.com/<PAT>@<company_machineName>:/<project-name>/_git/<repo_name>

    git push -u origin --all

    , path to git repo = /_git/do Git depoları için Azure DevOps'ta kullanılan URL yolu yapısını ifade eder. Segment, /_git/ git deposuna eriştiğinizi gösterir ve değerini deponuzun gerçek adıyla değiştirmeniz do gerekir. Örneğin, deponuzun adı my-repoise yol '/_git/my-repo' olacaktır.

  • Depoyu kopyalama: Git kullanıyorsanız ve kimlik doğrulaması yapmanız gerekiyorsa aşağıdaki komutu çalıştırın:

    git clone https://{organization}@dev.azure.com/{organization}/_git/{repository}

    değerini Azure DevOps kuruluşunuzun adıyla ve {repository} deponuzun adıyla değiştirin{organization}.

Kodunuzda PAT kullanma

API isteklerinin kimliğini doğrulamak ve iş akışlarını otomatikleştirmek için kodunuzda pat kullanabilirsiniz. Bunu yapmak için HTTP isteklerinizin yetkilendirme üst bilgisine PAT'yi ekleyin.

PAT'yi bir HTTP üst bilgisi aracılığıyla sağlamak için önce dizeye Base64 dönüştürün. Aşağıdaki örnekte C# kullanarak nasıl dönüştürüldüğü Base64 gösterilmektedir.


Authorization: Basic BASE64_USERNAME_PAT_STRING

Sonuçta elde edilen dize, aşağıdaki biçimde bir HTTP üst bilgisi olarak sağlanabilir.

Aşağıdaki örnekte C# dilinde HttpClient sınıfı kullanılmaktadır.

public static async void GetBuilds()
{
    try
    {
        var personalaccesstoken = "PATFROMWEB";

        using (HttpClient client = new HttpClient())
        {
            client.DefaultRequestHeaders.Accept.Add(
                new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
                Convert.ToBase64String(
                    System.Text.ASCIIEncoding.ASCII.GetBytes(
                        string.Format("{0}:{1}", "", personalaccesstoken))));

            using (HttpResponseMessage response = client.GetAsync(
                        "https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=5.0").Result)
            {
                response.EnsureSuccessStatusCode();
                string responseBody = await response.Content.ReadAsStringAsync();
                Console.WriteLine(responseBody);
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
    }
}

İpucu

Değişkenleri kullanırken, aşağıdaki örnekte olduğu gibi dizenin başına bir $ ekleyin.

public static async void GetBuilds()
{
   try
  {
      var personalaccesstoken = "PATFROMWEB";

      using (HttpClient client = new HttpClient())
       {
           client.DefaultRequestHeaders.Accept.Add(
              new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

           client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
               Convert.ToBase64String(
                   System.Text.ASCIIEncoding.ASCII.GetBytes(
                       string.Format("{0}:{1}", "", personalaccesstoken))));

          using (HttpResponseMessage response = client.GetAsync(
                       $"https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=5.0").Result)
           {
               response.EnsureSuccessStatusCode();
               string responseBody = await response.Content.ReadAsStringAsync();
               Console.WriteLine(responseBody);
           }
       }
   }
   catch (Exception ex)
   {
       Console.WriteLine(ex.ToString());
   }
}

Kodunuz çalışırken, temel kimlik doğrulamasından OAuth'a geçiş yapmak iyi bir zaman.

PAT'leri kullanma hakkında daha fazla bilgi ve örnek için aşağıdaki makalelere bakın:

PAT'i değiştirme

Aşağıdaki adımları izleyerek:

  1. Giriş sayfanızdan kullanıcı ayarlarınızı açın ve profil'i seçin.

    PAT'yi değiştirmek için seçebileceğiniz düğme sırasını gösteren ekran görüntüsü.

  2. Güvenlik bölümünde Kişisel erişim belirteçleri'ni seçin. Değiştirmek istediğiniz belirteci ve ardından Düzenle'yi seçin.

    PAT'yi değiştirmek için vurgulanmış Düzenle düğmesini gösteren ekran görüntüsü.

  3. Belirteç adını, belirteç süre sonunu veya belirteçle ilişkili erişim kapsamını düzenleyin ve kaydet'i seçin.

    Değiştirilmiş PAT'i gösteren ekran görüntüsü.

PAT'i iptal etme

Pat'i şu ve diğer nedenlerle istediğiniz zaman iptal edebilirsiniz:

  • Gizliliği ihlal edilmiş olduğundan şüpheleniyorsanız PAT'i iptal edin.
  • Artık gerekli olmadığında PAT'i iptal etme.
  • Güvenlik ilkelerini veya uyumluluk gereksinimlerini zorunlu kılmak için PAT'yi iptal edin.
  1. Giriş sayfanızdan kullanıcı ayarlarınızı açın ve profil'i seçin.

    Seçecek düğmelerin sırasını, Team Services'ı, Önizleme sayfasını ve PAT'yi iptal etme işlemini gösteren ekran görüntüsü.

  2. Güvenlik bölümünde Kişisel erişim belirteçleri'ni seçin. Erişimini iptal etmek istediğiniz belirteci seçin ve ardından İptal Et'i seçin.

    Tek bir belirteci veya tüm belirteçleri iptal etme seçimini gösteren ekran görüntüsü.

  3. Onay iletişim kutusunda İptal Et'i seçin.

    PAT'yi iptal etmek için onay ekranını gösteren ekran görüntüsü.

Daha fazla bilgi için bkz . Yöneticiler için kullanıcı PAT'lerini iptal etme.

Biçim değişiklikleri

Temmuz 2024 itibarıyla Azure DevOps tarafından verilen PAT'lerin biçimini önemli ölçüde değiştirdik. Bu değişiklikler daha fazla güvenlik avantajı sağlar ve Azure DevOps için GitHub Gelişmiş Güvenlik gibi iş ortağı tekliflerimiz aracılığıyla sağlanan gizli dizi algılama araçlarını geliştirir. Bu yeni PAT biçimi, tüm Microsoft ürünlerinde önerilen biçimi izler. Daha tanımlanabilir bitlerin eklenmesi, bu gizli dizi algılama araçlarının hatalı pozitif algılama oranını artırır ve algılanan sızıntıları daha hızlı azaltmamıza olanak tanır.

Önemli değişiklikler:

  • Artan belirteç uzunluğu: Yeni belirteçler artık 84 karakter uzunluğundadır ve 52 karakter rastgele verilerdir. Bu artan uzunluk genel entropiyi geliştirerek belirteçlerin olası deneme yanılma saldırılarına karşı daha dayanıklı olmasını sağlar.
  • Düzeltilen imza: Hizmetimiz tarafından verilen belirteçler 76-80 konumlarında sabit AZDO bir imza içerir.

Eylem gerekli:

  • Mevcut PTS'leri yeniden oluşturma: Bu güvenlik geliştirmelerinden yararlanmak için şu anda kullanımda olan tüm PAT'leri yeniden oluşturmanızı kesinlikle öneririz.
  • Tümleştirici desteği: Tümleştiriciler, sistemlerini hem yeni hem de mevcut belirteç uzunluklarını karşılayacak şekilde güncelleştirmelidir.

Önemli

Her iki biçim de öngörülebilir gelecek için geçerli olmaya devam ediyor, ancak müşterilerin yeni 84 karakterlik biçime geçiş yapmaları için etkin bir şekilde teşvik ediyoruz. Yeni biçimin benimsenmesi arttıkça, eski 52 karakterlik biçimi ve bu stilde verilen tüm belirteçleri kullanımdan kaldırmayı düşünüyoruz.

SSS

S: Pat kapsamındaki bir PAT'yi neden tek bir kuruluşta düzenleyemiyorum veya yeniden oluşturamıyorum?

Y: PAT'inizin kapsamının bulunduğu kuruluşta oturum açtığınızdan emin olun. Herhangi bir kuruluşta oturum açmış durumdayken tüm PAT'lerinizi aynı Microsoft Entra Kimliği'nde görüntüleyebilirsiniz, ancak yalnızca kapsamı belirlenmiş kuruluşta oturum açtığınızda kuruluş kapsamındaki belirteçleri düzenleyebilirsiniz.

S: Kullanıcı hesabı devre dışı bırakılırsa PAT'ye ne olur?

Y: Bir kullanıcı Azure DevOps'tan kaldırıldığında PAT 1 saat içinde geçersiz olur. Kuruluşunuz Microsoft Entra Id'ye bağlıysa PAT, kullanıcıya ait olduğu için Microsoft Entra Id'de de geçersizdir. Hizmetleri çalışır durumda tutmak için PAT'yi başka bir kullanıcı veya hizmet hesabına döndürmenizi öneririz.

S: REST API aracılığıyla PAT yenilemenin bir yolu var mı?

Y: Evet, PAT Yaşam Döngüsü Yönetimi API'lerimizi kullanarak PTS'leri yenilemenin, yönetmenin ve oluşturmanın bir yolu vardır. Daha fazla bilgi için bkz . REST API kullanarak PAT'leri yönetme ve SSS.

S: Tüm Azure DevOps REST API'leriyle temel kimlik doğrulaması kullanabilir miyim?

Y: Hayır. Temel kimlik doğrulamasını çoğu Azure DevOps REST API'siyle kullanabilirsiniz, ancak kuruluşlar ve profiller yalnızca OAuth'u destekler. Daha fazla bilgi için bkz . REST API kullanarak PAT'leri yönetme.

S: PAT'imi yanlışlıkla GitHub'daki bir genel depoya kontrol edersem ne olur?

Y: Azure DevOps, GitHub'da genel depolarda denetlenen PTS'leri tarar. Sızdırılmış bir belirteç bulduğumuzda, belirteç sahibine hemen ayrıntılı bir e-posta bildirimi gönderir ve Azure DevOps kuruluşunuzun denetim günlüğüne bir olay kaydederiz. Sızdırılan kişisel erişim belirteçlerini otomatik olarak iptal et ilkesini devre dışı bırakmazsan, sızdırılan PAT'yi hemen iptal ederiz. Etkilenen kullanıcıların sızdırılan belirteci iptal edip yeni bir belirteçle değiştirerek sorunu azaltmalarını öneririz.

Daha fazla bilgi için bkz . Sızdırılan PAT'leri otomatik olarak iptal etme.

S: Dotnet/nuget.exe komut satırını kullanarak NuGet paketlerini Azure Artifacts akışında yayımlamak için ApiKey olarak kişisel erişim belirtecini kullanabilir miyim?

Y: Hayır. Azure Artifacts, kişisel erişim belirtecinin ApiKey olarak kullanılmasını desteklemez. Yerel bir geliştirme ortamı kullanırken, Azure Artifacts ile kimlik doğrulaması yapmak için Azure Artifacts Kimlik Bilgisi Sağlayıcısı’nı yüklemenizi öneririz. Daha fazla bilgi için aşağıdaki örneklere bakın: dotnet, NuGet.exe. Paketlerinizi Azure Pipelines kullanarak yayımlamak istiyorsanız, akış örneğinizle kimlik doğrulaması yapmak için NuGet Kimlik Doğrulaması görevini kullanın.

S: PAT'im neden çalışmayı durdurdu?

Y: PAT kimlik doğrulaması, tam kimlik doğrulama akışını kullanarak Azure DevOps'ta düzenli olarak oturum açmanızı gerektirir. 30 günde bir oturum açmak birçok kullanıcı için yeterlidir, ancak Microsoft Entra yapılandırmanıza bağlı olarak daha sık oturum açmanız gerekebilir. PAT'niz çalışmayı durdurursa, önce kuruluşunuzda oturum açmayı deneyin ve tam kimlik doğrulama istemini tamamlayın. PAT'niz hala çalışmıyorsa süresinin dolduğunu denetleyin.

S: Dağıtım amacıyla belirli bir kişiye bağlı olmayan erişim anahtarları Nasıl yaparım??

Y: Azure DevOps'ta, Hizmet Sorumlularını veya Kimlikleri Yönet'i kullanarak belirli bir kişiye bağlı olmayan erişim anahtarları oluşturabilirsiniz. Daha fazla bilgi için bkz . Hizmet bağlantılarını yönetme, Azure Pipelines'da Azure Key Vault gizli dizilerini kullanma.