Zum Inhalt springen

Anwendungsentwicklung und Softwarequalität – Authentifizierung und Autorisierung unterscheiden

Aus MOOCsWiki Staging
Version vom 9. Oktober 2026, 21:32 Uhr von Glanz (Diskussion | Beiträge) (aiMOOC über GPT aiMOOC Action erstellt)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
aiMOOC-Siegel aiMOOC

Anwendungsentwicklung und Softwarequalität – Authentifizierung und Autorisierung unterscheiden

QR-Code


Einleitung

Anwendungsentwicklung und Softwarequalität – Authentifizierung und Autorisierung unterscheiden Ausbildung Anwendungsentwicklung · 90 Minuten · ausschließlich fiktive Daten Du lernst den Unterschied zwischen Authentifizierung (Identität überprüfen) und Autorisierung (konkrete Berechtigung entscheiden). Du testest dazu ein fiktives Ticketsystem in Python. Alle praktischen Tests laufen lokal ohne Netzwerkzugriff; keine fremden Systeme, echten Zugangsdaten oder Kundendaten verwenden.

Ausbildungsfall: Lernwerk

Lea und Noah sind Auszubildende, Mira ist Ausbilderin. Lea besitzt Ticket T-LEA, Noah Ticket T-NOA. Die Azubis dürfen nur eigene Tickets lesen. Mira darf beide lesen und freigeben.

Rolle Eigenes Ticket lesen Fremdes Ticket lesen Freigeben
Azubi Ja Nein Nein
Ausbilderin Ja Ja Ja


Lerneinheit 1: Wer bist Du?

Authentifizierung überprüft eine behauptete Identität anhand eines Nachweises, beispielsweise Passwort oder Passkey. Die Vorlage des Nachweises wird auch Authentisierung genannt. Eine bestätigte Identität allein verleiht kein bestimmtes Zugriffsrecht.

Veranschaulichung von Passkeys bei Wikimedia.

Basisfrage: Lea hat sich angemeldet. Darf sie deshalb Noahs Ticket lesen? Begründe Deine Antwort.

Lerneinheit 2: Was darfst Du?

Autorisierung überprüft Aktion, Ressource, Rolle und gegebenenfalls die Zugehörigkeit eines Datensatzes. RBAC bündelt Berechtigungen in Rollen. Least Privilege beschränkt Rechte auf das Notwendige. Deny by Default verweigert nicht ausdrücklich erlaubte Aktionen.

Identität Aktion Ressource Simulation Begründung
Lea lesen T-LEA 200 Eigenes Ticket
Lea lesen T-NOA 403 Fremder Datensatz
Lea freigeben T-LEA 403 Freigaberecht fehlt
Mira freigeben T-NOA 200 Rolle erlaubt Aktion
Noah mit unpassendem Testcode lesen T-NOA 401 Identität nicht bestätigt

Statushinweis: 200 steht bei HTTP für Erfolg, 401 für fehlende gültige Authentifizierungsinformationen und 403 für verweigerten Zugriff. Das lokale Programm simuliert lediglich diese Zahlen; es betreibt keinen HTTP-Server.

Lerneinheit 3: Lokales Python-Labor

Speichere folgenden Python-3-Code als auth_labor.py. Alle Personen, Tickets und Testcodes sind frei erfunden. Die vierstelligen Codes sind ausschließlich didaktische Platzhalter; produktive Authentifizierung erfordert beispielsweise geeignete Passwort-Hashverfahren und sichere Sitzungsverwaltung.

# Offline-Lernmodell mit fiktiven Testdaten
import hmac
import sys

personen = {
    'lea': ('1111', 'azubi'),
    'noah': ('2222', 'azubi'),
    'mira': ('3333', 'ausbilderin'),
}
tickets = {'T-LEA': 'lea', 'T-NOA': 'noah'}
rechte = {'azubi': {'lesen'},
          'ausbilderin': {'lesen', 'freigeben'}}

def authentifizieren(name, code):
    daten = personen.get(name)
    if daten and hmac.compare_digest(daten[0], code):
        return name
    return None

def autorisieren(identitaet, aktion, ticket):
    if identitaet not in personen:
        return 401
    if ticket not in tickets:
        return 404
    rolle = personen[identitaet][1]
    if aktion not in rechte.get(rolle, set()):
        return 403
    if rolle == 'azubi' and tickets[ticket] != identitaet:
        return 403
    return 200

def pruefen(name, code, aktion, ticket):
    return autorisieren(authentifizieren(name, code), aktion, ticket)

faelle = [
    ('lea', '1111', 'lesen', 'T-LEA', 200),
    ('lea', '1111', 'lesen', 'T-NOA', 403),
    ('lea', '1111', 'freigeben', 'T-LEA', 403),
    ('mira', '3333', 'freigeben', 'T-NOA', 200),
    ('noah', '2222', 'lesen', 'T-NOA', 200),
    ('noah', 'unpassend', 'lesen', 'T-NOA', 401),
    ('mira', '3333', 'lesen', 'T-XXX', 404),
]

def tests():
    for name, code, aktion, ticket, soll in faelle:
        ist = pruefen(name, code, aktion, ticket)
        print(name, aktion, ticket, 'Soll:', soll, 'Ist:', ist)
        assert ist == soll
    print('Alle sieben Sollwerte bestätigt.')

def dialog():
    print('Lokale Fantasiedaten: lea/1111, noah/2222, mira/3333')
    while True:
        name = input('Name (q beendet): ').strip().lower()
        if name == 'q':
            break
        code = input('Fiktiver Testcode: ').strip()
        aktion = input('Aktion lesen/freigeben: ').strip().lower()
        ticket = input('Ticket T-LEA/T-NOA: ').strip().upper()
        print('Entscheidung:', pruefen(name, code, aktion, ticket))

if __name__ == '__main__':
    if len(sys.argv) == 2 and sys.argv[1] == '--test':
        tests()
    else:
        dialog()

Interaktiver Start: python3 -I auth_labor.py Automatischer Testlauf: python3 -I auth_labor.py --test Auf Windows gegebenenfalls py -I statt python3 -I verwenden. Das Programm nutzt nur Python-Standardmodule und öffnet keine Netzwerkverbindungen. Eingaben dürfen nur die angegebenen Fantasiedaten enthalten.

Gestufte Hilfen

Hilfe 1: Unterscheide die Funktionen authentifizieren und autorisieren.
Die erste bestätigt den Testcode; die zweite prüft konkrete Aktionen und Tickets.
Hilfe 2: Woher kommt das Leserecht?
Aus dem Dictionary rechte, abhängig von der Rolle.
Hilfe 3: Warum wird T-NOA für Lea verweigert?
Der Eigentümer von T-NOA ist noah, nicht lea. Deshalb ergibt die zusätzliche Zugehörigkeitsprüfung 403.


Lerneinheit 4: Qualität durch Prüfungen

Eine ausgeblendete Schaltfläche ersetzt keine Zugriffskontrolle an der geschützten Aktion. Prüfe Berechtigungen im vertrauenswürdigen Backend und kontrolliere nach Änderungen sowohl erlaubte als auch verweigerte Zugriffe.

Transfer: Bei OAuth 2.0 geht es um delegierte Autorisierung; OpenID Connect ergänzt eine Identitätsschicht.


Interaktive Aufgaben


Quiz: Teste Dein Wissen

Was prüft die Authentifizierung? (Die behauptete Identität) (!Die Ticketfarbe) (!Den Ticketpreis) (!Die Freigabedauer)




Was prüft die Autorisierung? (Die konkrete Berechtigung) (!Die Schriftgröße) (!Die Kennwortlänge allein) (!Den Gerätenamen allein)




Was folgt aus einem erfolgreichen Login? (Eine bestätigte Identität) (!Uneingeschränkte Schreibrechte) (!Freigabe aller Tickets) (!Zugriff auf alle Datensätze)




Wer darf im Lernmodell freigeben? (Die Ausbilderin) (!Jeder Azubi) (!Jeder Gast) (!Jede unbekannte Person)




Was schützt die Eigentümerprüfung? (Fremde Tickets) (!Die Bildschirmfarbe) (!Den Dateinamen) (!Die Uhrzeit)




Was bedeutet Least Privilege? (Nur notwendige Rechte vergeben) (!Alle Rechte vergeben) (!Keine Rollen verwenden) (!Jede Aktion erlauben)




Was liefert der simulierte Zugriff mit unpassendem Testcode? (401) (!200) (!201) (!403)




Was liefert die Simulation bei verbotener Freigabe? (403) (!200) (!201) (!301)




Was bezeichnet RBAC? (Rollenbasierte Zugriffskontrolle) (!Automatische Bildkompression) (!Freigabe ohne Prüfung) (!Datensicherung allein)




Wo wird eine geschützte Aktion zuverlässig geprüft? (Im vertrauenswürdigen Backend) (!Nur durch versteckte Schaltflächen) (!Nur durch eine Seitenfarbe) (!Nur durch einen Hinweistext)





Begründetes Feedback

Lösungen und Gründe anzeigen
Authentifizierung bestätigt Identitätsnachweise; Autorisierung entscheidet über Aktionen. Lea erhält nicht automatisch Zugriff auf Noahs Ticket. Nur Mira besitzt das Freigaberecht. Die Eigentümerprüfung ergänzt die Rollenprüfung. Least Privilege reduziert unnötige Rechte. Im Modell bedeuten 401 eine nicht bestätigte Identität und 403 eine abgelehnte Aktion. RBAC bündelt Rechte. Eine serverseitige Prüfung kann nicht durch das Ausblenden von Bedienelementen ersetzt werden.


Memory

Identität Behauptete Person
Authentifizierung Nachweisprüfung
Autorisierung Berechtigungsentscheidung
Rolle Bündel zugewiesener Rechte
Ressource Geschütztes Ticket
Minimalprinzip Begrenzte Berechtigung





Drag and Drop

Ordne die richtigen Begriffe zu. Thema
Authentifizierung Identitätsnachweis
Autorisierung Aktionsrecht
Rollenmodell Rechtebündel
Eigentümerprüfung Datensatzzugehörigkeit
Standardverweigerung Fehlende Freigabe





Kreuzworträtsel

Authentifizierung Wie heißt die Prüfung eines behaupteten Identitätsnachweises?
Autorisierung Wie heißt die Entscheidung über einen konkreten Zugriff?
Rollenmodell Welches Modell bündelt Berechtigungen?
Ticket Welche Ressource nutzen Lea und Noah?
Freigabe Welche Aktion darf nur Mira ausführen?
Minimalprinzip Welches Prinzip begrenzt Rechte auf das Nötige?





LearningApps

Freiwilliger externer Dienst: Nur nach ausdrücklicher Freigabe öffnen und keine echten personenbezogenen Informationen eingeben.


Lückentext

Vervollständige den Text.
Die

prüft einen behaupteten Identitätsnachweis.
Eine konkrete Zugriffsentscheidung heißt

.
Im Rollenmodell werden Rechte durch

gebündelt.
Lea darf ihr eigenes

lesen.
Das Minimalprinzip verlangt die Beschränkung auf

Rechte.
Unbekannte Aktionen werden standardmäßig

.
Die Testsimulation liefert bei fehlendem Identitätsnachweis

.
Bei verbotener Aktion liefert sie

.
Bei erlaubter Aktion liefert sie

.
Die zusätzliche Prüfung berücksichtigt den

eines Tickets.



Praxisaufgaben mit gestuftem Feedback

Basis: Kennzeichne Login-Nachweis und Ticketfreigabe als Authentifizierung beziehungsweise Autorisierung. Feedback: Der erste Vorgang bestätigt Identität; der zweite prüft Handlungsrechte. Anwendung: Entferne in einer separaten lokalen Kopie testweise die Eigentümerprüfung. Welche der sieben Sollwerte ändern sich? Feedback: Der Zugriff auf ein fremdes Ticket wird dann fälschlich erlaubt; der betreffende Negativtest deckt das auf. Transfer: Ergänze eine fiktive Prüferrolle, die beide Tickets lesen, jedoch keines freigeben darf. Feedback: Die Umsetzung ist passend, wenn Lesen erlaubt und Freigeben verweigert wird.

Offene Aufgaben


Leicht

  1. Authentifizierung: Gestalte eine Bildkarte zu einem fiktiven Login.
  2. Autorisierung: Zeichne eine erlaubte und eine verweigerte Ticketaktion.
  3. Rollenmodell: Erstelle eine kleine eigene Berechtigungsmatrix.
  4. Softwaretest: Dokumentiere drei lokale Testfälle mit Sollwerten.


Standard

  1. Python: Ergänze eine weitere fiktive Person im Lernmodell.
  2. Testfall: Prüfe unbekannte Aktionen und unbekannte Tickets.
  3. Berechtigungskonzept: Entwirf die Rechte einer fiktiven Bibliotheksanwendung.
  4. Softwarequalität: Zeichne die Abfolge aus Identitäts- und Rechteprüfung.


Schwer

  1. Sicherheitsanalyse: Vergleiche das Lernmodell mit und ohne Eigentümerprüfung.
  2. Attribute-Based Access Control: Ergänze eine zusätzliche fiktive Zuständigkeitsregel.
  3. Regressionstest: Entwickle weitere positive und negative Testfälle.
  4. Softwarearchitektur: Entwirf getrennte Komponenten für Identität und Berechtigung.




Text bearbeiten Bild einfügen Video einbetten Interaktive Aufgaben erstellen



Lernkontrolle

  1. Zugriffskontrolle: Begründe, warum ein erfolgreicher Login noch kein Leserecht für fremde Tickets begründet.
  2. Rollenmodell: Zeige an einem Beispiel, warum die Rolle allein nicht ausreichen kann.
  3. Regressionstest: Entwirf eine Prüfung, die einen unbeabsichtigten Fremdzugriff erkennt.
  4. Minimalprinzip: Entwickle eine Alternative zu pauschalen Administratorrechten für Azubis.
  5. Softwarearchitektur: Begründe die notwendige Prüfung am geschützten Backend.


Lernnachweis

  1. Erläutere den Unterschied zwischen Identitätsprüfung und Berechtigung.
  2. Dokumentiere eine Berechtigungsmatrix für fiktive Rollen.
  3. Zeige die lokale Ausführung von Dialog- und Testmodus.
  4. Begründe mindestens sechs Soll-Ist-Entscheidungen.
  5. Übertrage das Prinzip auf eine weitere fiktive Anwendung.




OERs zum Thema


Quellen und Medienrechte

  1. OWASP Authentication Cheat Sheet
  2. OWASP Authorization Cheat Sheet
  3. NIST SP 800-63B-4
  4. MDN 401
  5. MDN 403
  6. Commons: Rollenmodell, CC0
  7. Commons: Passkey-Screenshot, CC BY-SA 4.0
  8. Commons: Rechteausweitung, CC0
  9. Commons: OAuth-Dialog, Lizenz auf der Dateiseite beachten

Die YouTube-Medien von O'Reilly, Erik Wilde und Thapa Technical sind externe Einbindungen und keine frei nachnutzbaren Dateien. Beachte Urheberrecht und Freigabe durch die Lehrkraft. Die Commons-Lizenzen und Namensnennung sind bei Weiterverwendung zu prüfen. Die lokalen Programmtests benötigen keine externen Medien.

Verknüpfte Lernbereiche


aiMOOC-Projekte



Schulfach+




aiMOOCs



aiMOOC Projekte









MOOCwiki · Deutsch

Nach dem Lernen ist vor dem Lernen

Entdecke direkt den nächsten Lernkurs. Weitere Inhalte erscheinen, wenn Du weiter nach unten scrollst.

Zur MOOCwiki-Hauptseite

Mediathek

Inhalte werden geladen ...

Mediathek wird aus dem Wiki geladen ...