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.
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.
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.
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
codeile 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