mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-30 14:40:37 -08:00
Translated ['src/banners/hacktricks-training.md', 'src/pentesting-ci-cd/
This commit is contained in:
@@ -6,23 +6,23 @@
|
||||
|
||||
<figure><img src="https://lh7-rt.googleusercontent.com/slidesz/AGV_vUcVrh1BpuQXN7RzGqoxrn-4Nm_sjdJU-dDTvshloB7UMQnN1mtH9N94zNiPCzOYAqE9EsJqlboZOj47tQsQktjxszpKvIDPZLs9rgyiObcZCvl7N0ZWztshR0ZddyBYZIAwPIkrEQ=s2048?key=l3Eei079oPmVJuh8lxQYxxrB" alt=""><figcaption><p><a href="https://www.tunecom.be/stg_ba12f/wp-content/uploads/2020/01/VDC-Governance-ManagementGroups-1536x716.png">https://www.tunecom.be/stg_ba12f/wp-content/uploads/2020/01/VDC-Governance-ManagementGroups-1536x716.png</a></p></figcaption></figure>
|
||||
|
||||
### Verwaltungsgruppen
|
||||
### Verwaltungsguppen
|
||||
|
||||
- Sie kann **andere Verwaltungsgruppen oder Abonnements** enthalten.
|
||||
- Dies ermöglicht es, **Governance-Kontrollen** wie RBAC und Azure Policy einmal auf der Ebene der Verwaltungsgruppe anzuwenden und sie von allen Abonnements in der Gruppe **zu erben**.
|
||||
- **10.000 Verwaltungs**gruppen können in einem einzigen Verzeichnis unterstützt werden.
|
||||
- Ein Verwaltungsgruppengeäst kann **bis zu sechs Ebenen tief** sein. Diese Grenze schließt die Wurzelebene oder die Abonnementebene nicht ein.
|
||||
- Jede Verwaltungsgruppe und jedes Abonnement kann **nur einen Elternteil** unterstützen.
|
||||
- Auch wenn mehrere Verwaltungsgruppen erstellt werden können, gibt es **nur 1 Wurzelverwaltungsgruppe**.
|
||||
- Die Wurzelverwaltungsgruppe **enthält** alle **anderen Verwaltungsgruppen und Abonnements** und **kann nicht verschoben oder gelöscht werden**.
|
||||
- Alle Abonnements innerhalb einer einzigen Verwaltungsgruppe müssen dem **gleichen Entra ID-Mandanten vertrauen.**
|
||||
- Sie können **andere Verwaltungsguppen oder Abonnements** enthalten.
|
||||
- Dies ermöglicht es, **Governance-Kontrollen** wie RBAC und Azure Policy einmal auf der Ebene der Verwaltungsguppe anzuwenden und sie von allen Abonnements in der Gruppe **zu erben**.
|
||||
- **10.000 Verwaltungsguppen** können in einem einzigen Verzeichnis unterstützt werden.
|
||||
- Ein Verwaltungsgruppenbaum kann **bis zu sechs Ebenen tief** sein. Diese Grenze schließt die Wurzelebene oder die Abonnementebene nicht ein.
|
||||
- Jede Verwaltungsguppe und jedes Abonnement kann **nur einen Elternteil** unterstützen.
|
||||
- Auch wenn mehrere Verwaltungsguppen erstellt werden können, gibt es **nur 1 Wurzelverwaltungsguppe**.
|
||||
- Die Wurzelverwaltungsguppe **enthält** alle **anderen Verwaltungsguppen und Abonnements** und **kann nicht verschoben oder gelöscht werden**.
|
||||
- Alle Abonnements innerhalb einer einzigen Verwaltungsguppe müssen dem **gleichen Entra ID-Mandanten** vertrauen.
|
||||
|
||||
<figure><img src="../../../images/image (147).png" alt=""><figcaption><p><a href="https://td-mainsite-cdn.tutorialsdojo.com/wp-content/uploads/2023/02/managementgroups-768x474.png">https://td-mainsite-cdn.tutorialsdojo.com/wp-content/uploads/2023/02/managementgroups-768x474.png</a></p></figcaption></figure>
|
||||
|
||||
### Azure-Abonnements
|
||||
|
||||
- Es ist ein weiterer **logischer Container, in dem Ressourcen** (VMs, DBs…) ausgeführt werden können und abgerechnet werden.
|
||||
- Sein **Elternteil** ist immer eine **Verwaltungsgruppe** (und es kann die Wurzelverwaltungsgruppe sein), da Abonnements keine anderen Abonnements enthalten können.
|
||||
- Sein **Elternteil** ist immer eine **Verwaltungsguppe** (und es kann die Wurzelverwaltungsguppe sein), da Abonnements keine anderen Abonnements enthalten können.
|
||||
- Es **vertraut nur einem Entra ID**-Verzeichnis.
|
||||
- **Berechtigungen**, die auf der Abonnementebene (oder einer seiner Eltern) angewendet werden, werden **auf alle Ressourcen innerhalb des Abonnements vererbt**.
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
[Aus den Dokumenten:](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-python?tabs=macos#what-is-a-resource-group) Eine Ressourcengruppe ist ein **Container**, der **verwandte Ressourcen** für eine Azure-Lösung enthält. Die Ressourcengruppe kann alle Ressourcen für die Lösung oder nur die **Ressourcen, die Sie als Gruppe verwalten möchten**, umfassen. Im Allgemeinen fügen Sie **Ressourcen** hinzu, die den **gleichen Lebenszyklus** teilen, zur gleichen Ressourcengruppe hinzu, damit Sie sie einfach als Gruppe bereitstellen, aktualisieren und löschen können.
|
||||
|
||||
Alle **Ressourcen** müssen **innerhalb einer Ressourcengruppe** sein und können nur zu einer Gruppe gehören, und wenn eine Ressourcengruppe gelöscht wird, werden auch alle Ressourcen darin gelöscht.
|
||||
Alle **Ressourcen** müssen **innerhalb einer Ressourcengruppe** sein und können nur zu einer Gruppe gehören. Wenn eine Ressourcengruppe gelöscht wird, werden auch alle Ressourcen darin gelöscht.
|
||||
|
||||
<figure><img src="https://lh7-rt.googleusercontent.com/slidesz/AGV_vUfe8U30iP_vdZCvxX4g8nEPRLoo7v0kmCGkDn1frBPn3_GIoZ7VT2LkdsVQWCnrG_HSYNRRPM-1pSECUkbDAB-9YbUYLzpvKVLDETZS81CHWKYM4fDl3oMo5-yvTMnjdLTS2pz8U67xUTIzBhZ25MFMRkq5koKY=s2048?key=gSyKQr3HTyhvHa28Rf7LVA" alt=""><figcaption><p><a href="https://i0.wp.com/azuredays.com/wp-content/uploads/2020/05/org.png?resize=748%2C601&ssl=1">https://i0.wp.com/azuredays.com/wp-content/uploads/2020/05/org.png?resize=748%2C601&ssl=1</a></p></figcaption></figure>
|
||||
|
||||
@@ -42,7 +42,7 @@ Das Format einer Azure-Ressourcen-ID ist wie folgt:
|
||||
|
||||
- `/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}`
|
||||
|
||||
Für eine virtuelle Maschine mit dem Namen myVM in einer Ressourcengruppe `myResourceGroup` unter der Abonnement-ID `12345678-1234-1234-1234-123456789012` sieht die Azure-Ressourcen-ID wie folgt aus:
|
||||
Für eine virtuelle Maschine mit dem Namen myVM in einer Ressourcengruppe `myResourceGroup` unter der Abonnement-ID `12345678-1234-1234-1234-123456789012` sieht die Azure-Ressourcen-ID so aus:
|
||||
|
||||
- `/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM`
|
||||
|
||||
@@ -69,11 +69,11 @@ Entra-Domänendienste erweitern die Funktionen von Entra ID, indem sie **verwalt
|
||||
- Anzeigename angeben
|
||||
- Passwort angeben
|
||||
- Eigenschaften angeben (Vorname, Berufsbezeichnung, Kontaktinformationen…)
|
||||
- Der Standardbenutzertyp ist „**Mitglied**“
|
||||
- Standardbenutzertyp ist „**Mitglied**“
|
||||
- **Externe Benutzer**
|
||||
- E-Mail angeben, um einzuladen, und Anzeigename (kann eine Nicht-Microsoft-E-Mail sein)
|
||||
- Eigenschaften angeben
|
||||
- Der Standardbenutzertyp ist „**Gast**“
|
||||
- Standardbenutzertyp ist „**Gast**“
|
||||
|
||||
### Standardberechtigungen für Mitglieder & Gäste
|
||||
|
||||
@@ -85,7 +85,7 @@ Sie können sie in [https://learn.microsoft.com/en-us/entra/fundamentals/users-d
|
||||
- Nicht versteckte Gruppenmitgliedschaften lesen
|
||||
- Gäste zu eigenen Gruppen hinzufügen
|
||||
- Neue Anwendung erstellen (_kann deaktiviert werden_)
|
||||
- Bis zu 50 Geräte in Azure hinzufügen (_kann deaktiviert werden_)
|
||||
- Bis zu 50 Geräte zu Azure hinzufügen (_kann deaktiviert werden_)
|
||||
|
||||
> [!NOTE]
|
||||
> Denken Sie daran, dass der Benutzer eine ausdrückliche Genehmigung für die Berechtigung benötigt, um Azure-Ressourcen aufzulisten.
|
||||
@@ -94,26 +94,26 @@ Sie können sie in [https://learn.microsoft.com/en-us/entra/fundamentals/users-d
|
||||
|
||||
- **Mitglieder (**[**Dokumente**](https://learn.microsoft.com/en-gb/entra/fundamentals/users-default-permissions#restrict-member-users-default-permissions)**)**
|
||||
- Anwendungen registrieren: Standard **Ja**
|
||||
- Einschränkung nicht administrativer Benutzer bei der Erstellung von Mandanten: Standard **Nein**
|
||||
- Einschränkung nicht-administrativer Benutzer bei der Erstellung von Mandanten: Standard **Nein**
|
||||
- Sicherheitsgruppen erstellen: Standard **Ja**
|
||||
- Zugriff auf das Microsoft Entra-Verwaltungsportal einschränken: Standard **Nein**
|
||||
- Dies schränkt den API-Zugriff auf das Portal nicht ein (nur Web)
|
||||
- Benutzern erlauben, Arbeits- oder Schulkonten mit LinkedIn zu verknüpfen: Standard **Ja**
|
||||
- Benutzer angemeldet halten: Standard **Ja**
|
||||
- Benutzern die Wiederherstellung des BitLocker-Schlüssels für ihre eigenen Geräte verweigern: Standard Nein (Überprüfung in den Geräteeinstellungen)
|
||||
- Benutzern die Wiederherstellung des BitLocker-Schlüssels für ihre eigenen Geräte verweigern: Standard **Nein** (Überprüfung in den Geräteeinstellungen)
|
||||
- Andere Benutzer lesen: Standard **Ja** (über Microsoft Graph)
|
||||
- **Gäste**
|
||||
- **Einschränkungen für den Zugriff von Gastbenutzern**
|
||||
- **Gastbenutzer haben den gleichen Zugriff wie Mitglieder** gewährt allen Mitgliedsbenutzern standardmäßig die Berechtigungen für Gastbenutzer.
|
||||
- **Gastbenutzer haben eingeschränkten Zugriff auf Eigenschaften und Mitgliedschaften von Verzeichnisobjekten (Standard)** schränkt den Zugriff von Gästen standardmäßig nur auf ihr eigenes Benutzerprofil ein. Der Zugriff auf Informationen anderer Benutzer und Gruppen ist nicht mehr erlaubt.
|
||||
- **Der Zugriff von Gastbenutzern ist auf Eigenschaften und Mitgliedschaften ihrer eigenen Verzeichnisobjekte beschränkt** ist die restriktivste.
|
||||
- **Gastbenutzer haben den gleichen Zugriff wie Mitglieder**, gewährt standardmäßig allen Mitgliedsbenutzern Berechtigungen für Gastbenutzer.
|
||||
- **Gastbenutzer haben eingeschränkten Zugriff auf Eigenschaften und Mitgliedschaften von Verzeichnisobjekten (Standard)**, schränkt den Zugriff von Gästen standardmäßig nur auf ihr eigenes Benutzerprofil ein. Der Zugriff auf Informationen anderer Benutzer und Gruppen ist nicht mehr erlaubt.
|
||||
- **Der Zugriff von Gastbenutzern ist auf Eigenschaften und Mitgliedschaften ihrer eigenen Verzeichnisobjekte beschränkt**, ist die restriktivste.
|
||||
- **Gäste können einladen**
|
||||
- **Jeder in der Organisation kann Gastbenutzer einladen, einschließlich Gäste und Nicht-Administratoren (am inklusivsten) - Standard**
|
||||
- **Mitglieder und Benutzer, die bestimmten Administrationsrollen zugewiesen sind, können Gastbenutzer einladen, einschließlich Gäste mit Mitgliedsberechtigungen**
|
||||
- **Nur Benutzer, die bestimmten Administrationsrollen zugewiesen sind, können Gastbenutzer einladen**
|
||||
- **Niemand in der Organisation kann Gastbenutzer einladen, einschließlich Administratoren (am restriktivsten)**
|
||||
- **Externe Benutzer verlassen**: Standard **Wahr**
|
||||
- Externe Benutzer dürfen die Organisation verlassen
|
||||
- Externen Benutzern erlauben, die Organisation zu verlassen
|
||||
|
||||
> [!TIP]
|
||||
> Auch wenn standardmäßig eingeschränkt, könnten Benutzer (Mitglieder und Gäste) mit erteilten Berechtigungen die vorherigen Aktionen ausführen.
|
||||
@@ -133,7 +133,7 @@ Es gibt **2 Arten von Mitgliedschaften**:
|
||||
|
||||
### **Dienstprinzipale**
|
||||
|
||||
Ein **Dienstprinzipal** ist eine **Identität**, die für die **Nutzung** mit **Anwendungen**, gehosteten Diensten und automatisierten Tools zur Zugriff auf Azure-Ressourcen erstellt wurde. Dieser Zugriff ist **durch die zugewiesenen Rollen** für den Dienstprinzipal eingeschränkt, was Ihnen die Kontrolle darüber gibt, **auf welche Ressourcen zugegriffen werden kann** und auf welcher Ebene. Aus Sicherheitsgründen wird immer empfohlen, **Dienstprinzipale mit automatisierten Tools zu verwenden**, anstatt ihnen zu erlauben, sich mit einer Benutzeridentität anzumelden.
|
||||
Ein **Dienstprinzipal** ist eine **Identität**, die für die **Nutzung** mit **Anwendungen**, gehosteten Diensten und automatisierten Tools zur Zugriff auf Azure-Ressourcen erstellt wurde. Dieser Zugriff ist **durch die zugewiesenen Rollen** des Dienstprinzipals eingeschränkt, was Ihnen die Kontrolle darüber gibt, **auf welche Ressourcen zugegriffen werden kann** und auf welcher Ebene. Aus Sicherheitsgründen wird immer empfohlen, **Dienstprinzipale mit automatisierten Tools zu verwenden**, anstatt ihnen zu erlauben, sich mit einer Benutzeridentität anzumelden.
|
||||
|
||||
Es ist möglich, sich **direkt als Dienstprinzipal anzumelden**, indem man ihm ein **Geheimnis** (Passwort), ein **Zertifikat** oder **föderierten** Zugriff auf Drittanbieterplattformen (z. B. Github Actions) gewährt.
|
||||
|
||||
@@ -148,7 +148,7 @@ Eine **App-Registrierung** ist eine Konfiguration, die es einer Anwendung ermög
|
||||
|
||||
1. **Anwendungs-ID (Client-ID):** Eine eindeutige Kennung für Ihre App in Azure AD.
|
||||
2. **Umleitungs-URIs:** URLs, an die Azure AD Authentifizierungsantworten sendet.
|
||||
3. **Zertifikate, Geheimnisse & Föderierte Anmeldeinformationen:** Es ist möglich, ein Geheimnis oder ein Zertifikat zu generieren, um sich als Dienstprinzipal der Anwendung anzumelden oder um ihr föderierten Zugriff zu gewähren (z. B. Github Actions). 
|
||||
3. **Zertifikate, Geheimnisse & föderierte Anmeldeinformationen:** Es ist möglich, ein Geheimnis oder ein Zertifikat zu generieren, um sich als Dienstprinzipal der Anwendung anzumelden oder um föderierten Zugriff darauf zu gewähren (z. B. Github Actions). 
|
||||
1. Wenn ein **Zertifikat** oder **Geheimnis** generiert wird, ist es einer Person möglich, sich **als Dienstprinzipal** mit CLI-Tools anzumelden, indem sie die **Anwendungs-ID**, das **Geheimnis** oder **Zertifikat** und den **Mandanten** (Domäne oder ID) kennt.
|
||||
4. **API-Berechtigungen:** Gibt an, auf welche Ressourcen oder APIs die App zugreifen kann.
|
||||
5. **Authentifizierungseinstellungen:** Definiert die unterstützten Authentifizierungsflüsse der App (z. B. OAuth2, OpenID Connect).
|
||||
@@ -157,47 +157,47 @@ Eine **App-Registrierung** ist eine Konfiguration, die es einer Anwendung ermög
|
||||
|
||||
### Standardzustimmungsberechtigungen
|
||||
|
||||
**Benutzerzustimmung für Anwendungen**
|
||||
**Benutzereinwilligung für Anwendungen**
|
||||
|
||||
- **Benutzerzustimmung nicht zulassen**
|
||||
- **Benutzereinwilligung nicht zulassen**
|
||||
- Ein Administrator wird für alle Apps erforderlich sein.
|
||||
- **Benutzerzustimmung für Apps von verifizierten Herausgebern für ausgewählte Berechtigungen zulassen (Empfohlen)**
|
||||
- Alle Benutzer können für Berechtigungen zustimmen, die als "geringfügig" eingestuft sind, für Apps von verifizierten Herausgebern oder Apps, die in dieser Organisation registriert sind.
|
||||
- **Benutzereinwilligung für Apps von verifizierten Herausgebern für ausgewählte Berechtigungen zulassen (Empfohlen)**
|
||||
- Alle Benutzer können für Berechtigungen, die als "geringfügig" eingestuft sind, für Apps von verifizierten Herausgebern oder Apps, die in dieser Organisation registriert sind, zustimmen.
|
||||
- **Standard** geringfügige Berechtigungen (obwohl Sie zustimmen müssen, um sie als geringfügig hinzuzufügen):
|
||||
- User.Read - anmelden und Benutzerprofil lesen
|
||||
- User.Read - Anmelden und Benutzerprofil lesen
|
||||
- offline_access - Zugriff auf Daten aufrechterhalten, auf die Benutzer Zugriff gewährt haben
|
||||
- openid - Benutzer anmelden
|
||||
- profile - grundlegendes Benutzerprofil anzeigen
|
||||
- profile - Grundlegendes Benutzerprofil anzeigen
|
||||
- email - E-Mail-Adresse des Benutzers anzeigen
|
||||
- **Benutzerzustimmung für Apps zulassen (Standard)**
|
||||
- **Benutzereinwilligung für Apps zulassen (Standard)**
|
||||
- Alle Benutzer können für jede App zustimmen, um auf die Daten der Organisation zuzugreifen.
|
||||
|
||||
**Anfragen zur Zustimmung des Administrators**: Standard **Nein**
|
||||
|
||||
- Benutzer können die Zustimmung des Administrators für Apps anfordern, für die sie nicht zustimmen können
|
||||
- Wenn **Ja**: Es ist möglich, Benutzer, Gruppen und Rollen anzugeben, die Anfragen zustimmen können
|
||||
- Konfigurieren Sie auch, ob Benutzer E-Mail-Benachrichtigungen und Ablaufbenachrichtigungen erhalten 
|
||||
- Benutzer können die Zustimmung des Administrators für Apps anfordern, für die sie nicht zustimmen können.
|
||||
- Wenn **Ja**: Es ist möglich, Benutzer, Gruppen und Rollen anzugeben, die Anfragen zustimmen können.
|
||||
- Konfigurieren Sie auch, ob Benutzer E-Mail-Benachrichtigungen und Ablaufbenachrichtigungen erhalten.
|
||||
|
||||
### **Verwaltete Identität (Metadaten)**
|
||||
|
||||
Verwaltete Identitäten in Azure Active Directory bieten eine Lösung zur **automatischen Verwaltung der Identität** von Anwendungen. Diese Identitäten werden von Anwendungen verwendet, um sich mit **Ressourcen** zu verbinden, die mit der Azure Active Directory (**Azure AD**) Authentifizierung kompatibel sind. Dies ermöglicht es, die **Notwendigkeit der Hardcodierung von Cloud-Anmeldeinformationen** im Code zu entfernen, da die Anwendung in der Lage ist, den **Metadaten**-Dienst zu kontaktieren, um ein gültiges Token zu erhalten, um **Aktionen** als die angegebene verwaltete Identität in Azure auszuführen.
|
||||
Verwaltete Identitäten in Azure Active Directory bieten eine Lösung zur **automatischen Verwaltung der Identität** von Anwendungen. Diese Identitäten werden von Anwendungen verwendet, um sich mit **Ressourcen** zu verbinden, die mit der Azure Active Directory (**Azure AD**) Authentifizierung kompatibel sind. Dies ermöglicht es, die Notwendigkeit, Cloud-Anmeldeinformationen im Code festzulegen, zu **entfernen**, da die Anwendung in der Lage sein wird, den **Metadaten**-Dienst zu kontaktieren, um ein gültiges Token zu **erhalten**, um Aktionen als die angegebene verwaltete Identität in Azure auszuführen.
|
||||
|
||||
Es gibt zwei Arten von verwalteten Identitäten:
|
||||
|
||||
- **Systemzugewiesen**. Einige Azure-Dienste ermöglichen es Ihnen, eine verwaltete Identität direkt auf einer Dienstinstanz **zu aktivieren**. Wenn Sie eine systemzugewiesene verwaltete Identität aktivieren, wird ein **Dienstprinzipal** im Entra ID-Mandanten erstellt, dem das Abonnement, in dem sich die Ressource befindet, vertraut. Wenn die **Ressource** **gelöscht** wird, löscht Azure automatisch die **Identität** für Sie.
|
||||
- **Systemzugewiesen**. Einige Azure-Dienste ermöglichen es Ihnen, eine verwaltete Identität direkt auf einer Dienstinstanz **zu aktivieren**. Wenn Sie eine systemzugewiesene verwaltete Identität aktivieren, wird ein **Dienstprinzipal** im Entra ID-Mandanten erstellt, der von dem Abonnement, in dem sich die Ressource befindet, vertraut wird. Wenn die **Ressource** **gelöscht** wird, löscht Azure automatisch die **Identität** für Sie.
|
||||
- **Benutzerzugewiesen**. Es ist auch möglich, dass Benutzer verwaltete Identitäten generieren. Diese werden innerhalb einer Ressourcengruppe innerhalb eines Abonnements erstellt, und ein Dienstprinzipal wird im EntraID erstellt, dem das Abonnement vertraut. Dann können Sie die verwaltete Identität einer oder **mehreren Instanzen** eines Azure-Dienstes (mehrere Ressourcen) zuweisen. Bei benutzerzugewiesenen verwalteten Identitäten wird die **Identität separat von den Ressourcen verwaltet, die sie verwenden**.
|
||||
|
||||
Verwaltete Identitäten **erzeugen keine ewigen Anmeldeinformationen** (wie Passwörter oder Zertifikate), um auf den daran angehängten Dienstprinzipal zuzugreifen.
|
||||
Verwaltete Identitäten **erzeugen keine ewigen Anmeldeinformationen** (wie Passwörter oder Zertifikate), um auf den angehängten Dienstprinzipal zuzugreifen.
|
||||
|
||||
### Unternehmensanwendungen
|
||||
|
||||
Es ist einfach eine **Tabelle in Azure, um Dienstprinzipale zu filtern** und die Anwendungen zu überprüfen, die zugewiesen wurden.
|
||||
|
||||
**Es ist kein anderer Typ von „Anwendung“,** es gibt kein Objekt in Azure, das eine „Unternehmensanwendung“ ist, es ist nur eine Abstraktion, um die Dienstprinzipale, App-Registrierungen und verwalteten Identitäten zu überprüfen.
|
||||
**Es ist kein anderer Typ von „Anwendung“**, es gibt kein Objekt in Azure, das eine „Unternehmensanwendung“ ist, es ist nur eine Abstraktion, um die Dienstprinzipale, App-Registrierungen und verwalteten Identitäten zu überprüfen.
|
||||
|
||||
### Verwaltungseinheiten
|
||||
|
||||
Verwaltungseinheiten ermöglichen es, **Berechtigungen aus einer Rolle über einen bestimmten Teil einer Organisation zu gewähren**.
|
||||
Verwaltungseinheiten ermöglichen es, **Berechtigungen von einer Rolle über einen bestimmten Teil einer Organisation zu gewähren**.
|
||||
|
||||
Beispiel:
|
||||
|
||||
@@ -205,50 +205,50 @@ Beispiel:
|
||||
- Implementierung:
|
||||
- Erstellen Sie Verwaltungseinheiten für jede Region (z. B. "Nordamerika AU", "Europa AU").
|
||||
- Füllen Sie AUs mit Benutzern aus ihren jeweiligen Regionen.
|
||||
- AUs können **Benutzer, Gruppen oder Geräte enthalten**
|
||||
- AUs unterstützen **dynamische Mitgliedschaften**
|
||||
- AUs **können keine AUs enthalten**
|
||||
- Administratorrollen zuweisen:
|
||||
- Gewähren Sie dem regionalen IT-Personal die Rolle "Benutzeradministrator", die auf die AU ihrer Region beschränkt ist.
|
||||
- AUs können **Benutzer, Gruppen oder Geräte enthalten**.
|
||||
- AUs unterstützen **dynamische Mitgliedschaften**.
|
||||
- AUs **können keine AUs enthalten**.
|
||||
- Zuweisen von Administrationsrollen:
|
||||
- Gewähren Sie dem regionalen IT-Personal die Rolle „Benutzeradministrator“, die auf die AU ihrer Region beschränkt ist.
|
||||
- Ergebnis: Regionale IT-Administratoren können Benutzerkonten innerhalb ihrer Region verwalten, ohne andere Regionen zu beeinträchtigen.
|
||||
|
||||
### Entra ID-Rollen
|
||||
|
||||
- Um Entra ID zu verwalten, gibt es einige **integrierte Rollen**, die Entra ID-Prinzipalen zugewiesen werden können, um Entra ID zu verwalten.
|
||||
- Überprüfen Sie die Rollen in [https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference)
|
||||
- Die privilegierteste Rolle ist **Global Administrator**
|
||||
- Um Entra ID zu verwalten, gibt es einige **vordefinierte Rollen**, die Entra ID-Prinzipalen zugewiesen werden können, um Entra ID zu verwalten.
|
||||
- Überprüfen Sie die Rollen in [https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference).
|
||||
- Die privilegierteste Rolle ist **Global Administrator**.
|
||||
- In der Beschreibung der Rolle sind ihre **detaillierten Berechtigungen** zu sehen.
|
||||
|
||||
## Rollen & Berechtigungen
|
||||
|
||||
**Rollen** werden **Prinzipalen** auf einem **Bereich** zugewiesen: `principal -[HAS ROLE]->(scope)`
|
||||
|
||||
**Rollen**, die Gruppen zugewiesen sind, werden von allen **Mitgliedern** der Gruppe **vererbt**.
|
||||
**Rollen**, die **Gruppen** zugewiesen sind, werden von allen **Mitgliedern** der Gruppe **vererbt**.
|
||||
|
||||
Je nach dem Bereich, dem die Rolle zugewiesen wurde, kann die **Rolle** auf **andere Ressourcen** innerhalb des Bereichscontainers **vererbt** werden. Zum Beispiel, wenn ein Benutzer A eine **Rolle im Abonnement** hat, hat er diese **Rolle in allen Ressourcengruppen** innerhalb des Abonnements und auf **allen Ressourcen** innerhalb der Ressourcengruppe.
|
||||
|
||||
### **Klassische Rollen**
|
||||
|
||||
| **Besitzer** | <ul><li>Vollzugriff auf alle Ressourcen</li><li>Kann den Zugriff für andere Benutzer verwalten</li></ul> | Alle Ressourcentypen |
|
||||
| **Besitzer** | <ul><li>Vollzugriff auf alle Ressourcen</li><li>Kann den Zugriff für andere Benutzer verwalten</li></ul> | Alle Ressourcentypen |
|
||||
| ----------------------------- | ---------------------------------------------------------------------------------------- | ------------------ |
|
||||
| **Mitwirkender** | <ul><li>Vollzugriff auf alle Ressourcen</li><li>Kann den Zugriff nicht verwalten</li></ul> | Alle Ressourcentypen |
|
||||
| **Leser** | • Alle Ressourcen anzeigen | Alle Ressourcentypen |
|
||||
| **Mitwirkender** | <ul><li>Vollzugriff auf alle Ressourcen</li><li>Kann den Zugriff nicht verwalten</li></ul> | Alle Ressourcentypen |
|
||||
| **Leser** | • Alle Ressourcen anzeigen | Alle Ressourcentypen |
|
||||
| **Benutzerzugriffsadministrator** | <ul><li>Alle Ressourcen anzeigen</li><li>Kann den Zugriff für andere Benutzer verwalten</li></ul> | Alle Ressourcentypen |
|
||||
|
||||
### Eingebaute Rollen
|
||||
|
||||
[Aus den Dokumenten: ](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles)[Azure-Rollenbasierte Zugriffskontrolle (Azure RBAC)](https://learn.microsoft.com/en-us/azure/role-based-access-control/overview) hat mehrere Azure **eingebaute Rollen**, die Sie **Benutzern, Gruppen, Dienstprinzipalen und verwalteten Identitäten** zuweisen können. Rollenzuweisungen sind der Weg, wie Sie **Zugriff auf Azure-Ressourcen** steuern. Wenn die integrierten Rollen nicht den spezifischen Bedürfnissen Ihrer Organisation entsprechen, können Sie Ihre eigenen [**Azure benutzerdefinierten Rollen**](https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles)** erstellen.**
|
||||
[Aus den Dokumenten: ](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles)[Azure-Rollenbasierte Zugriffskontrolle (Azure RBAC)](https://learn.microsoft.com/en-us/azure/role-based-access-control/overview) hat mehrere Azure **vordefinierte Rollen**, die Sie **Benutzern, Gruppen, Dienstprinzipalen und verwalteten Identitäten** zuweisen können. Rollenzuweisungen sind der Weg, wie Sie **Zugriff auf Azure-Ressourcen** steuern. Wenn die vordefinierten Rollen nicht den spezifischen Bedürfnissen Ihrer Organisation entsprechen, können Sie Ihre eigenen [**Azure benutzerdefinierten Rollen**](https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles)** erstellen.**
|
||||
|
||||
**Eingebaute** Rollen gelten nur für die **Ressourcen**, für die sie **bestimmt** sind, zum Beispiel überprüfen Sie diese 2 Beispiele für **eingebaute Rollen über Compute**-Ressourcen:
|
||||
**Vordefinierte** Rollen gelten nur für die **Ressourcen**, für die sie **bestimmt** sind, zum Beispiel überprüfen Sie diese 2 Beispiele für **vordefinierte Rollen über Compute**-Ressourcen:
|
||||
|
||||
| [Disk Backup Reader](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#disk-backup-reader) | Berechtigt zur Sicherung des Speichervaults, um eine Datensicherung durchzuführen. | 3e5e47e6-65f7-47ef-90b5-e5dd4d455f24 |
|
||||
| ----------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | ------------------------------------ |
|
||||
| [Virtual Machine User Login](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#virtual-machine-user-login) | Virtuelle Maschinen im Portal anzeigen und sich als regulärer Benutzer anmelden. | fb879df8-f326-4884-b1cf-06f3ad86be52 |
|
||||
|
||||
Diese Rollen können **auch über logische Container** (wie Verwaltungsgruppen, Abonnements und Ressourcengruppen) zugewiesen werden, und die betroffenen Prinzipale haben sie **über die Ressourcen innerhalb dieser Container**.
|
||||
Diese Rollen können **auch über logische Container** (wie Verwaltungsguppen, Abonnements und Ressourcengruppen) zugewiesen werden, und die betroffenen Prinzipale haben sie **über die Ressourcen innerhalb dieser Container**.
|
||||
|
||||
- Finden Sie hier eine Liste mit [**allen Azure eingebauten Rollen**](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles).
|
||||
- Finden Sie hier eine Liste mit [**allen Entra ID eingebauten Rollen**](https://learn.microsoft.com/en-us/azure/active-directory/roles/permissions-reference).
|
||||
- Finden Sie hier eine Liste mit [**allen Azure vordefinierten Rollen**](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles).
|
||||
- Finden Sie hier eine Liste mit [**allen Entra ID vordefinierten Rollen**](https://learn.microsoft.com/en-us/azure/active-directory/roles/permissions-reference).
|
||||
|
||||
### Benutzerdefinierte Rollen
|
||||
|
||||
@@ -256,13 +256,13 @@ Diese Rollen können **auch über logische Container** (wie Verwaltungsgruppen,
|
||||
- Sie werden innerhalb eines Bereichs erstellt, obwohl eine Rolle in mehreren Bereichen (Verwaltungsgruppen, Abonnements und Ressourcengruppen) sein kann.
|
||||
- Es ist möglich, alle detaillierten Berechtigungen zu konfigurieren, die die benutzerdefinierte Rolle haben wird.
|
||||
- Es ist möglich, Berechtigungen auszuschließen.
|
||||
- Ein Prinzipal mit einer ausgeschlossenen Berechtigung kann sie nicht verwenden, auch wenn die Berechtigung anderswo gewährt wird.
|
||||
- Ein Prinzipal mit einer ausgeschlossenen Berechtigung kann sie nicht verwenden, selbst wenn die Berechtigung anderswo gewährt wird.
|
||||
- Es ist möglich, Platzhalter zu verwenden.
|
||||
- Das verwendete Format ist JSON.
|
||||
- `actions` sind für Kontrollaktionen über die Ressource.
|
||||
- `dataActions` sind Berechtigungen über die Daten innerhalb des Objekts.
|
||||
|
||||
Beispiel für JSON-Berechtigungen für eine benutzerdefinierte Rolle:
|
||||
Beispiel für Berechtigungen JSON für eine benutzerdefinierte Rolle:
|
||||
```json
|
||||
{
|
||||
"properties": {
|
||||
@@ -294,7 +294,7 @@ Beispiel für JSON-Berechtigungen für eine benutzerdefinierte Rolle:
|
||||
```
|
||||
### Berechtigungsreihenfolge
|
||||
|
||||
- Damit ein **Principal Zugriff auf eine Ressource hat**, muss ihm eine explizite Rolle zugewiesen werden (in welcher Form auch immer), **die ihm diese Berechtigung gewährt**.
|
||||
- Damit ein **Principal Zugriff auf eine Ressource hat**, muss ihm eine explizite Rolle zugewiesen werden, die ihm **diese Berechtigung gewährt**.
|
||||
- Eine explizite **Ablehnungsrollenzuweisung hat Vorrang** vor der Rolle, die die Berechtigung gewährt.
|
||||
|
||||
<figure><img src="../../../images/image (191).png" alt=""><figcaption><p><a href="https://link.springer.com/chapter/10.1007/978-1-4842-7325-8_10">https://link.springer.com/chapter/10.1007/978-1-4842-7325-8_10</a></p></figcaption></figure>
|
||||
@@ -303,7 +303,7 @@ Beispiel für JSON-Berechtigungen für eine benutzerdefinierte Rolle:
|
||||
|
||||
Der globale Administrator ist eine Rolle aus Entra ID, die **vollständige Kontrolle über den Entra ID-Mandanten gewährt**. Standardmäßig gewährt sie jedoch keine Berechtigungen für Azure-Ressourcen.
|
||||
|
||||
Benutzer mit der Rolle des globalen Administrators haben die Möglichkeit, sich **zum Benutzerzugriffsadministrator Azure-Rolle in der Root-Management-Gruppe zu "erheben"**. Global Administratoren können den Zugriff in **allen Azure-Abonnements und Managementgruppen verwalten.**\
|
||||
Benutzer mit der Rolle des globalen Administrators haben die Möglichkeit, sich **zum Benutzerzugriffsadministrator-Rolle in der Root-Management-Gruppe zu 'erheben'**. So können globale Administratoren den Zugriff in **allen Azure-Abonnements und Managementgruppen verwalten.**\
|
||||
Diese Erhöhung kann am Ende der Seite durchgeführt werden: [https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/\~/Properties](https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/Properties)
|
||||
|
||||
<figure><img src="../../../images/image (349).png" alt=""><figcaption></figcaption></figure>
|
||||
@@ -318,15 +318,15 @@ Azure-Richtlinien sind **proaktiv**: Sie können die Erstellung oder Änderung v
|
||||
|
||||
1. **Richtliniendefinition**: Eine Regel, die in JSON geschrieben ist und angibt, was erlaubt oder erforderlich ist.
|
||||
2. **Richtlinienzuweisung**: Die Anwendung einer Richtlinie auf einen bestimmten Geltungsbereich (z. B. Abonnement, Ressourcengruppe).
|
||||
3. **Initiativen**: Eine Sammlung von Richtlinien, die zusammengefasst sind, um eine breitere Durchsetzung zu ermöglichen.
|
||||
3. **Initiativen**: Eine Sammlung von Richtlinien, die für eine breitere Durchsetzung zusammengefasst sind.
|
||||
4. **Wirkung**: Gibt an, was passiert, wenn die Richtlinie ausgelöst wird (z. B. "Ablehnen", "Überprüfen" oder "Anhängen").
|
||||
|
||||
**Einige Beispiele:**
|
||||
|
||||
1. **Sicherstellen der Einhaltung bestimmter Azure-Regionen**: Diese Richtlinie stellt sicher, dass alle Ressourcen in bestimmten Azure-Regionen bereitgestellt werden. Zum Beispiel möchte ein Unternehmen sicherstellen, dass alle seine Daten in Europa für die Einhaltung der DSGVO gespeichert werden.
|
||||
1. **Sicherstellung der Einhaltung bestimmter Azure-Regionen**: Diese Richtlinie stellt sicher, dass alle Ressourcen in bestimmten Azure-Regionen bereitgestellt werden. Zum Beispiel möchte ein Unternehmen sicherstellen, dass alle seine Daten in Europa für die Einhaltung der DSGVO gespeichert werden.
|
||||
2. **Durchsetzung von Namensstandards**: Richtlinien können Namenskonventionen für Azure-Ressourcen durchsetzen. Dies hilft bei der Organisation und der einfachen Identifizierung von Ressourcen anhand ihrer Namen, was in großen Umgebungen hilfreich ist.
|
||||
3. **Einschränkung bestimmter Ressourcentypen**: Diese Richtlinie kann die Erstellung bestimmter Ressourcentypen einschränken. Zum Beispiel könnte eine Richtlinie festgelegt werden, um die Erstellung teurer Ressourcentypen, wie bestimmter VM-Größen, zur Kostenkontrolle zu verhindern.
|
||||
4. **Durchsetzung von Tagging-Richtlinien**: Tags sind Schlüssel-Wert-Paare, die mit Azure-Ressourcen verknüpft sind und für das Ressourcenmanagement verwendet werden. Richtlinien können durchsetzen, dass bestimmte Tags vorhanden sein müssen oder spezifische Werte haben müssen, für alle Ressourcen. Dies ist nützlich für die Kostenverfolgung, den Besitz oder die Kategorisierung von Ressourcen.
|
||||
4. **Durchsetzung von Tagging-Richtlinien**: Tags sind Schlüssel-Wert-Paare, die mit Azure-Ressourcen verknüpft sind und für das Ressourcenmanagement verwendet werden. Richtlinien können durchsetzen, dass bestimmte Tags vorhanden sein müssen oder spezifische Werte haben, für alle Ressourcen. Dies ist nützlich für die Kostenverfolgung, den Besitz oder die Kategorisierung von Ressourcen.
|
||||
5. **Einschränkung des öffentlichen Zugriffs auf Ressourcen**: Richtlinien können durchsetzen, dass bestimmte Ressourcen, wie Speicherkonten oder Datenbanken, keine öffentlichen Endpunkte haben, um sicherzustellen, dass sie nur innerhalb des Netzwerks der Organisation zugänglich sind.
|
||||
6. **Automatisches Anwenden von Sicherheitseinstellungen**: Richtlinien können verwendet werden, um automatisch Sicherheitseinstellungen auf Ressourcen anzuwenden, wie das Anwenden einer bestimmten Netzwerksicherheitsgruppe auf alle VMs oder das Sicherstellen, dass alle Speicherkonten Verschlüsselung verwenden.
|
||||
|
||||
@@ -352,7 +352,7 @@ Azure-Richtlinien JSON-Beispiel:
|
||||
```
|
||||
### Berechtigungsübertragung
|
||||
|
||||
In Azure **können Berechtigungen auf jeden Teil der Hierarchie zugewiesen werden**. Dazu gehören Verwaltungseinheiten, Abonnements, Ressourcengruppen und einzelne Ressourcen. Berechtigungen werden von enthaltenen **Ressourcen** der Entität, wo sie zugewiesen wurden, **vererbt**.
|
||||
In Azure **können Berechtigungen jedem Teil der Hierarchie zugewiesen werden**. Dazu gehören Verwaltungseinheiten, Abonnements, Ressourcengruppen und einzelne Ressourcen. Berechtigungen werden von enthaltenen **Ressourcen** der Entität, wo sie zugewiesen wurden, **vererbt**.
|
||||
|
||||
Diese hierarchische Struktur ermöglicht eine effiziente und skalierbare Verwaltung von Zugriffsberechtigungen.
|
||||
|
||||
@@ -360,10 +360,10 @@ Diese hierarchische Struktur ermöglicht eine effiziente und skalierbare Verwalt
|
||||
|
||||
### Azure RBAC vs ABAC
|
||||
|
||||
**RBAC** (rollenbasierte Zugriffskontrolle) ist das, was wir bereits in den vorherigen Abschnitten gesehen haben: **Zuweisen einer Rolle an ein Subjekt, um ihm Zugriff** auf eine Ressource zu gewähren.\
|
||||
**RBAC** (rollenbasierte Zugriffskontrolle) ist das, was wir bereits in den vorherigen Abschnitten gesehen haben: **Zuweisung einer Rolle an ein Subjekt, um ihm Zugriff** auf eine Ressource zu gewähren.\
|
||||
In einigen Fällen möchten Sie jedoch möglicherweise **feinere Zugriffsverwaltung** bereitstellen oder die Verwaltung von **Hunderte** von Rollen **zuweisungen** **vereinfachen**.
|
||||
|
||||
Azure **ABAC** (attributbasierte Zugriffskontrolle) baut auf Azure RBAC auf, indem es **Rollen zuweisungsbedingungen basierend auf Attributen** im Kontext spezifischer Aktionen hinzufügt. Eine _Rollen zuweisungsbedingung_ ist eine **zusätzliche Überprüfung, die Sie optional zu Ihrer Rollen zuweisung hinzufügen können**, um eine feinere Zugriffskontrolle zu bieten. Eine Bedingung filtert die Berechtigungen, die als Teil der Rollendefinition und der Rollen zuweisung gewährt werden. Zum Beispiel können Sie **eine Bedingung hinzufügen, die erfordert, dass ein Objekt ein bestimmtes Tag hat, um das Objekt zu lesen**.\
|
||||
Azure **ABAC** (attributbasierte Zugriffskontrolle) baut auf Azure RBAC auf, indem es **Bedingungen für die Rollen zuweisung basierend auf Attributen** im Kontext spezifischer Aktionen hinzufügt. Eine _Bedingung für die Rollen zuweisung_ ist eine **zusätzliche Überprüfung, die Sie optional zu Ihrer Rollen zuweisung hinzufügen können**, um eine feinere Zugriffskontrolle zu bieten. Eine Bedingung filtert die Berechtigungen, die als Teil der Rollendefinition und der Rollen zuweisung gewährt werden. Zum Beispiel können Sie **eine Bedingung hinzufügen, die erfordert, dass ein Objekt ein bestimmtes Tag hat, um das Objekt zu lesen**.\
|
||||
Sie **können** den **Zugriff** auf spezifische Ressourcen **nicht** ausdrücklich **verweigern** **mit Bedingungen**.
|
||||
|
||||
## Referenzen
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Grundlegende Informationen
|
||||
|
||||
Entra ID ist die cloudbasierte Identitäts- und Zugriffsmanagementplattform (IAM) von Microsoft und dient als grundlegendes Authentifizierungs- und Autorisierungssystem für Dienste wie Microsoft 365 und Azure Resource Manager. Azure AD implementiert das OAuth 2.0-Autorisierungsframework und das OpenID Connect (OIDC)-Authentifizierungsprotokoll zur Verwaltung des Zugriffs auf Ressourcen.
|
||||
Entra ID ist die cloudbasierte Identitäts- und Zugriffsmanagement (IAM) Plattform von Microsoft und dient als grundlegendes Authentifizierungs- und Autorisierungssystem für Dienste wie Microsoft 365 und Azure Resource Manager. Azure AD implementiert das OAuth 2.0 Autorisierungsframework und das OpenID Connect (OIDC) Authentifizierungsprotokoll zur Verwaltung des Zugriffs auf Ressourcen.
|
||||
|
||||
### OAuth
|
||||
|
||||
@@ -22,7 +22,7 @@ Entra ID ist die cloudbasierte Identitäts- und Zugriffsmanagementplattform (IAM
|
||||
|
||||
**Integration von Microsoft 365:**
|
||||
|
||||
- Microsoft 365 nutzt Azure AD für IAM und besteht aus mehreren "First-Party"-OAuth-Anwendungen.
|
||||
- Microsoft 365 nutzt Azure AD für IAM und besteht aus mehreren "First-Party" OAuth-Anwendungen.
|
||||
- Diese Anwendungen sind tief integriert und haben oft voneinander abhängige Dienstbeziehungen.
|
||||
- Um die Benutzererfahrung zu vereinfachen und die Funktionalität aufrechtzuerhalten, gewährt Microsoft diesen First-Party-Anwendungen "implizite Zustimmung" oder "Vorab-Zustimmung".
|
||||
- **Implizite Zustimmung:** Bestimmte Anwendungen erhalten automatisch **Zugriff auf spezifische Scopes ohne ausdrückliche Genehmigung des Benutzers oder Administrators**.
|
||||
@@ -42,10 +42,10 @@ Entra ID ist die cloudbasierte Identitäts- und Zugriffsmanagementplattform (IAM
|
||||
|
||||
Es gibt **drei Arten von Tokens**, die in OIDC verwendet werden:
|
||||
|
||||
- [**Zugriffstoken**](https://learn.microsoft.com/en-us/azure/active-directory/develop/access-tokens)**:** Der Client präsentiert dieses Token dem Ressourcenserver, um **auf Ressourcen zuzugreifen**. Es kann nur für eine spezifische Kombination aus Benutzer, Client und Ressource verwendet werden und **kann nicht widerrufen** werden, bis es abläuft - das ist standardmäßig 1 Stunde.
|
||||
- [**Zugriffstoken**](https://learn.microsoft.com/en-us/azure/active-directory/develop/access-tokens)**:** Der Client präsentiert dieses Token dem Ressourcenserver, um **auf Ressourcen zuzugreifen**. Es kann nur für eine spezifische Kombination aus Benutzer, Client und Ressource verwendet werden und **kann bis zum Ablauf nicht widerrufen werden** - das sind standardmäßig 1 Stunde.
|
||||
- **ID-Tokens**: Der Client erhält dieses **Token vom Autorisierungsserver**. Es enthält grundlegende Informationen über den Benutzer. Es ist **an eine spezifische Kombination aus Benutzer und Client gebunden**.
|
||||
- **Aktualisierungstoken**: Werden dem Client mit dem Zugriffstoken bereitgestellt. Wird verwendet, um **neue Zugriffs- und ID-Tokens zu erhalten**. Es ist an eine spezifische Kombination aus Benutzer und Client gebunden und kann widerrufen werden. Die Standardablaufzeit beträgt **90 Tage** für inaktive Aktualisierungstoken und **keine Ablaufzeit für aktive Tokens** (es ist möglich, aus einem Aktualisierungstoken neue Aktualisierungstoken zu erhalten).
|
||||
- Ein Aktualisierungstoken sollte an ein **`aud`**, an einige **Scopes** und an einen **Mandanten** gebunden sein und sollte nur in der Lage sein, Zugriffstoken für dieses aud, diese Scopes (und nicht mehr) und diesen Mandanten zu generieren. Dies ist jedoch nicht der Fall bei **FOCI-Anwendungstoken**.
|
||||
- **Aktualisierungstokens**: Werden dem Client mit dem Zugriffstoken bereitgestellt. Wird verwendet, um **neue Zugriffs- und ID-Tokens zu erhalten**. Es ist an eine spezifische Kombination aus Benutzer und Client gebunden und kann widerrufen werden. Die standardmäßige Ablaufzeit beträgt **90 Tage** für inaktive Aktualisierungstokens und **keine Ablaufzeit für aktive Tokens** (es ist möglich, aus einem Aktualisierungstoken neue Aktualisierungstokens zu erhalten).
|
||||
- Ein Aktualisierungstoken sollte an ein **`aud`**, an einige **Scopes** und an einen **Mandanten** gebunden sein und sollte nur in der Lage sein, Zugriffstoken für dieses aud, diese Scopes (und nicht mehr) und diesen Mandanten zu generieren. Dies ist jedoch nicht der Fall bei **FOCI-Anwendungstokens**.
|
||||
- Ein Aktualisierungstoken ist verschlüsselt und nur Microsoft kann es entschlüsseln.
|
||||
- Das Erhalten eines neuen Aktualisierungstokens widerruft das vorherige Aktualisierungstoken nicht.
|
||||
|
||||
@@ -54,18 +54,18 @@ Es gibt **drei Arten von Tokens**, die in OIDC verwendet werden:
|
||||
|
||||
### Zugriffstoken "aud"
|
||||
|
||||
Das im Feld "aud" angegebene Feld ist der **Ressourcenserver** (die Anwendung), der verwendet wird, um die Anmeldung durchzuführen.
|
||||
Das im "aud"-Feld angegebene Feld ist der **Ressourcenserver** (die Anwendung), der verwendet wird, um die Anmeldung durchzuführen.
|
||||
|
||||
Der Befehl `az account get-access-token --resource-type [...]` unterstützt die folgenden Typen, und jeder von ihnen wird ein spezifisches "aud" im resultierenden Zugriffstoken hinzufügen:
|
||||
|
||||
> [!CAUTION]
|
||||
> Beachten Sie, dass dies nur die von `az account get-access-token` unterstützten APIs sind, es gibt jedoch weitere.
|
||||
> Beachten Sie, dass die folgenden nur die von `az account get-access-token` unterstützten APIs sind, es gibt jedoch weitere.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>aud Beispiele</summary>
|
||||
|
||||
- **aad-graph (Azure Active Directory Graph API)**: Wird verwendet, um auf die veraltete Azure AD Graph API (abgekündigt) zuzugreifen, die Anwendungen ermöglicht, Verzeichnisdaten in Azure Active Directory (Azure AD) zu lesen und zu schreiben.
|
||||
- **aad-graph (Azure Active Directory Graph API)**: Wird verwendet, um auf die veraltete Azure AD Graph API (abgekündigt) zuzugreifen, die Anwendungen das Lesen und Schreiben von Verzeichnisdaten in Azure Active Directory (Azure AD) ermöglicht.
|
||||
- `https://graph.windows.net/`
|
||||
|
||||
* **arm (Azure Resource Manager)**: Wird verwendet, um Azure-Ressourcen über die Azure Resource Manager API zu verwalten. Dazu gehören Operationen wie das Erstellen, Aktualisieren und Löschen von Ressourcen wie virtuellen Maschinen, Speicherkonten und mehr.
|
||||
@@ -92,7 +92,7 @@ Der Befehl `az account get-access-token --resource-type [...]` unterstützt die
|
||||
|
||||
Der Scope eines Zugriffstokens wird im scp-Schlüssel innerhalb des Zugriffstoken-JWT gespeichert. Diese Scopes definieren, auf was das Zugriffstoken Zugriff hat.
|
||||
|
||||
Wenn ein JWT berechtigt ist, eine bestimmte API zu kontaktieren, aber **nicht den Scope** hat, um die angeforderte Aktion auszuführen, **kann es die Aktion nicht** mit diesem JWT ausführen.
|
||||
Wenn ein JWT berechtigt ist, eine spezifische API zu kontaktieren, aber **nicht den Scope** hat, um die angeforderte Aktion auszuführen, **kann es die Aktion nicht mit diesem JWT ausführen**.
|
||||
|
||||
### Beispiel zum Abrufen von Aktualisierungs- und Zugriffstoken
|
||||
```python
|
||||
@@ -121,7 +121,6 @@ device_flow
|
||||
pprint(azure_cli_bearer_tokens_for_graph_api)
|
||||
|
||||
|
||||
|
||||
# DECODE JWT
|
||||
def decode_jwt(base64_blob: str) -> Dict[str, Any]:
|
||||
"""Decodes base64 encoded JWT blob"""
|
||||
@@ -149,15 +148,15 @@ pprint(new_azure_cli_bearer_tokens_for_graph_api)
|
||||
|
||||
Zuvor wurde erwähnt, dass Refresh-Token an die **Scopes** gebunden sein sollten, mit denen sie generiert wurden, an die **Anwendung** und den **Mandanten**, für die sie generiert wurden. Wenn eine dieser Grenzen überschritten wird, ist es möglich, Privilegien zu eskalieren, da es möglich sein wird, Zugriffstoken für andere Ressourcen und Mandanten zu generieren, auf die der Benutzer Zugriff hat, und mit mehr Scopes, als ursprünglich beabsichtigt.
|
||||
|
||||
Darüber hinaus **ist dies mit allen Refresh-Token** in der [Microsoft-Identitätsplattform](https://learn.microsoft.com/en-us/entra/identity-platform/) (Microsoft Entra-Konten, Microsoft-Persönliche Konten und soziale Konten wie Facebook und Google) möglich, da die [**Dokumentation**](https://learn.microsoft.com/en-us/entra/identity-platform/refresh-tokens) erwähnt: "Refresh-Token sind an eine Kombination aus Benutzer und Client gebunden, aber **nicht an eine Ressource oder einen Mandanten gebunden**. Ein Client kann ein Refresh-Token verwenden, um Zugriffstoken **über jede Kombination von Ressource und Mandant** zu erwerben, für die er die Berechtigung hat. Refresh-Token sind verschlüsselt und nur die Microsoft-Identitätsplattform kann sie lesen."
|
||||
Darüber hinaus **ist dies mit allen Refresh-Token** in der [Microsoft identity platform](https://learn.microsoft.com/en-us/entra/identity-platform/) (Microsoft Entra-Konten, Microsoft-Persönliche Konten und soziale Konten wie Facebook und Google) möglich, da die [**Dokumentation**](https://learn.microsoft.com/en-us/entra/identity-platform/refresh-tokens) erwähnt: "Refresh-Token sind an eine Kombination aus Benutzer und Client gebunden, aber **nicht an eine Ressource oder einen Mandanten gebunden**. Ein Client kann ein Refresh-Token verwenden, um Zugriffstoken **über jede Kombination von Ressource und Mandant** zu erwerben, für die er die Berechtigung hat. Refresh-Token sind verschlüsselt und nur die Microsoft identity platform kann sie lesen."
|
||||
|
||||
Darüber hinaus beachten Sie, dass die FOCI-Anwendungen öffentliche Anwendungen sind, sodass **kein Geheimnis erforderlich ist**, um sich beim Server zu authentifizieren.
|
||||
Beachten Sie außerdem, dass die FOCI-Anwendungen öffentliche Anwendungen sind, sodass **kein Geheimnis erforderlich ist**, um sich beim Server zu authentifizieren.
|
||||
|
||||
Dann bekannte FOCI-Clients, die in der [**ursprünglichen Forschung**](https://github.com/secureworks/family-of-client-ids-research/tree/main) gemeldet wurden, können [**hier gefunden werden**](https://github.com/secureworks/family-of-client-ids-research/blob/main/known-foci-clients.csv).
|
||||
Bekannte FOCI-Clients, die in der [**ursprünglichen Forschung**](https://github.com/secureworks/family-of-client-ids-research/tree/main) berichtet wurden, können [**hier gefunden werden**](https://github.com/secureworks/family-of-client-ids-research/blob/main/known-foci-clients.csv).
|
||||
|
||||
### Anderen Scope erhalten
|
||||
### Anderen Scope abrufen
|
||||
|
||||
Folgend mit dem vorherigen Beispielcode wird in diesem Code ein neues Token für einen anderen Scope angefordert:
|
||||
Im Folgenden wird im vorherigen Beispielcode ein neues Token für einen anderen Scope angefordert:
|
||||
```python
|
||||
# Code from https://github.com/secureworks/family-of-client-ids-research
|
||||
azure_cli_bearer_tokens_for_outlook_api = (
|
||||
|
||||
Reference in New Issue
Block a user