Informationen zu Sicherheit, Authentifizierung und Autorisierung

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

Azure DevOps verwendet verschiedene Sicherheitskonzepte, um sicherzustellen, dass nur autorisierte Benutzer auf Features, Funktionen und Daten zugreifen können. Benutzer erhalten Zugriff auf Azure DevOps über die Authentifizierung ihrer Sicherheitsanmeldeinformationen und die Autorisierung ihrer Kontoberechtigungen für den Zugriff auf bestimmte Features oder Funktionen.

Dieser Artikel baut auf den Informationen unter Erste Schritte mit Berechtigungen, Zugriff und Sicherheitsgruppen auf. Administratoren können vom Verständnis der Kontotypen, Authentifizierungsmethoden, Autorisierungsmethoden und Richtlinien profitieren, die zum Sichern von Azure DevOps verwendet werden.


Kontotypen

  • Benutzer
  • Organisationsbesitzer
  • Dienstkonten
  • Dienstprinzipale oder verwaltete Identitäten
  • Auftragsagenten

Authentifizierung

  • Benutzeranmeldeinformationen
  • Windows-Authentifizierung
  • Zweistufige Authentifizierung (2FA)
  • SSH-Schlüsselauthentifizierung
  • Persönliche Zugriffstoken
  • Oauth-Konfiguration
  • Active Directory-Authentifizierungsbibliothek

Autorisierung

  • Mitgliedschaft in einer Sicherheitsgruppe
  • Rollenbasierte Zugriffssteuerung
  • Zugriffsebenen
  • Featureflags
  • Sicherheitsnamespaces und -berechtigungen

Richtlinien

  • URL zur Datenschutzrichtlinie
  • Anwendungsverbindungs- und Sicherheitsrichtlinien
  • Richtlinien für Benutzer
  • Git-Repository- und Branchrichtlinien


Kontotypen

  • Benutzer
  • Dienstkonten
  • Dienstprinzipale oder verwaltete Identitäten
  • Auftragsagenten

Authentifizierung

  • Benutzeranmeldeinformationen
  • Windows-Authentifizierung
  • Zweistufige Authentifizierung (2FA)
  • SSH-Schlüsselauthentifizierung
  • Persönliche Zugriffstoken
  • Oauth-Konfiguration
  • Active Directory-Authentifizierungsbibliothek

Autorisierung

  • Mitgliedschaft in einer Sicherheitsgruppe
  • Rollenbasierte Berechtigungen
  • Zugriffsebenen
  • Featureflags
  • Sicherheitsnamespaces und -berechtigungen

Richtlinien

  • Git-Repository- und Branchrichtlinien

Wichtig

Azure DevOps unterstützt keine alternative Anmeldeinformationenauthentifizierung. Wenn Sie noch alternative Anmeldeinformationen verwenden, empfehlen wir Ihnen dringend, zu einer sichereren Authentifizierungsmethode zu wechseln.

Sowohl Azure DevOps Services (Cloud) als auch Azure DevOps Server (lokal) unterstützen die Softwareentwicklung von der Planung bis zur Bereitstellung. Sie nutzen die Microsoft Azure-Plattform als Dienstinfrastruktur und -dienste, einschließlich Azure SQL-Datenbanken, um einen zuverlässigen, global verfügbaren Dienst für Ihre Projekte bereitzustellen.

Weitere Informationen dazu, wie Microsoft sicherstellt, dass Ihre Azure DevOps Services-Projekte sicher, verfügbar, sicher und privat sind, finden Sie in der Übersicht über den Datenschutz von Azure DevOps Services.

Konten

Während menschliche Benutzerkonten den primären Fokus haben, unterstützt Azure DevOps auch verschiedene andere Kontotypen für unterschiedliche Vorgänge. Dazu gehören die folgenden Kontotypen:

  • Organisationsbesitzer: Der Ersteller eines Azure DevOps Services organization oder zugewiesenen Besitzers. Informationen zum Suchen des Besitzers für Ihre Organisation finden Sie unter "Nachschlagen der Organisationsbesitzer".
  • Dienstkonten: Interne Azure DevOps-Organisation, die verwendet wird, um einen bestimmten Dienst zu unterstützen, z. B. Agent Pool Service, PipelinesSDK. Beschreibungen von Dienstkonten finden Sie unter Sicherheitsgruppen, Dienstkonten und Berechtigungen.
  • Dienstprinzipale oder verwaltete Identitäten: Microsoft Entra-Anwendungen oder verwaltete Identitäten , die Ihrer Organisation hinzugefügt wurden, um Aktionen im Auftrag einer Drittanbieteranwendung auszuführen. Einige Dienstprinzipale beziehen sich auf die interne Azure DevOps-Organisation, um interne Vorgänge zu unterstützen.
  • Auftrags-Agents: Interne Konten, mit denen bestimmte Aufträge regelmäßig ausgeführt werden.
  • Konten von Drittanbietern: Konten, die Zugriff benötigen, um Web-Hooks, Dienstverbindungen oder andere Anwendungen von Drittanbietern zu unterstützen.

In unseren sicherheitsbezogenen Artikeln bezieht sich "Benutzer" auf alle Identitäten, die dem Benutzerhub hinzugefügt werden, was menschliche Benutzer und Dienstprinzipale umfassen kann.

  • Dienstkonten: Interne Azure DevOps-Organisation, die verwendet wird, um einen bestimmten Dienst zu unterstützen, z. B. Agent Pool Service, PipelinesSDK. Beschreibungen von Dienstkonten finden Sie unter Sicherheitsgruppen, Dienstkonten und Berechtigungen.
  • Dienstprinzipale oder verwaltete Identitäten: Microsoft Entra-Anwendungen oder verwaltete Identitäten, die Ihrer Organisation hinzugefügt wurden, um Aktionen im Auftrag einer Drittanbieteranwendung auszuführen. Einige Dienstprinzipale beziehen sich auf die interne Azure DevOps-Organisation, um interne Vorgänge zu unterstützen.
  • Auftrags-Agents: Interne Konten, mit denen bestimmte Aufträge regelmäßig ausgeführt werden.
  • Konten von Drittanbietern: Konten, die Zugriff benötigen, um Web-Hooks, Dienstverbindungen oder andere Anwendungen von Drittanbietern zu unterstützen.

Die effektivste Möglichkeit zum Verwalten von Konten besteht darin, sie zu Sicherheitsgruppen hinzuzufügen.

Hinweis

Die Organisationsbesitzer und Mitglieder der Gruppe "Projektsammlungsadministratoren" erhalten vollzugriff auf fast alle Features und Funktionen.

Authentifizierung

Die Authentifizierung überprüft die Identität eines Kontos basierend auf den Anmeldeinformationen, die während der Anmeldung bei Azure DevOps bereitgestellt werden. Diese Systeme sind in die Folgenden integriert und basieren auf den Sicherheitsfeatures der folgenden anderen Systeme:

  • Microsoft Entra ID
  • Microsoft-Konto (MSA)
  • Active Directory (AD)

Microsoft Entra ID und MSA unterstützen die Cloudauthentifizierung. Wir empfehlen die Verwendung der Microsoft Entra-ID zum Verwalten einer großen Benutzergruppe. Für eine kleine Benutzerbasis, die auf Ihre Azure DevOps-Organisation zugreift, sind Microsoft-Konten ausreichend. Weitere Informationen finden Sie unter "Zugriff auf Azure DevOps mit Microsoft Entra ID".

Für lokale Bereitstellungen wird AD für die Verwaltung einer großen Benutzergruppe empfohlen. Weitere Informationen finden Sie unter Einrichten von Gruppen für die Verwendung in lokalen Bereitstellungen.

Authentifizierungsmethoden, Integration in andere Dienste und Apps

Andere Anwendungen und Dienste können in Azure DevOps integriert werden. Um auf Ihr Konto zuzugreifen, ohne wiederholt nach Benutzeranmeldeinformationen zu fragen, können Apps die folgenden Authentifizierungsmethoden verwenden:

  • Persönliche Zugriffstoken (PATs) zum Generieren von Token in Ihrem Auftrag für:

    • Um auf bestimmte Ressourcen oder Aktivitäten zuzugreifen, z. B. Builds oder Arbeitselemente
    • Für Clients wie Xcode und NuGet, die Benutzernamen und Kennwörter als grundlegende Anmeldeinformationen erfordern und Microsoft-Kontos und Microsoft Entra-Features wie mehrstufige Authentifizierung nicht unterstützen
    • Zugreifen auf Azure DevOps-REST-APIs
  • Azure DevOps OAuth zum Generieren von Token im Namen der Benutzer für den Zugriff auf REST-APIs. Die Konten- und Profil-APIs unterstützen nur OAuth.

  • SSH-Authentifizierung zum Generieren von Verschlüsselungsschlüsseln für sich selbst, wenn Sie Linux, macOS oder Windows unter Git für Windows verwenden und keine Git-Anmeldeinformationsmanager oder PATs für die HTTPS-Authentifizierung verwenden können.

  • Dienstprinzipale oder verwaltete Identitäten zum Generieren von Microsoft Entra-Token im Auftrag einer Anwendung oder eines Diensts, in der Regel Automatisieren von Workflows, die auf Azure DevOps-Ressourcen zugreifen müssen. Die meisten Aktionen, die traditionell von einem Dienstkonto ausgeführt werden, und ein PAT kann mithilfe eines Dienstprinzipals oder einer verwalteten Identität ausgeführt werden.

Standardmäßig ermöglicht Ihr Konto oder die Sammlung Zugriff auf alle Authentifizierungsmethoden. Sie können den Zugriff einschränken, indem Sie die einzelnen Methoden spezifisch einschränken. Wenn Sie den Zugriff auf eine Authentifizierungsmethode verweigern, kann keine App diese Methode verwenden, um auf Ihr Konto zuzugreifen. Jede App, auf die zuvor Zugriff hatte, erhält einen Authentifizierungsfehler und kann nicht auf Ihr Konto zugreifen.

Weitere Informationen finden Sie in den folgenden Artikeln:

Autorisierung

Die Autorisierung überprüft, ob die Identität, die eine Verbindung herstellen möchte, über die erforderlichen Berechtigungen für den Zugriff auf einen Dienst, ein Feature, eine Funktion, ein Objekt oder eine Methode verfügt. Die Autorisierung erfolgt immer nach erfolgreicher Authentifizierung. Wenn eine Verbindung nicht authentifiziert wird, schlägt sie fehl, bevor autorisierungsprüfungen durchgeführt werden. Auch wenn die Authentifizierung erfolgreich ist, ist eine bestimmte Aktion möglicherweise weiterhin unzulässig, wenn der Benutzer oder die Gruppe keine Autorisierung hat.

Die Autorisierung hängt von den Berechtigungen ab, die dem Benutzer zugewiesen sind, entweder direkt oder über die Mitgliedschaft in einer Sicherheitsgruppe oder Sicherheitsrolle. Zugriffsstufen und Featurekennzeichnungen können auch den Zugriff auf bestimmte Features verwalten. Weitere Informationen zu diesen Autorisierungsmethoden finden Sie unter Erste Schritte mit Berechtigungen, Zugriff und Sicherheitsgruppen.

Sicherheitsnamespaces und Berechtigungen

Sicherheitsnamespaces bestimmen Benutzerzugriffsebenen für bestimmte Aktionen für Ressourcen.

  • Jede Ressourcenfamilie, z. B. Arbeitsaufgaben oder Git-Repositorys, verfügt über einen eindeutigen Namespace.
  • Jeder Namespace enthält null oder mehr Zugriffssteuerungslisten (ACCESS Control Lists, ACLs).
    • Jede ACL enthält ein Token, ein Vererbungsflaggen und Zugriffssteuerungseinträge (Access Control Entries, ACEs).
    • Jede ACE verfügt über einen Identitätsdeskriptor, eine zulässige Berechtigungsbitmaske und eine verweigerte Berechtigungsbitmaske.

Weitere Informationen finden Sie unter Sicherheitsnamespaces und Berechtigungsreferenz.

Sicherheitsrichtlinien

Um Ihre Organisation und Ihren Code zu schützen, können Sie verschiedene Richtlinien festlegen. Insbesondere können Sie die folgenden Richtlinien aktivieren oder deaktivieren:

Allgemein

Anwendungsverbindungs- und Sicherheitsrichtlinien

Verwenden Sie die Microsoft Entra-Mandantenrichtlinie, um das Erstellen neuer Organisationen nur auf die gewünschten Benutzer einzuschränken. Diese Richtlinie ist standardmäßig deaktiviert und nur gültig, wenn die Organisation mit der Microsoft Entra-ID verbunden ist. Weitere Informationen finden Sie unter Einschränken der Organisationserstellung.

Die folgenden Richtlinien bestimmen den Zugriff, der Benutzern und Anwendungen innerhalb Ihrer Organisation gewährt wird:

Richtlinien für Benutzer

  • Externer Gastzugriff (nur gültig, wenn die Organisation mit Microsoft Entra ID verbunden ist):Wenn diese Option aktiviert ist, können Einladungen an E-Mail-Konten von Benutzern gesendet werden, die nicht Mitglieder der Microsoft Entra-ID des Mandanten sind, über die Seite "Benutzer ". Weitere Informationen finden Sie unter Hinzufügen externer Benutzer zu Ihrem organization.
  • Zulassen, dass Team- und Projektadministratoren neue Benutzer einladen: Nur gültig, wenn die Organisation mit der Microsoft Entra-ID verbunden ist. Wenn diese Option aktiviert ist, können Team- und Projektadministratoren Benutzer über die Seite "Benutzer " hinzufügen. Weitere Informationen finden Sie unter Einschränken neuer Benutzerinladungen von Projekt- und Teamadministratoren.
  • Anfordern des Zugriffs: Nur gültig, wenn die Organisation mit der Microsoft Entra-ID verbunden ist. Wenn diese Option aktiviert ist, können Benutzer Zugriff auf eine Ressource anfordern. Eine Anforderung führt zu einer E-Mail-Benachrichtigung an die Administratoren, die nach Bedarf um Überprüfung und Zugriff bitten. Weitere Informationen finden Sie unter Hinzufügen externer Benutzer zu Ihrem organization.
  • Laden Sie GitHub-Benutzer ein: Nur gültig, wenn die Organisation nicht mit der Microsoft Entra-ID verbunden ist. Wenn diese Option aktiviert ist, können Administratoren Benutzer basierend auf ihren GitHub-Benutzerkonten über die Seite Benutzer hinzufügen. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit GitHub/FAQs.

Gruppe "Project-Scoped-Benutzer"

Standardmäßig können Benutzer, die einer Organisation hinzugefügt wurden, alle Organisations- und Projektinformationen und -einstellungen anzeigen, einschließlich Benutzerlisten, Projektlisten, Abrechnungsdetails, Nutzungsdaten und mehr.

Wichtig

  • Die in diesem Abschnitt beschriebenen Features für eingeschränkte Sichtbarkeit gelten nur für Interaktionen über das Webportal. Mit den REST-APIs oder azure devops CLI-Befehlen können Projektmitglieder auf die eingeschränkten Daten zugreifen.
  • Gastbenutzer, die Mitglieder in der eingeschränkten Gruppe mit Standardzugriff in der Microsoft Entra-ID sind, können nicht nach Benutzern mit der Personenauswahl suchen. Wenn das Vorschaufeature für die Organisation deaktiviert ist oder Gastbenutzer keine Mitglieder der eingeschränkten Gruppe sind, können Gastbenutzer alle Microsoft Entra-Benutzer wie erwartet durchsuchen.

Um bestimmte Benutzer, z. B. Projektbeteiligte, Microsoft Entra-Gastbenutzer oder Mitglieder einer bestimmten Sicherheitsgruppe, einzuschränken, können Sie die Sichtbarkeit der Benutzer und die Zusammenarbeit auf bestimmte Projekte in der Vorschaufunktion für die Organisation beschränken. Nachdem dies aktiviert ist, sind alle Benutzer oder Gruppen, die der Gruppe "Project-Bereichsbenutzer " hinzugefügt wurden, auf folgende Weise eingeschränkt:

  • Auf die Seiten "Übersicht" und "Projekte " der Organisationseinstellungen kann nur zugegriffen werden.
  • Es kann nur eine Verbindung hergestellt und diese Projekte angezeigt werden, denen sie explizit hinzugefügt wurden.
  • Kann nur Benutzer- und Gruppenidentitäten auswählen, die dem Projekt explizit hinzugefügt wurden, mit dem sie verbunden sind.

Weitere Informationen finden Sie unter Verwalten Ihrer Organisation, Einschränken der Benutzersichtbarkeit für Projekte und mehr und Verwalten von Vorschaufeatures.

Warnung

Durch Aktivieren der Benutzersichtbarkeit und Zusammenarbeit auf bestimmte Projektevorschaufeatures wird verhindert, dass projektbezogene Benutzer über die Microsoft Entra-Gruppenmitgliedschaft und nicht über eine explizite Benutzereinladung nach Benutzern suchen, die der Organisation hinzugefügt wurden. Dies ist ein unerwartetes Verhalten, und eine Auflösung wird ausgeführt. Um dieses Problem zu beheben, deaktivieren Sie die Einschränkung der Benutzersichtbarkeit und Zusammenarbeit auf bestimmte Vorschaufeatures für Projekte für die Organisation.

Git-Repository- und Branchrichtlinien

Um Ihren Code zu sichern, können Sie verschiedene Git-Repository- und Verzweigungsrichtlinien festlegen. Weitere Informationen finden Sie in folgenden Artikeln.

Azure Repos und Azure Pipelines-Sicherheit

Da Repositorys und Build- und Release-Pipelines einzigartige Sicherheitsprobleme darstellen, werden zusätzliche Features über die in diesem Artikel beschriebenen Features hinaus eingesetzt. Weitere Informationen finden Sie in folgenden Artikeln.

Nächste Schritte