Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure DevOps Services
Wichtig
Azure DevOps OAuth ist im Jahr 2026 veraltet und für die Entfernung geplant. Diese Dokumentation gilt nur für vorhandene Azure DevOps OAuth-Apps. Neue App-Registrierungen werden ab April 2025 nicht mehr akzeptiert.
Für neue Anwendungen: Verwenden Sie Microsoft Entra ID OAuth , um in Azure DevOps zu integrieren.
Für vorhandene Apps: Planen Sie Ihre Migration zu Microsoft Entra ID OAuth vor 2026.
In diesem Artikel wird erläutert, wie Azure DevOps OAuth 2.0 für vorhandene Anwendungen funktioniert und Anleitungen zum Verwalten und Migrieren Ihrer Apps bietet.
Überblick
Azure DevOps OAuth 2.0 ermöglicht Anwendungen den Zugriff auf Azure DevOps-Ressourcen im Auftrag von Benutzern. Während dieser Dienst veraltet ist, funktionieren vorhandene Anwendungen bis 2026 weiterhin.
Migrationsempfehlung: Beginnen Sie mit der Planung Ihrer Migration zu Microsoft Entra ID OAuth , um den fortgesetzten Dienst und den Zugriff auf erweiterte Sicherheitsfeatures sicherzustellen.
Voraussetzungen
Bevor Sie mit Azure DevOps OAuth-Anwendungen arbeiten:
| Anforderung | BESCHREIBUNG |
|---|---|
| Vorhandene App-Registrierung | Eine vorhandene Azure DevOps OAuth-App (neue Registrierungen wurden im April 2025 beendet) |
| Azure DevOps Organisation | Zugriff auf eine Azure DevOps Services-Organisation |
| HTTPS-Rückruf-URL | Sichere Rückruf-URL für Ihre Anwendung |
| Migrationsplan | Strategie für die Migration zu Microsoft Entra ID OAuth vor 2026 |
Arbeiten mit vorhandenen Azure DevOps OAuth-Apps
1. Verwalten Der vorhandenen App-Registrierung
Hinweis
Neue App-Registrierungen werden nicht mehr akzeptiert. Dieser Abschnitt gilt nur für vorhandene registrierte Anwendungen.
Für vorhandene Anwendungen können Sie Ihre App-Einstellungen anzeigen und verwalten:
Wechseln Sie zu Ihrem Visual Studio-Profil , um auf Ihre App-Registrierungen zuzugreifen.
Überprüfen Sie Ihre konfigurierten Bereiche , und stellen Sie sicher, dass sie den Anforderungen Ihrer Anwendung entsprechen.
Überprüfen Sie die Konfiguration der Rückruf-URL, und aktualisieren Sie sie bei Bedarf.
Planen Sie Ihren Zeitplan für die Migration zu Microsoft Entra ID OAuth vor der Frist für die Abschaffung im Jahr 2026.
2. Autorisieren Sie Ihre App
Der Autorisierungsfluss bleibt für vorhandene Azure DevOps OAuth-Apps gleich:
Leiten Sie Benutzer mit Ihren App-Parametern zur Autorisierungs-URL:
https://app.vssps.visualstudio.com/oauth2/authorize ?client_id={app ID} &response_type=Assertion &state={state} &scope={scope} &redirect_uri={callback URL}Parameter Typ BESCHREIBUNG client_idGUID Die ID, die Ihrer App zugewiesen wurde, als sie registriert wurde response_typestring Muss gleich Assertionsein.statestring Ein generierter Zeichenfolgenwert, der den Rückruf mit seiner Autorisierungsanforderung korreliert scopestring Raumgetrennte Bereiche, die bei der App registriert sind. Zeige verfügbare Bereiche an redirect_uriURL Callback URL für Ihre App. Muss genau mit der URL übereinstimmen, die bei der App registriert ist. Beispielautorisierungs-URL:
https://app.vssps.visualstudio.com/oauth2/authorize ?client_id=00001111-aaaa-2222-bbbb-3333cccc4444 &response_type=Assertion &state=User1 &scope=vso.work%20vso.code_write &redirect_uri=https://fabrikam.azurewebsites.net/myapp/oauth-callbackNach der Benutzerautorisierung leitet Azure DevOps mit dem Autorisierungscode zu Ihrer Rückruf-URL um:
https://fabrikam.azurewebsites.net/myapp/oauth-callback ?code={authorization code} &state=User1
3. Exchange-Autorisierungscode für Zugriffstoken
Verwenden Sie den Autorisierungscode, um ein Zugriffstoken und Aktualisierungstoken anzufordern:
Anfragedetails
URL
POST https://app.vssps.visualstudio.com/oauth2/token
Kopfzeilen
Content-Type: application/x-www-form-urlencoded
Anforderungstext
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}
Parameter-Ersetzung:
{0}: URL-codiertes Client-Geheimnis aus der App-Registrierung{1}: URL-codierter Autorisierungscode aus dem Rückruf{2}: Rückruf-URL, die bei der App registriert ist
C#-Implementierungsbeispiel
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
);
}
Antwort
{
"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 }"
}
Wichtig
Sicheres Speichern des Aktualisierungstokens – Zugriffstoken laufen schnell ab, aber Aktualisierungstoken ermöglichen es Ihnen, neue Zugriffstoken zu erhalten, ohne dass eine erneute Autorisierung des Benutzers erforderlich ist.
4. Verwenden Sie das Zugriffstoken
Fügen Sie das Zugriffstoken als Bearertoken in Ihre API-Anforderungen ein:
Autorisierungsheaderformat:
Authorization: Bearer {access_token}
Beispiel-API-Anforderung:
GET https://dev.azure.com/myaccount/myproject/_apis/build-release/builds?api-version=3.0
Authorization: Bearer {access_token}
5. Aktualisieren abgelaufener Zugriffstoken
Wenn Zugriffstoken ablaufen, verwenden Sie das Aktualisierungstoken, um ein neues Zugriffstoken abzurufen:
Anfrage:
POST https://app.vssps.visualstudio.com/oauth2/token
Content-Type: application/x-www-form-urlencoded
Content-Length: 1654
client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&client_assertion={0}&grant_type=refresh_token&assertion={1}&redirect_uri={2}
Parameter-Ersetzung:
{0}: URL-codiertes Client-Geheimnis{1}: URL-codiertes Aktualisierungstoken{2}: Rückruf-URL, die bei der App registriert ist
Antwort:
{
"access_token": "{ new access token }",
"token_type": "{ type of token }",
"expires_in": "{ time in seconds that the token remains valid }",
"refresh_token": "{ new refresh token }"
}
Wichtig
Aktualisieren Sie Ihr Aktualisierungstoken – Bei jeder Aktualisierung wird ein neues Aktualisierungstoken ausgegeben. Speichern Sie das neue Token, und verwenden Sie es für zukünftige Aktualisierungsvorgänge.
Codebeispiele
Sie finden Arbeitsbeispiele in unserem Azure DevOps-Authentifizierungsbeispiel-Repository.
Verwalten von App-Geheimnissen
Wichtig
Das Rotieren von Secrets ist entscheidend für die Sicherheit. Anwendungsgeheimnisse laufen alle 60 Tage ab und müssen erneuert werden, um den Zugriff aufrechtzuerhalten.
Azure DevOps OAuth Apps unterstützen doppelte Secrets, um eine Rotation ohne Ausfallzeit zu ermöglichen:
Rotieren von Geheimnissen
Generieren Sie einen neuen geheimen Schlüssel in Ihrem Visual Studio-Profil oder über die APIs des Registrierungsgeheimnisses.
Bestätigen Sie die Aktion im modalen Dialogfeld.
Aktualisieren Sie Ihre Anwendung so, dass sie den neuen geheimen Schlüssel verwendet, bevor das alte abläuft.
Testen Sie das neue Geheimnis gründlich, bevor das alte Geheimnis abläuft.
Wiederholen Sie den Prozess , wenn das neue Geheimnis abläuft.
Notfall-Widerruf des Secrets
Wenn ein Geheimschlüssel kompromittiert ist:
- Regenerieren Sie das Geheimnis sofort in Ihrem Profil neu.
- Aktualisieren Sie Ihre Anwendung mit dem neuen geheimen Schlüssel.
- Überwachen sie auf nicht autorisierten Zugriff in Ihren Anwendungsprotokollen.
Warnung
Durch das Generieren eines geheimen Schlüssels wird sofort der vorherige geheime Schlüssel und alle damit erstellten Token ungültig.
Löschen deiner App
Warnung
Durch das Löschen einer App-Registrierung werden alle Anwendungen, die sie verwenden, sofort unterbrochen und alle zugehörigen Token ungültig.
So löschen Sie eine Azure DevOps OAuth-App:
Wechseln Sie zu Ihrem Visual Studio-Profil.
Wählen Sie den richtigen Mandanten aus dem Dropdown-Menü.
Suchen Sie Ihre App unter "Anwendungen und Dienste".
Wählen Sie auf der Anwendungsregistrierungsseite " Löschen" aus.
Bestätigen Sie den Löschvorgang im modalen Dialogfeld.
Nach dem Löschen funktioniert die App und alle zugehörigen Token sofort nicht mehr.
Migrationsplanung
Wichtig
Beginnen Sie jetzt mit der Planung Ihrer Migration. Azure DevOps OAuth ist für 2026 zur Einstellung vorgesehen.
Migrationscheckliste
- [ ] Microsoft Entra ID OAuth-Dokumentation überprüfen
- [ ] Identifizieren aller Apps mit Azure DevOps OAuth in Ihrer Organisation
- [ ] Planen Sie den Migrationszeitplan, um ausreichende Zeit für Tests einzuplanen
- [ ] Aktualisieren der Anwendungsarchitektur zur Unterstützung von Microsoft Entra ID OAuth
- [ ] Testen der Migration in einer Nichtproduktionsumgebung
- [ ] Kommunizieren von Änderungen an Benutzer und Projektbeteiligten
- [ ] Vollständige Migration vor Ablauf des Stichtags 2026
Vorteile der Migration
Erweiterte Sicherheitsfeatures:
- Unterstützung für die mehrstufige Authentifizierung
- Richtlinien für bedingten Zugriff
- Erweiterter Schutz vor Bedrohungen
- Integration von Unternehmensidentitäten
Bessere Entwicklerfreundlichkeit:
- Moderne Authentifizierungsbibliotheken (MSAL)
- Einheitliche Identitätsplattform über Microsoft-Dienste hinweg
- Bessere Token-Verwaltung und Zwischenspeicherung
Langfristige Unterstützung:
- Kontinuierliche Investition und Funktionsentwicklung
- Compliance- und Governancefunktionen für Unternehmen
Häufig gestellte Fragen
F: Kann ich weiterhin neue Azure DevOps OAuth-Apps erstellen?
A: Nein. Neue App-Registrierungen wurden im April 2025 beendet. Verwenden Sie Microsoft Entra ID OAuth für neue Anwendungen.
F: Wann funktioniert meine vorhandene Azure DevOps OAuth-App nicht mehr?
A: Vorhandene Apps funktionieren weiterhin, bis Azure DevOps OAuth im Jahr 2026 vollständig veraltet ist. Planen Sie Ihre Migration gut vor diesem Stichtag.
F: Kann ich OAuth mit mobilen Anwendungen verwenden?
A: Azure DevOps OAuth unterstützt nur den Webserverfluss und erfordert einen sicheren Speicher von geheimen Clientschlüsseln und macht sie für mobile Apps ungeeignet. Microsoft Entra ID OAuth bietet eine bessere Unterstützung für mobile Apps.
F: Was sollte ich tun, wenn ich beim Anfordern von Token einen HTTP 400-Fehler erhalte?
A: Häufige Ursachen sind:
- Falsche
Content-TypeKopfzeile (sollte seinapplication/x-www-form-urlencoded) - Falsch formatierte Anforderungstextparameter
- Ungültiger oder abgelaufener Autorisierungscode
- Nicht übereinstimmende Rückruf-URL
F: Warum erhalte ich HTTP 401-Fehler mit OAuth-Token, aber nicht mit PATs?
A: Überprüfen Sie, ob Ihr Organisationsadministrator den Zugriff auf Drittanbieteranwendungen über OAuth deaktiviert hat. Sie finden dies unter: https://dev.azure.com/{your-org-name}/_settings/organizationPolicy
Wenn deaktiviert, funktionieren OAuth-Autorisierungsflüsse, api-Aufrufe werden jedoch zurückgegeben. TF400813: The user "<GUID>" is not authorized to access this resource.
F: Kann ich localhost zum Testen verwenden?
A: Ja. Azure DevOps OAuth unterstützt https://localhost Rückruf-URLs für lokale Entwicklung und Tests.
F: Wie kann ich Autorisierungsverweigerungen und Sperrungen behandeln?
A: Implementieren Sie die richtige Fehlerbehandlung für:
- Autorisierungsverweigerung: Im Rückruf wird kein Autorisierungscode zurückgegeben.
- Widerrufene Autorisierung: API-Aufrufe geben 401 Fehler zurück; Erneutes Anfordern der Autorisierung durch den Benutzer
F: Was ist der Unterschied zwischen Azure DevOps OAuth und Microsoft Entra ID OAuth?
A:
- Azure DevOps OAuth: Veraltete, Azure DevOps-spezifische, eingeschränkte Sicherheitsfeatures
- Microsoft Entra ID OAuth: Modern, Enterprise-Grade, erweiterte Sicherheit, langfristige Unterstützung
Nächste Schritte
Für vorhandene Anwendungen:
Für neue Anwendungen: