<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://staging.moocwiki.org/index.php?action=history&amp;feed=atom&amp;title=Anwendungsentwicklung_und_Softwarequalit%C3%A4t_%E2%80%93_Authentifizierung_und_Autorisierung_unterscheiden</id>
	<title>Anwendungsentwicklung und Softwarequalität – Authentifizierung und Autorisierung unterscheiden - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://staging.moocwiki.org/index.php?action=history&amp;feed=atom&amp;title=Anwendungsentwicklung_und_Softwarequalit%C3%A4t_%E2%80%93_Authentifizierung_und_Autorisierung_unterscheiden"/>
	<link rel="alternate" type="text/html" href="https://staging.moocwiki.org/index.php?title=Anwendungsentwicklung_und_Softwarequalit%C3%A4t_%E2%80%93_Authentifizierung_und_Autorisierung_unterscheiden&amp;action=history"/>
	<updated>2026-10-10T07:49:58Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in MOOCsWiki Staging</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://staging.moocwiki.org/index.php?title=Anwendungsentwicklung_und_Softwarequalit%C3%A4t_%E2%80%93_Authentifizierung_und_Autorisierung_unterscheiden&amp;diff=63490&amp;oldid=prev</id>
		<title>Glanz: aiMOOC über GPT aiMOOC Action erstellt</title>
		<link rel="alternate" type="text/html" href="https://staging.moocwiki.org/index.php?title=Anwendungsentwicklung_und_Softwarequalit%C3%A4t_%E2%80%93_Authentifizierung_und_Autorisierung_unterscheiden&amp;diff=63490&amp;oldid=prev"/>
		<updated>2026-10-09T19:32:41Z</updated>

		<summary type="html">&lt;p&gt;aiMOOC über GPT aiMOOC Action erstellt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{T}}&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Einleitung =&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Anwendungsentwicklung und Softwarequalität – Authentifizierung und Autorisierung unterscheiden&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ausbildung Anwendungsentwicklung · 90 Minuten · ausschließlich fiktive Daten&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
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.&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Ausbildungsfall: Lernwerk ==&lt;br /&gt;
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.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Rolle !! Eigenes Ticket lesen !! Fremdes Ticket lesen !! Freigeben&lt;br /&gt;
|-&lt;br /&gt;
| Azubi || Ja || Nein || Nein&lt;br /&gt;
|-&lt;br /&gt;
| Ausbilderin || Ja || Ja || Ja&lt;br /&gt;
|}&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Lerneinheit 1: Wer bist Du? =&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Authentifizierung&amp;#039;&amp;#039;&amp;#039; ü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.&lt;br /&gt;
[[Datei:Two-factor authentication on Wikimedia as of 2025 with WebAuthn screenshot.webp|500px|rahmenlos|center]]&lt;br /&gt;
&amp;#039;&amp;#039;Veranschaulichung von Passkeys bei Wikimedia.&amp;#039;&amp;#039;&lt;br /&gt;
{{#ev:youtube|https://www.youtube.com/watch?v=y5hS5K3M43U|500|center}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Basisfrage:&amp;#039;&amp;#039;&amp;#039; Lea hat sich angemeldet. Darf sie deshalb Noahs Ticket lesen? Begründe Deine Antwort.&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Lerneinheit 2: Was darfst Du? =&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Autorisierung&amp;#039;&amp;#039;&amp;#039; überprüft Aktion, Ressource, Rolle und gegebenenfalls die Zugehörigkeit eines Datensatzes. [[Rollenbasierte Zugriffskontrolle|RBAC]] bündelt Berechtigungen in Rollen. &amp;#039;&amp;#039;&amp;#039;Least Privilege&amp;#039;&amp;#039;&amp;#039; beschränkt Rechte auf das Notwendige. &amp;#039;&amp;#039;&amp;#039;Deny by Default&amp;#039;&amp;#039;&amp;#039; verweigert nicht ausdrücklich erlaubte Aktionen.&lt;br /&gt;
[[Datei:Role-based access control.svg|500px|rahmenlos|center]]&lt;br /&gt;
{{#ev:youtube|https://www.youtube.com/watch?v=4Uya_I_Oxjk|500|center}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Identität !! Aktion !! Ressource !! Simulation !! Begründung&lt;br /&gt;
|-&lt;br /&gt;
| Lea || lesen || T-LEA || 200 || Eigenes Ticket&lt;br /&gt;
|-&lt;br /&gt;
| Lea || lesen || T-NOA || 403 || Fremder Datensatz&lt;br /&gt;
|-&lt;br /&gt;
| Lea || freigeben || T-LEA || 403 || Freigaberecht fehlt&lt;br /&gt;
|-&lt;br /&gt;
| Mira || freigeben || T-NOA || 200 || Rolle erlaubt Aktion&lt;br /&gt;
|-&lt;br /&gt;
| Noah mit unpassendem Testcode || lesen || T-NOA || 401 || Identität nicht bestätigt&lt;br /&gt;
|}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Statushinweis:&amp;#039;&amp;#039;&amp;#039; 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.&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Lerneinheit 3: Lokales Python-Labor =&lt;br /&gt;
Speichere folgenden Python-3-Code als &amp;#039;&amp;#039;&amp;#039;auth_labor.py&amp;#039;&amp;#039;&amp;#039;. 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.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Offline-Lernmodell mit fiktiven Testdaten&lt;br /&gt;
import hmac&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
personen = {&lt;br /&gt;
    &amp;#039;lea&amp;#039;: (&amp;#039;1111&amp;#039;, &amp;#039;azubi&amp;#039;),&lt;br /&gt;
    &amp;#039;noah&amp;#039;: (&amp;#039;2222&amp;#039;, &amp;#039;azubi&amp;#039;),&lt;br /&gt;
    &amp;#039;mira&amp;#039;: (&amp;#039;3333&amp;#039;, &amp;#039;ausbilderin&amp;#039;),&lt;br /&gt;
}&lt;br /&gt;
tickets = {&amp;#039;T-LEA&amp;#039;: &amp;#039;lea&amp;#039;, &amp;#039;T-NOA&amp;#039;: &amp;#039;noah&amp;#039;}&lt;br /&gt;
rechte = {&amp;#039;azubi&amp;#039;: {&amp;#039;lesen&amp;#039;},&lt;br /&gt;
          &amp;#039;ausbilderin&amp;#039;: {&amp;#039;lesen&amp;#039;, &amp;#039;freigeben&amp;#039;}}&lt;br /&gt;
&lt;br /&gt;
def authentifizieren(name, code):&lt;br /&gt;
    daten = personen.get(name)&lt;br /&gt;
    if daten and hmac.compare_digest(daten[0], code):&lt;br /&gt;
        return name&lt;br /&gt;
    return None&lt;br /&gt;
&lt;br /&gt;
def autorisieren(identitaet, aktion, ticket):&lt;br /&gt;
    if identitaet not in personen:&lt;br /&gt;
        return 401&lt;br /&gt;
    if ticket not in tickets:&lt;br /&gt;
        return 404&lt;br /&gt;
    rolle = personen[identitaet][1]&lt;br /&gt;
    if aktion not in rechte.get(rolle, set()):&lt;br /&gt;
        return 403&lt;br /&gt;
    if rolle == &amp;#039;azubi&amp;#039; and tickets[ticket] != identitaet:&lt;br /&gt;
        return 403&lt;br /&gt;
    return 200&lt;br /&gt;
&lt;br /&gt;
def pruefen(name, code, aktion, ticket):&lt;br /&gt;
    return autorisieren(authentifizieren(name, code), aktion, ticket)&lt;br /&gt;
&lt;br /&gt;
faelle = [&lt;br /&gt;
    (&amp;#039;lea&amp;#039;, &amp;#039;1111&amp;#039;, &amp;#039;lesen&amp;#039;, &amp;#039;T-LEA&amp;#039;, 200),&lt;br /&gt;
    (&amp;#039;lea&amp;#039;, &amp;#039;1111&amp;#039;, &amp;#039;lesen&amp;#039;, &amp;#039;T-NOA&amp;#039;, 403),&lt;br /&gt;
    (&amp;#039;lea&amp;#039;, &amp;#039;1111&amp;#039;, &amp;#039;freigeben&amp;#039;, &amp;#039;T-LEA&amp;#039;, 403),&lt;br /&gt;
    (&amp;#039;mira&amp;#039;, &amp;#039;3333&amp;#039;, &amp;#039;freigeben&amp;#039;, &amp;#039;T-NOA&amp;#039;, 200),&lt;br /&gt;
    (&amp;#039;noah&amp;#039;, &amp;#039;2222&amp;#039;, &amp;#039;lesen&amp;#039;, &amp;#039;T-NOA&amp;#039;, 200),&lt;br /&gt;
    (&amp;#039;noah&amp;#039;, &amp;#039;unpassend&amp;#039;, &amp;#039;lesen&amp;#039;, &amp;#039;T-NOA&amp;#039;, 401),&lt;br /&gt;
    (&amp;#039;mira&amp;#039;, &amp;#039;3333&amp;#039;, &amp;#039;lesen&amp;#039;, &amp;#039;T-XXX&amp;#039;, 404),&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
def tests():&lt;br /&gt;
    for name, code, aktion, ticket, soll in faelle:&lt;br /&gt;
        ist = pruefen(name, code, aktion, ticket)&lt;br /&gt;
        print(name, aktion, ticket, &amp;#039;Soll:&amp;#039;, soll, &amp;#039;Ist:&amp;#039;, ist)&lt;br /&gt;
        assert ist == soll&lt;br /&gt;
    print(&amp;#039;Alle sieben Sollwerte bestätigt.&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
def dialog():&lt;br /&gt;
    print(&amp;#039;Lokale Fantasiedaten: lea/1111, noah/2222, mira/3333&amp;#039;)&lt;br /&gt;
    while True:&lt;br /&gt;
        name = input(&amp;#039;Name (q beendet): &amp;#039;).strip().lower()&lt;br /&gt;
        if name == &amp;#039;q&amp;#039;:&lt;br /&gt;
            break&lt;br /&gt;
        code = input(&amp;#039;Fiktiver Testcode: &amp;#039;).strip()&lt;br /&gt;
        aktion = input(&amp;#039;Aktion lesen/freigeben: &amp;#039;).strip().lower()&lt;br /&gt;
        ticket = input(&amp;#039;Ticket T-LEA/T-NOA: &amp;#039;).strip().upper()&lt;br /&gt;
        print(&amp;#039;Entscheidung:&amp;#039;, pruefen(name, code, aktion, ticket))&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;#039;__main__&amp;#039;:&lt;br /&gt;
    if len(sys.argv) == 2 and sys.argv[1] == &amp;#039;--test&amp;#039;:&lt;br /&gt;
        tests()&lt;br /&gt;
    else:&lt;br /&gt;
        dialog()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Interaktiver Start:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;python3 -I auth_labor.py&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Automatischer Testlauf:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;python3 -I auth_labor.py --test&amp;lt;/code&amp;gt;&lt;br /&gt;
Auf Windows gegebenenfalls &amp;lt;code&amp;gt;py -I&amp;lt;/code&amp;gt; statt &amp;lt;code&amp;gt;python3 -I&amp;lt;/code&amp;gt; verwenden. Das Programm nutzt nur Python-Standardmodule und öffnet keine Netzwerkverbindungen. Eingaben dürfen nur die angegebenen Fantasiedaten enthalten.&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Gestufte Hilfen ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Hilfe 1:&amp;#039;&amp;#039;&amp;#039; Unterscheide die Funktionen authentifizieren und autorisieren.&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;Die erste bestätigt den Testcode; die zweite prüft konkrete Aktionen und Tickets.&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Hilfe 2:&amp;#039;&amp;#039;&amp;#039; Woher kommt das Leserecht?&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;Aus dem Dictionary rechte, abhängig von der Rolle.&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Hilfe 3:&amp;#039;&amp;#039;&amp;#039; Warum wird T-NOA für Lea verweigert?&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;Der Eigentümer von T-NOA ist noah, nicht lea. Deshalb ergibt die zusätzliche Zugehörigkeitsprüfung 403.&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Lerneinheit 4: Qualität durch Prüfungen =&lt;br /&gt;
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.&lt;br /&gt;
[[Datei:Privilege Escalation Diagram.svg|350px|rahmenlos|center]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Transfer:&amp;#039;&amp;#039;&amp;#039; Bei [[OAuth]] 2.0 geht es um delegierte Autorisierung; [[OpenID Connect]] ergänzt eine Identitätsschicht.&lt;br /&gt;
[[Datei:OAuth authorization interface.png|500px|rahmenlos|center]]&lt;br /&gt;
{{#ev:youtube|https://www.youtube.com/watch?v=bbyC3oKYSmw|500|center}}&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Interaktive Aufgaben =&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Quiz: Teste Dein Wissen ==&lt;br /&gt;
{{MC}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Was prüft die Authentifizierung?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Die behauptete Identität)&lt;br /&gt;
(!Die Ticketfarbe)&lt;br /&gt;
(!Den Ticketpreis)&lt;br /&gt;
(!Die Freigabedauer)&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{MC}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Was prüft die Autorisierung?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Die konkrete Berechtigung)&lt;br /&gt;
(!Die Schriftgröße)&lt;br /&gt;
(!Die Kennwortlänge allein)&lt;br /&gt;
(!Den Gerätenamen allein)&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{MC}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Was folgt aus einem erfolgreichen Login?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Eine bestätigte Identität)&lt;br /&gt;
(!Uneingeschränkte Schreibrechte)&lt;br /&gt;
(!Freigabe aller Tickets)&lt;br /&gt;
(!Zugriff auf alle Datensätze)&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{MC}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Wer darf im Lernmodell freigeben?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Die Ausbilderin)&lt;br /&gt;
(!Jeder Azubi)&lt;br /&gt;
(!Jeder Gast)&lt;br /&gt;
(!Jede unbekannte Person)&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{MC}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Was schützt die Eigentümerprüfung?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Fremde Tickets)&lt;br /&gt;
(!Die Bildschirmfarbe)&lt;br /&gt;
(!Den Dateinamen)&lt;br /&gt;
(!Die Uhrzeit)&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{MC}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Was bedeutet Least Privilege?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Nur notwendige Rechte vergeben)&lt;br /&gt;
(!Alle Rechte vergeben)&lt;br /&gt;
(!Keine Rollen verwenden)&lt;br /&gt;
(!Jede Aktion erlauben)&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{MC}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Was liefert der simulierte Zugriff mit unpassendem Testcode?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(401)&lt;br /&gt;
(!200)&lt;br /&gt;
(!201)&lt;br /&gt;
(!403)&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{MC}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Was liefert die Simulation bei verbotener Freigabe?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(403)&lt;br /&gt;
(!200)&lt;br /&gt;
(!201)&lt;br /&gt;
(!301)&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{MC}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Was bezeichnet RBAC?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Rollenbasierte Zugriffskontrolle)&lt;br /&gt;
(!Automatische Bildkompression)&lt;br /&gt;
(!Freigabe ohne Prüfung)&lt;br /&gt;
(!Datensicherung allein)&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{MC}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Wo wird eine geschützte Aktion zuverlässig geprüft?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Im vertrauenswürdigen Backend)&lt;br /&gt;
(!Nur durch versteckte Schaltflächen)&lt;br /&gt;
(!Nur durch eine Seitenfarbe)&lt;br /&gt;
(!Nur durch einen Hinweistext)&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Begründetes Feedback ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Lösungen und Gründe anzeigen&amp;#039;&amp;#039;&amp;#039;&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;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.&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Memory ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;memo-quiz&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Identität || Behauptete Person&lt;br /&gt;
|-&lt;br /&gt;
| Authentifizierung || Nachweisprüfung&lt;br /&gt;
|-&lt;br /&gt;
| Autorisierung || Berechtigungsentscheidung&lt;br /&gt;
|-&lt;br /&gt;
| Rolle || Bündel zugewiesener Rechte&lt;br /&gt;
|-&lt;br /&gt;
| Ressource || Geschütztes Ticket&lt;br /&gt;
|-&lt;br /&gt;
| Minimalprinzip || Begrenzte Berechtigung&lt;br /&gt;
|}&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Drag and Drop ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;lueckentext-quiz&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ordne die richtigen Begriffe zu. !! Thema&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Authentifizierung&amp;#039;&amp;#039;&amp;#039; || Identitätsnachweis&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Autorisierung&amp;#039;&amp;#039;&amp;#039; || Aktionsrecht&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Rollenmodell&amp;#039;&amp;#039;&amp;#039; || Rechtebündel&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Eigentümerprüfung&amp;#039;&amp;#039;&amp;#039; || Datensatzzugehörigkeit&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Standardverweigerung&amp;#039;&amp;#039;&amp;#039; || Fehlende Freigabe&lt;br /&gt;
|}&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Kreuzworträtsel ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;kreuzwort-quiz&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Authentifizierung || Wie heißt die Prüfung eines behaupteten Identitätsnachweises?&lt;br /&gt;
|-&lt;br /&gt;
| Autorisierung || Wie heißt die Entscheidung über einen konkreten Zugriff?&lt;br /&gt;
|-&lt;br /&gt;
| Rollenmodell || Welches Modell bündelt Berechtigungen?&lt;br /&gt;
|-&lt;br /&gt;
| Ticket || Welche Ressource nutzen Lea und Noah?&lt;br /&gt;
|-&lt;br /&gt;
| Freigabe || Welche Aktion darf nur Mira ausführen?&lt;br /&gt;
|-&lt;br /&gt;
| Minimalprinzip || Welches Prinzip begrenzt Rechte auf das Nötige?&lt;br /&gt;
|}&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{BR}}&lt;br /&gt;
== LearningApps ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Freiwilliger externer Dienst:&amp;#039;&amp;#039;&amp;#039; Nur nach ausdrücklicher Freigabe öffnen und keine echten personenbezogenen Informationen eingeben.&lt;br /&gt;
&amp;lt;iframe&amp;gt; https://learningapps.org/index.php?s=Authentifizierung+und+Autorisierung &amp;lt;/iframe&amp;gt;&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Lückentext ==&lt;br /&gt;
&amp;lt;quiz display=simple&amp;gt;&lt;br /&gt;
{&amp;#039;&amp;#039;&amp;#039;Vervollständige den Text.&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;br /&gt;
|type=&amp;quot;{}&amp;quot;}&lt;br /&gt;
Die { Authentifizierung } prüft einen behaupteten Identitätsnachweis.&lt;br /&gt;
Eine konkrete Zugriffsentscheidung heißt { Autorisierung }.&lt;br /&gt;
Im Rollenmodell werden Rechte durch { Rollen } gebündelt.&lt;br /&gt;
Lea darf ihr eigenes { Ticket } lesen.&lt;br /&gt;
Das Minimalprinzip verlangt die Beschränkung auf { notwendige } Rechte.&lt;br /&gt;
Unbekannte Aktionen werden standardmäßig { verweigert }.&lt;br /&gt;
Die Testsimulation liefert bei fehlendem Identitätsnachweis { 401 }.&lt;br /&gt;
Bei verbotener Aktion liefert sie { 403 }.&lt;br /&gt;
Bei erlaubter Aktion liefert sie { 200 }.&lt;br /&gt;
Die zusätzliche Prüfung berücksichtigt den { Eigentümer } eines Tickets.&lt;br /&gt;
&amp;lt;/quiz&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Praxisaufgaben mit gestuftem Feedback =&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Basis:&amp;#039;&amp;#039;&amp;#039; Kennzeichne Login-Nachweis und Ticketfreigabe als Authentifizierung beziehungsweise Autorisierung. &amp;#039;&amp;#039;&amp;#039;Feedback:&amp;#039;&amp;#039;&amp;#039; Der erste Vorgang bestätigt Identität; der zweite prüft Handlungsrechte.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Anwendung:&amp;#039;&amp;#039;&amp;#039; Entferne in einer separaten lokalen Kopie testweise die Eigentümerprüfung. Welche der sieben Sollwerte ändern sich? &amp;#039;&amp;#039;&amp;#039;Feedback:&amp;#039;&amp;#039;&amp;#039; Der Zugriff auf ein fremdes Ticket wird dann fälschlich erlaubt; der betreffende Negativtest deckt das auf.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Transfer:&amp;#039;&amp;#039;&amp;#039; Ergänze eine fiktive Prüferrolle, die beide Tickets lesen, jedoch keines freigeben darf. &amp;#039;&amp;#039;&amp;#039;Feedback:&amp;#039;&amp;#039;&amp;#039; Die Umsetzung ist passend, wenn Lesen erlaubt und Freigeben verweigert wird.&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Offene Aufgaben =&lt;br /&gt;
{{BR}}&lt;br /&gt;
=== Leicht ===&lt;br /&gt;
# [[Authentifizierung]]: Gestalte eine Bildkarte zu einem fiktiven Login.&lt;br /&gt;
# [[Autorisierung]]: Zeichne eine erlaubte und eine verweigerte Ticketaktion.&lt;br /&gt;
# [[Rollenmodell]]: Erstelle eine kleine eigene Berechtigungsmatrix.&lt;br /&gt;
# [[Softwaretest]]: Dokumentiere drei lokale Testfälle mit Sollwerten.&lt;br /&gt;
{{BR}}&lt;br /&gt;
=== Standard ===&lt;br /&gt;
# [[Python]]: Ergänze eine weitere fiktive Person im Lernmodell.&lt;br /&gt;
# [[Testfall]]: Prüfe unbekannte Aktionen und unbekannte Tickets.&lt;br /&gt;
# [[Berechtigungskonzept]]: Entwirf die Rechte einer fiktiven Bibliotheksanwendung.&lt;br /&gt;
# [[Softwarequalität]]: Zeichne die Abfolge aus Identitäts- und Rechteprüfung.&lt;br /&gt;
{{BR}}&lt;br /&gt;
=== Schwer ===&lt;br /&gt;
# [[Sicherheitsanalyse]]: Vergleiche das Lernmodell mit und ohne Eigentümerprüfung.&lt;br /&gt;
# [[Attribute-Based Access Control]]: Ergänze eine zusätzliche fiktive Zuständigkeitsregel.&lt;br /&gt;
# [[Regressionstest]]: Entwickle weitere positive und negative Testfälle.&lt;br /&gt;
# [[Softwarearchitektur]]: Entwirf getrennte Komponenten für Identität und Berechtigung.&lt;br /&gt;
{{:Offene Aufgabe - MOOC erstellen}}&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Lernkontrolle =&lt;br /&gt;
# [[Zugriffskontrolle]]: Begründe, warum ein erfolgreicher Login noch kein Leserecht für fremde Tickets begründet.&lt;br /&gt;
# [[Rollenmodell]]: Zeige an einem Beispiel, warum die Rolle allein nicht ausreichen kann.&lt;br /&gt;
# [[Regressionstest]]: Entwirf eine Prüfung, die einen unbeabsichtigten Fremdzugriff erkennt.&lt;br /&gt;
# [[Minimalprinzip]]: Entwickle eine Alternative zu pauschalen Administratorrechten für Azubis.&lt;br /&gt;
# [[Softwarearchitektur]]: Begründe die notwendige Prüfung am geschützten Backend.&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Lernnachweis =&lt;br /&gt;
# Erläutere den Unterschied zwischen Identitätsprüfung und Berechtigung.&lt;br /&gt;
# Dokumentiere eine Berechtigungsmatrix für fiktive Rollen.&lt;br /&gt;
# Zeige die lokale Ausführung von Dialog- und Testmodus.&lt;br /&gt;
# Begründe mindestens sechs Soll-Ist-Entscheidungen.&lt;br /&gt;
# Übertrage das Prinzip auf eine weitere fiktive Anwendung.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{BR}}&lt;br /&gt;
= OERs zum Thema =&lt;br /&gt;
&amp;lt;iframe&amp;gt; https://de.m.wikipedia.org/wiki/Authentifizierung &amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;iframe&amp;gt; https://de.m.wikipedia.org/wiki/Autorisierung &amp;lt;/iframe&amp;gt;&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Quellen und Medienrechte ==&lt;br /&gt;
# [https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html OWASP Authentication Cheat Sheet]&lt;br /&gt;
# [https://cheatsheetseries.owasp.org/cheatsheets/Authorization_Cheat_Sheet.html OWASP Authorization Cheat Sheet]&lt;br /&gt;
# [https://csrc.nist.gov/pubs/sp/800/63/b/4/final NIST SP 800-63B-4]&lt;br /&gt;
# [https://developer.mozilla.org/de/docs/Web/HTTP/Reference/Status/401 MDN 401]&lt;br /&gt;
# [https://developer.mozilla.org/de/docs/Web/HTTP/Reference/Status/403 MDN 403]&lt;br /&gt;
# [https://commons.wikimedia.org/wiki/File:Role-based_access_control.svg Commons: Rollenmodell, CC0]&lt;br /&gt;
# [https://commons.wikimedia.org/wiki/File:Two-factor_authentication_on_Wikimedia_as_of_2025_with_WebAuthn_screenshot.webp Commons: Passkey-Screenshot, CC BY-SA 4.0]&lt;br /&gt;
# [https://commons.wikimedia.org/wiki/File:Privilege_Escalation_Diagram.svg Commons: Rechteausweitung, CC0]&lt;br /&gt;
# [https://commons.wikimedia.org/wiki/File:OAuth_authorization_interface.png Commons: OAuth-Dialog, Lizenz auf der Dateiseite beachten]&lt;br /&gt;
Die YouTube-Medien von O&amp;#039;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.&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Verknüpfte Lernbereiche =&lt;br /&gt;
{| align=center&lt;br /&gt;
{{:D-Tab}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[[Anwendungsentwicklung]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# [[Authentifizierung]]&lt;br /&gt;
# [[Autorisierung]]&lt;br /&gt;
# [[RBAC]]&lt;br /&gt;
# [[Python]]&lt;br /&gt;
# [[Softwaretest]]&lt;br /&gt;
# [[Softwarequalität]]&lt;br /&gt;
# [[IT-Sicherheit]]&lt;br /&gt;
|}&lt;br /&gt;
[[Kategorie:Informatik]]&lt;br /&gt;
[[Kategorie:Anwendungsentwicklung]]&lt;br /&gt;
[[Kategorie:Softwarequalität]]&lt;br /&gt;
[[Kategorie:IT-Sicherheit]]&lt;br /&gt;
[[Kategorie:Berufsausbildung]]&lt;br /&gt;
[[Kategorie:Python]]&lt;br /&gt;
{{BR}}&lt;br /&gt;
= aiMOOC-Projekte =&lt;br /&gt;
[[Kategorie:AI_MOOC]] [[Kategorie:GPT aiMOOC]]&lt;br /&gt;
{{MT}}&lt;/div&gt;</summary>
		<author><name>Glanz</name></author>
	</entry>
</feed>