Freigeben über


Verwenden von Azure DevOps OAuth 2.0

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.

Erfahren Sie mehr über diese Abschaffung.

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:

  1. Wechseln Sie zu Ihrem Visual Studio-Profil , um auf Ihre App-Registrierungen zuzugreifen.

  2. Überprüfen Sie Ihre konfigurierten Bereiche , und stellen Sie sicher, dass sie den Anforderungen Ihrer Anwendung entsprechen.

  3. Überprüfen Sie die Konfiguration der Rückruf-URL, und aktualisieren Sie sie bei Bedarf.

    Screenshot der Anwendungseinstellungen für Ihre vorhandene App.

  4. 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:

  1. 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_id GUID Die ID, die Ihrer App zugewiesen wurde, als sie registriert wurde
    response_type string Muss gleich Assertion sein.
    state string Ein generierter Zeichenfolgenwert, der den Rückruf mit seiner Autorisierungsanforderung korreliert
    scope string Raumgetrennte Bereiche, die bei der App registriert sind. Zeige verfügbare Bereiche an
    redirect_uri URL 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-callback
    

    Nach 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

  1. Generieren Sie einen neuen geheimen Schlüssel in Ihrem Visual Studio-Profil oder über die APIs des Registrierungsgeheimnisses.

    Screenshot der App-Seite mit generierten sekundären geheimen Schlüsseln.

  2. Bestätigen Sie die Aktion im modalen Dialogfeld.

    Screenshot zur Bestätigung der Erneuerung des Secrets.

  3. Aktualisieren Sie Ihre Anwendung so, dass sie den neuen geheimen Schlüssel verwendet, bevor das alte abläuft.

  4. Testen Sie das neue Geheimnis gründlich, bevor das alte Geheimnis abläuft.

  5. Wiederholen Sie den Prozess , wenn das neue Geheimnis abläuft.

Notfall-Widerruf des Secrets

Wenn ein Geheimschlüssel kompromittiert ist:

  1. Regenerieren Sie das Geheimnis sofort in Ihrem Profil neu.
  2. Aktualisieren Sie Ihre Anwendung mit dem neuen geheimen Schlüssel.
  3. Ü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:

  1. Wechseln Sie zu Ihrem Visual Studio-Profil.

  2. Wählen Sie den richtigen Mandanten aus dem Dropdown-Menü.

  3. Suchen Sie Ihre App unter "Anwendungen und Dienste".

  4. Wählen Sie auf der Anwendungsregistrierungsseite " Löschen" aus.

    Screenshot der App-Metadatenseite mit hervorgehobener Schaltfläche zum Löschen

  5. 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-Type Kopfzeile (sollte sein application/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: