OAuth 2.0 ile REST API'lerine erişimi yetkilendirme

Azure DevOps Services

Not

OAuth 2.0 Azure DevOps Services destek Azure DevOps Server. İstemci Kitaplıkları, belirli bir işlevi genişletmek için özel olarak Azure DevOps Server pakettir. Şirket içi kullanıcılar için, bir kullanıcı adına kimlik doğrulaması yapmak için İstemci Kitaplıkları, Windows Kimlik Doğrulaması veya Kişisel Erişim Belirteçleri (PAT) kullanılması önerilir.

Erişim için web uygulaması kullanıcı REST API kimlik doğrulaması yapın, böylece uygulamanız kullanıcı adı ve parola istemeye devam etmez. Azure DevOps Services bir kullanıcı için uygulama yetkilendirmek ve bir erişim belirteci oluşturmak için OAuth 2.0 protokolünü kullanır. Rest API'lerini uygulamanıza çağırarak bu belirteci kullanın.

Bu kullanıcı Azure DevOps Services API'lerini çağırarak kullanıcının erişim belirteci kullanın. Erişim belirteçleri sona erer, bu nedenle süresi dolduğunda erişim belirteci yenileyin.

Yetkilendirmeyi almak için işlem.

Genel akışA bir C# örneği için bkz. vsts-auth-samples.

Uygulama kaydetme

Uygulama https://app.vsaex.visualstudio.com/app/register kaydetmeye gidin.

Uygulamanıza gereken kapsamları seçin ve ardından, uygulamanıza yetki verdiğinizde aynı kapsamları kullanın. Önizleme API'lerini kullanarak uygulama kaydettiyebilirsiniz, çünkü artık kullanılan kapsamlar kullanım dışıdır.

Kullanıcı Azure DevOps Services onay sayfasını kullanıcınıza sunarsa, şirket adınız, uygulama adınız ve açıklamalarınızı kullanır. Ayrıca, şirket web sitenizin, uygulama web sitenizin URL'lerini ve hizmet koşulları ile gizlilik bildirimini kullanır.

Visual Studio ve uygulama bilgileriyle Codespaces yetkilendirme sayfasını açın.

Bu Azure DevOps Services bir kullanıcının yetkilendirmesini sorduğunda ve kullanıcı bunu onaylarsa, kullanıcının tarayıcısı yetkilendirme koduyla yetkilendirme geri çağırma URL'nize yeniden yönlendirildi. Geri çağırma URL'si, kodu uygulamaya geri aktaran güvenli bir bağlantı (https) olmalıdır. Uygulamanıza kaydedilen URL ile tam olarak eşleşmesi gerekir. Görüntülenmezse, kullanıcıdan uygulamanıza yetkilendirme izni verilmesini isteyen bir sayfa yerine 400 hata sayfası görüntülenir.

Uygulama ayarları sayfası, uygulama kaydınızı tamamlar.

Uygulamanız için gösterilen uygulama ayarları.

Yetkilendirme URL'sini arayın ve bir kullanıcının uygulamanıza kuruluşuna erişmesi için yetkilendirmesini istediğiniz uygulama kimliği ve yetkili kapsamları girin. Erişim belirteci URL'sini çağırarak bir erişim belirteci almak Azure DevOps Services REST API.

Kaydolan her uygulamanın ayarları profilinizden https://app.vssps.visualstudio.com/profile/view edinebilirsiniz.

Uygulamanıza yetki verme

Kullanıcınız henüz uygulamanıza kuruluşuna erişmek için yetkilendirilmediyse yetkilendirme URL'sini arayın.

https://app.vssps.visualstudio.com/oauth2/authorize
        ?client_id={app ID}
        &response_type={Assertion}
        &state={state}
        &scope={scope}
        &redirect_uri={callback URL}
Parametre Tür Notlar
client_id GUID Uygulamanıza kaydediken atanan kimlik.
response_type string Assertion
state string Herhangi bir değer olabilir. Genellikle geri çağırmayı ilişkili yetkilendirmeyle ilişkilendirilen bir dize değeri oluşturulur. Istek.
scope string Uygulamaya kayıtlı kapsamlar. Boşlukla ayrılmış. Kullanılabilir kapsamlara bakın.
redirect_uri URL Uygulamanız için geri çağırma URL'si. Uygulamayla kaydedilen URL ile tam olarak eşleşmesi gerekir.

Azure DevOps Services kullanıcıdan uygulamanıza yetki vermelerini isterse. Kimlik doğrulamasını halleder ve ardından kullanıcı yetkilendirmeyi onaylıyorsa sizi bir yetkilendirme koduyla geri arar.

Sitenize, kullanıcı yetkilendirme uç noktasına bir bağlantı veya Azure DevOps Services ekleyin:

https://app.vssps.visualstudio.com/oauth2/authorize
        ?client_id=88e2dd5f-4e34-45c6-a75d-524eb2a0399e
        &response_type=Assertion
        &state=User1
        &scope=vso.work%20vso.code_write
        &redirect_uri=https://fabrikam.azurewebsites.net/myapp/oauth-callback

Azure DevOps Services kullanıcıdan uygulamanıza yetki vermelerini isterse.

Kullanıcının kabul etmiş olduğu varsay Azure DevOps Services, kullanıcının tarayıcısını kısa süreli yetkilendirme kodu ve yetkilendirme URL'sinde sağlanan durum değeri de dahil olmak üzere geri çağırma URL'nize yeniden yönlendirer:

https://fabrikam.azurewebsites.net/myapp/oauth-callback
        ?code={authorization code}
        &state=User1

Kullanıcı için erişim ve yenileme belirteci alın

Şimdi yetkilendirme kodunu kullanarak kullanıcıya bir erişim belirteci (ve yenileme belirteci) talep edersiniz. Hizmetinizin hizmetten hizmete HTTP isteği Azure DevOps Services.

URL - uygulamayı yetkilendirme

POST https://app.vssps.visualstudio.com/oauth2/token

HTTP isteği üst bilgileri - uygulamayı yetkilendirme

Üst bilgi Değer
İçerik Türü application/x-www-form-urlencoded
İçerik Uzunluğu İstek gövdesinin hesaplanan dize uzunluğu (aşağıdaki örnekte yer alan)
Content-Type: application/x-www-form-urlencoded
Content-Length: 1322

HTTP istek gövdesi - uygulamayı yetkilendirme

client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&client_assertion={0}&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion={1}&redirect_uri={2}

Önceki örnek istek gövdesinin yer tutucu değerlerini değiştirin:

  • {0}: Uygulama kaydediken alınan URL kodlanmış istemci gizli adı
  • {1}: Sorgu parametresi aracılığıyla geri arama URL'nize sağlanan URL code ile kodlanmış "kod"
  • {2}: uygulamaya kayıtlı geri çağırma URL'si

İstek gövdeyi oluşturmak için C# örneği - uygulamayı yetkilendirme

public string GenerateRequestPostData(string appSecret, string authCode, string callbackUrl)
{
   return String.Format("client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&client_assertion={0}&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion={1}&redirect_uri={2}",
               HttpUtility.UrlEncode(appSecret),
               HttpUtility.UrlEncode(authCode),
               callbackUrl
        );
}

Yanıt - uygulamayı yetkilendirme

{
    "access_token": { access token for the user },
    "token_type": { type of token },
    "expires_in": { time in seconds that the token remains valid },
    "refresh_token": { refresh token to use to acquire a new access token }
}

Önemli

Uygulamanın kullanıcıdan refresh_token için yeniden yetkilendirmesi gerekmayacak şekilde uygulamayı güvenli bir şekilde kalıcı hale indirin. Erişim belirteçleri görece hızlı bir şekilde sona erer ve kalıcı olmaması gerekir.

Erişim belirteci kullanma

Erişim belirteci kullanmak için, HTTP isteğinizin Yetkilendirme üst bilgisinde bunu taşıyıcı belirteç olarak dahil edin:

Authorization: Bearer {access_token}

Örneğin, bir projenin son derlemelerini almak için HTTP isteği:

GET https://dev.azure.com/myaccount/myproject/_apis/build-release/builds?api-version=3.0
Authorization: Bearer {access_token}

Süresi dolan erişim belirteci yenileme

Bir kullanıcının erişim belirtecin süresi dolsa, yeni bir erişim belirteci almak için yetkilendirme akışında edinmiş olduğu yenileme belirteci kullanabilirsiniz. Erişim ve yenileme belirteci için yetkilendirme kodunu değiştirme işleminin ilk işlemidir.

URL - belirteci yenileme

POST https://app.vssps.visualstudio.com/oauth2/token

HTTP isteği üst bilgileri - yenileme belirteci

Üst bilgi Değer
İçerik Türü application/x-www-form-urlencoded
İçerik Uzunluğu İstek gövdesinin hesaplanan dize uzunluğu (aşağıdaki örnekte yer alan)
Content-Type: application/x-www-form-urlencoded
Content-Length: 1654

HTTP istek gövdesi - yenileme belirteci

client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&client_assertion={0}&grant_type=refresh_token&assertion={1}&redirect_uri={2}

Önceki örnek istek gövdesinin yer tutucu değerlerini değiştirin:

  • {0}: Uygulama kaydediken alınan URL kodlanmış istemci gizli adı
  • {1}: Kullanıcı için URL ile kodlanmış yenileme belirteci
  • {2}: uygulamaya kayıtlı geri çağırma URL'si

Yanıt - belirteci yenileme

{
    "access_token": { access token for this user },
    "token_type": { type of token },
    "expires_in": { time in seconds that the token remains valid },
    "refresh_token": { new refresh token to use when the token has timed out }
}

Önemli

Kullanıcı için yeni bir yenileme belirteci verilir. Bu yeni belirteci kalıcı hale getirin ve Kullanıcı için yeni bir erişim belirteci almanız gerektiğinde bunu kullanın.

Kapsamlar

Önemli

Kapsamlar yalnızca REST API 'Lerine erişimi etkinleştirir ve git uç noktaları ' nı seçin. SOAP API erişimi desteklenmiyor.

Kategori Kapsam Ad Açıklama
Aracı havuzları vso.agentpools Aracı havuzları (okuma) Aracılar için görevleri, havuzları, kuyrukları, aracıları ve şu anda çalışan ya da son tamamlanan işleri görüntüleme yeteneği verir.
vso.agentpools_manage Aracı havuzları (okuma, yönetme) Havuzları, kuyrukları ve aracıları yönetme olanağı verir.
vso.environment_manage Çalıştırılmaları (okuma, yönetme) Havuzları, kuyrukları, aracıları ve ortamları yönetme olanağı verir.
Analiz vso.analytics Analiz (okuma) Analytics verilerini sorgulama yeteneği verir.
Denetim günlüğü vso.auditlog Denetim günlüğü (okuma) Kullanıcılara denetim günlüğünü okuma olanağı verir.
Derleme vso.build Derleme (okuma) Yapı sonuçları, tanımlar ve istekler dahil olmak üzere derleme yapılarına erişme özelliği ve hizmet kancaları aracılığıyla derleme olayları hakkında bildirim alma özelliği verir.
vso.build_execute Derleme (okuma ve yürütme) Yapı sonuçları, tanımlar ve istekler dahil olmak üzere derleme yapıtlarına erişme, derleme özelliklerini güncelleştirme ve hizmet kancaları aracılığıyla derleme olayları hakkında bildirim alma yeteneği verir.
Kod vso.code Kod (okuma) İşlemeler, değişiklik kümeleri, dallar ve diğer sürüm denetimi yapıtları hakkında kaynak kodu ve meta verileri okuma yeteneği verir. Ayrıca, kod arama ve hizmet kancaları aracılığıyla sürüm denetimi olayları hakkında bildirim alma özelliği verir.
vso.code_write Kod (okuma ve yazma) Kaynak kodu okuma, güncelleştirme ve silme, işlemeler, değişiklik kümeleri, dallar ve diğer sürüm denetimi yapıtları hakkında meta verilere erişme olanağı verir. Ayrıca, çekme istekleri ve kod incelemeleri oluşturma ve yönetme ve hizmet kancaları aracılığıyla sürüm denetimi olayları hakkında bildirimler alma özelliği verir.
vso.code_manage Kod (okuma, yazma ve yönetme) Kaynak kodu okuma, güncelleştirme ve silme, işlemeler, değişiklik kümeleri, dallar ve diğer sürüm denetimi yapıtları hakkında meta verilere erişme olanağı verir. Ayrıca, kod depoları oluşturma ve yönetme, çekme istekleri ve kod incelemeleri oluşturma ve yönetme ve hizmet kancaları aracılığıyla sürüm denetimi olayları hakkında bildirim alma özelliği verir.
vso.code_full Kod (tam) Kaynak koda tam erişim verir, işlemeler, değişiklik kümeleri, dallar ve diğer sürüm denetimi yapıtlarıyla ilgili meta veriler. Ayrıca, kod depoları oluşturma ve yönetme, çekme istekleri ve kod incelemeleri oluşturma ve yönetme ve hizmet kancaları aracılığıyla sürüm denetimi olayları hakkında bildirim alma özelliği verir. Ayrıca, Istemci OM API 'Leri için sınırlı destek içerir.
vso.code_status Kod (durum) Tamamlama ve çekme isteği durumunu okuma ve yazma özelliği verir.
Yetkilendirmeler vso.entitlements Yetkilendirmeler (okuma) Hesap yetkilendirmelerini almak için lisanslama yetkilendirmeleri uç noktasına salt okuma erişimi sağlar.
vso.memberentitlementmanagement Memberyetkilendirme yönetimi (okuma) Kullanıcıları, lisanslarını ve erişebileceği projeleri ve uzantıları okuma yeteneği verir.
vso.memberentitlementmanagement_write Memberyetkilendirme yönetimi (yazma) Kullanıcıları, lisanslarını ve erişebileceği projeleri ve uzantıları yönetme olanağı verir.
Uzantıları vso.extension Uzantılar (okuma) Yüklü uzantıları okuma yeteneği verir.
vso.extension_manage Uzantılar (okuma ve yönetme) Yüklü uzantılar üzerinde diğer yönetim eylemlerini yükleme, kaldırma ve gerçekleştirme yeteneği verir.
vso.extension.data Uzantı verileri (okuma) Yüklü uzantılar tarafından depolanan verileri (ayarlar ve belgeler) okuyabilme olanağı verir.
vso.extension.data_write Uzantı verileri (okuma ve yazma) Yüklü uzantılar tarafından depolanan verileri (ayarlar ve belgeler) okuma ve yazma özelliği verir.
Graph kimliği vso.graph Graph (okuma) Kullanıcı, Grup, kapsam ve grup üyeliği bilgilerini okuma olanağı verir.
vso.graph_manage Graph (yönet) Kullanıcı, Grup, kapsam ve grup üyeliği bilgilerini okuma ve Kullanıcı, grup ekleme ve grup üyeliklerini yönetme olanağı verir.
vso.identity Kimlik (okuma) Kimlikleri ve grupları okuma yeteneği verir.
vso.identity_manage Kimlik (Yönet) Kimlikleri ve grupları okuma, yazma ve yönetme olanağı verir.
Yük testi vso.loadtest Yük testi (okuma) Yük testi çalıştırmalarını, test sonuçlarını ve APM yapıtlarınızı okuma olanağı verir.
vso.loadtest_write Yük testi (okuma ve yazma) Yük testi çalıştırmaları oluşturma ve güncelleştirme, test sonuçları ve APM yapıtları dahil meta verileri okuma yeteneği verir.
Makine grubu vso.machinegroup_manage Dağıtım grubu (okuma, yönetme) Dağıtım grubunu ve aracı havuzlarını yönetme olanağı sağlar.
Mağaza vso.gallery Market Herkese açık ve özel öğeler ve yayımcılar için okuma erişimi verir.
vso.gallery_acquire Market (alma) Okuma erişimi ve öğe alma özelliğini verir.
vso.gallery_publish Market (yayımlama) Okuma erişimi ve öğeleri karşıya yükleme, güncelleştirme ve paylaşma yeteneği verir.
vso.gallery_manage Market (yönetme) Okuma erişimi ve öğeleri ve yayımcıları yayımlama ve yönetme yeteneği verir.
Bildirimler vso.notification Bildirimler (okuma) Filtrelenebilir alan değerleri dahil olmak üzere aboneliklere ve olay meta verilerine okuma erişimi sağlar.
vso.notification_write Bildirimler (yazma) , Filtrelenebilir alan değerleri dahil olmak üzere aboneliklerde okuma ve yazma erişimi ve olay meta verilerine okuma erişimi sağlar.
vso.notification_manage Bildirimler (yönetme) , Filtrelenebilir alan değerleri de dahil olmak üzere aboneliklerde okuma, yazma ve yönetim erişimi ve olay meta verilerine okuma erişimi sağlar.
vso.notification_diagnostics Bildirimler (Tanılama) Bildirimle ilgili tanılama günlüklerine erişim sağlar ve ayrı abonelikler için tanılamayı etkinleştirebilme olanağı sağlar.
Paketleme vso.packaging Paketleme (okuma) Akışları ve paketleri okuma olanağı verir.
vso.packaging_write Paketleme (okuma ve yazma) Akışlar ve paketler oluşturma ve okuma olanağı verir.
vso.packaging_manage Paketleme (okuma, yazma ve yönetme) Akışlar ve paketler oluşturma, okuma, güncelleştirme ve silme yeteneği sağlar.
Project ve Takım vso.project Project ve ekip (okuma) Projeleri ve takımları okuma olanağı sağlar.
vso.project_write Project ve ekip (okuma ve yazma) Projeleri ve takımları okuma ve güncelleştirme olanağı sağlar.
vso.project_manage Project ve ekip (okuma, yazma ve yönetme) Proje ve takım oluşturma, okuma, güncelleştirme ve silme olanağı sağlar.
Sürüm vso.release Yayın (okuma) Sürümler, yayın tanımları ve yayın ortamı dahil olmak üzere yayın yapıtlarını okuma yeteneği sağlar.
vso.release_execute Sürüm (okuma, yazma ve yürütme) Sürümler, yayın tanımları ve yayın ortamı dahil olmak üzere yayın yapıtlarını okuma ve güncelleştirme ve yeni bir sürümü kuyruğa alama yeteneği sağlar.
vso.release_manage Sürüm (okuma, yazma, yürütme ve yönetme) Sürümler, yayın tanımları ve yayın ortamı dahil olmak üzere yayın yapıtlarını okuma, güncelleştirme ve silme ve yeni bir sürümü kuyruğa ekleme ve onaylama yeteneği sağlar.
Güvenlik vso.security_manage Güvenlik (yönetme) Güvenlik izinlerini okuma, yazma ve yönetme olanağı sağlar.
Hizmet Bağlantıları vso.serviceendpoint Hizmet Uç Noktaları (okuma) Hizmet uç noktalarını okuma yeteneği sağlar.
vso.serviceendpoint_query Hizmet Uç Noktaları (okuma ve sorgulama) Hizmet uç noktalarını okuma ve sorgulama yeteneği sağlar.
vso.serviceendpoint_manage Hizmet Uç Noktaları (okuma, sorgulama ve yönetme) Hizmet uç noktalarını okuma, sorgulama ve yönetme olanağı sağlar.
Ayarlar vso.settings Ayarlar (okuma) Ayarları okuma olanağı sağlar.
vso.settings_write Ayarlar (okuma ve yazma) Ayarları oluşturma ve okuma yeteneği sağlar.
Sembol vso.symbols Semboller (okuma) Sembolleri okuma yeteneği sağlar.
vso.symbols_write Semboller (okuma ve yazma) Sembolleri okuma ve yazma yeteneği sağlar.
vso.symbols_manage Semboller (okuma, yazma ve yönetme) Sembolleri okuma, yazma ve yönetme olanağı sağlar.
Görev Grupları vso.taskgroups_read Görev Grupları (okuma) Görev gruplarını okuma yeteneği sağlar.
vso.taskgroups_write Görev Grupları (okuma, oluşturma) Görev gruplarını okuma ve oluşturma yeteneği sağlar.
vso.taskgroups_manage Görev Grupları (okuma, oluşturma ve yönetme) Görev gruplarını okuma, oluşturma ve yönetme olanağı sağlar.
Takım Panosu vso.dashboards Takım panoları (okuma) Takım panosu bilgilerini okuma olanağı sağlar.
vso.dashboards_manage Takım panoları (yönetme) Takım panosu bilgilerini yönetme olanağı sağlar.
Test Yönetimi vso.test Test yönetimi (okuma) Test planlarını, servis olaylarını, sonuçları ve test yönetimiyle ilgili diğer yapıtları okuma yeteneği verir.
vso.test_write Test yönetimi (okuma ve yazma) Test planlarını, servis olaylarını, sonuçları ve test yönetimiyle ilgili diğer yapıtları okuma, oluşturma ve güncelleştirme yeteneği verir.
Belirteçler vso.tokens Temsilci Yetkilendirme Belirteçleri Kullanıcılara temsilci yetkilendirme belirteçlerini yönetme yeteneği sağlar.
vso.tokenadministration Belirteç Yönetimi Kuruluş yöneticilerine mevcut belirteçleri yönetme (görüntüleme ve iptal etme) olanağı sağlar.
Kullanıcı Profili vso.profile Kullanıcı profili (okuma) Profilinizi, hesaplarınızı, koleksiyonlarınızı, projelerinizi, takımlarınızı ve diğer üst düzey kuruluş yapıtlarınızı okuma olanağı sağlar.
vso.profile_write Kullanıcı profili (yazma) Profilinize yazma yeteneği sağlar.
Değişken Grupları vso.variablegroups_read Değişken Grupları (okuma) Değişken gruplarını okuma yeteneği sağlar.
vso.variablegroups_write Değişken Grupları (okuma, oluşturma) Değişken gruplarını okuma ve oluşturma yeteneği sağlar.
vso.variablegroups_manage Değişken Grupları (okuma, oluşturma ve yönetme) Değişken gruplarını okuma, oluşturma ve yönetme olanağı sağlar.
Wiki vso.wiki Wiki (okuma) Wiki'leri, wiki sayfalarını ve wiki eklerini okuma olanağı sağlar. Ayrıca wiki sayfalarında arama yapma olanağı da sağlar.
vso.wiki_write Wiki (okuma ve yazma) Wiki'leri, wiki sayfalarını ve wiki eklerini okuma, oluşturma ve güncelleştirme olanağı sağlar.
İş Öğeleri vso.work İş öğeleri (okuma) İş öğelerini, sorguları, panoları, alan ve yineleme yollarını ve diğer iş öğesi izleme meta verilerini okuma yeteneği sağlar. Ayrıca sorguları yürütme, iş öğelerini arama ve hizmet kancaları aracılığıyla iş öğesi olayları hakkında bildirim alma olanağı da sağlar.
vso.work_write İş öğeleri (okuma ve yazma) İş öğelerini ve sorgularını okuma, oluşturma ve güncelleştirme, yönetim panosu meta verilerini güncelleştirme, okuma alanı ve yineleme yolları ile ilgili diğer iş öğesi izleme meta verilerini yürütme, sorguları yürütme ve hizmet kancaları aracılığıyla iş öğesi olayları hakkında bildirim alma olanağı sağlar.
vso.work_full İş öğeleri (tam) İş öğelerine, sorgulara, biriktirme zamanlarına, planlara ve iş öğesi izleme meta verilerine tam erişim sağlar. Ayrıca hizmet kancaları aracılığıyla iş öğesi olayları hakkında bildirim alma olanağı sağlar.

Uygulamanıza hangi izinlerin gerekli olduğunu belirtmek için Azure DevOps Services ve kapsamları kullanın. Kullanıcılarınız, uygulamanıza kuruluşlarına erişim yetkisi verdiğinizde, bu kapsamlar için uygulamayı yetkilendirler. Yetkilendirme isteği, kayıtlı kapsamların aynısını geçer.

Daha fazla bilgi için bkz. İş öğesi izleme/ekler oluşturma.

Örnekler

C# OAuth api'leri örneğimizde OAuth'Azure DevOps Services REST API'lerini çağıran bir C# GitHub bulabilirsiniz.

Sık sorulan sorular (SSS)

S: OAuth'ı cep telefonu uygulamam ile kullanabilir miyim?

C: Hayır. Azure DevOps Services web sunucusu akışını desteklediği için uygulama gizli sini güvenli bir şekilde depolayamayasınız, bu nedenle OAuth uygulamanın hiçbir yolu yoktur.

S: Kodumda hangi hataları veya özel koşulları işlemem gerekiyor?

A: Aşağıdaki koşulları işleyeli olduğundan emin olun:

  • Kullanıcınız uygulama erişiminizi geri alıyorsa hiçbir yetkilendirme kodu döndürülz. Yetkilendirme kodunu, reddetme denetimi olmadan kullanmayın.
  • Kullanıcı uygulamanızın yetkilendirmesini iptal eder, erişim belirteci artık geçerli değildir. Uygulamanız veriye erişmek için belirteci kullandığında bir 401 hatası döndürür. Yetkilendirmeyi yeniden isteyin.

S: Web uygulamamda yerel olarak hata ayıklamak istiyorum. Uygulamamı kaydettiğimde geri çağırma URL 'SI için localhost kullanabilir miyim?

C: Evet. Azure DevOps Services artık geri arama URL 'niz için localhost 'a izin veriyor. https://localhostUygulamanızı kaydettiğinizde geri arama URL 'nizin başlangıcı olarak kullandığınızdan emin olun.

S: bir erişim belirteci almaya çalıştığımda bir HTTP 400 hatası alıyorum. Ne yanlış olabilir?

Y: istek üst bilgisinde içerik türünü application/x-www-form-urlencoded olarak ayarlayıp ayarlayamamasını kontrol edin.

S: OAuth ile SOAP uç noktaları ve REST API 'Leri kullanabilir miyim?

C: Hayır. OAuth yalnızca bu noktada REST API 'Lerinde desteklenir.

s: iş öğelerimin Azure DevOps REST apı 'lerini kullanarak nasıl ek ayrıntısı alabilirim?

A: Ilk olarak iş öğeleri ile iş öğesi ayrıntılarını alın -iş öğesi al REST API:

GET https://dev.azure.com/{organization}/{project}/_apis/wit/workitems/{id}

Eklerin ayrıntılarını almak için şu parametreyi URL 'ye eklemeniz gerekir:

$expand=all

Sonuçlarla ilişkiler özelliğini elde edersiniz. Ekler URL 'sini bulabilir ve URL içinde KIMLIĞI bulabilirsiniz. Örnek:

$url = https://dev.azure.com/{organization}/{project}/_apis/wit/workitems/434?$expand=all&api-version=5.0

$workItem = Invoke-RestMethod -Uri $url -Method Get -ContentType application/json

$split = ($workitem.relations.url).Split('/')

$attachmentId = $split[$split.count - 1]

# Result: 1244nhsfs-ff3f-25gg-j64t-fahs23vfs