© saicle/Shutterstock.com
PHP Magazin
Authentifizierung und Autorisierung mit Hilfe von Tokens

Sicher ist sicher

Authentifizierung und Autorisierung innerhalb einer Webanwendung sind kein Problem, über Anwendungsgrenzen hinweg oder gegenüber Web Services aber schon. OAuth und OpenID Connect lösen dieses Problem.

Carsten Eilers


Die Authentifizierung ist der Nachweis der Identität des Benutzers gegenüber der Anwendung. Nach der Authentifizierung weiß die Anwendung, wer der Benutzer ist, bzw. dass er der ist, der er behauptet zu sein. Zu wissen, wer der Benutzer ist, ist bei vielen Funktionen nur der erste Schritt vor der Ausführung. Oft muss die Anwendung auch prüfen, ob der Benutzer überhaupt berechtigt ist, eine bestimmte Funktion aufzurufen, auf bestimmte Daten zuzugreifen – das ist die Autorisierung. Jeder Benutzer hat bestimmte Berechtigungen, und bei jedem Zugriff auf eine geschützte Ressource wird geprüft, ob der Benutzer die für diesen Zugriff nötigen Rechte besitzt.

Benutzerprüfung über Anwendungsgrenzen hinweg

Solange sich die Benutzerprüfung innerhalb einer Anwendung abspielt, ist alles recht einfach zu lösen: Die Anwendung kann ihre eigenen Benutzer problemlos selbst verwalten und sowohl festlegen als auch durchsetzen, welcher Benutzer welche Funktionen nutzen und auf welche Daten er zugreifen darf. Anders sieht es aus, wenn eine Anwendung im Namen des von ihr authentifizierten Benutzers auf Funktionen eines anderen Diensts, z. B. einer anderen Webanwendung oder einen Web Service, zugreifen soll. Solange dafür auf Dienstseite keine Authentifizierung nötig ist, ist das kein Problem. Allerdings ist das nur sehr selten der Fall, meist sind viele Funktionen und Daten nur bestimmten Benutzern zugänglich. Und sobald die Benutzer sich einloggen müssen, um den Dienst zu nutzen, wird es schwierig. Die zugreifende Anwendung benötigt dafür den Benutzernamen und das Passwort des betroffenen Benutzers für den Dienst. Und das bringt einige Probleme mit sich:

Passwortweitergabe an Dritte erwünscht (durch den Dritten): Der Benutzer muss seine Zugangsdaten für den Dienst auf einer fremden Website eingeben. Was man bekanntlich keinesfalls tun sollte, um nicht Opfer eines Phishing-Angriffs zu werden. Wenn man nun anfängt, den Benutzern zu erklären, dass sie die Daten auf dieser bestimmten fremden Seite eingeben dürfen, erleichtert das den Phishern die Arbeit enorm. Die Benutzer haben dann ja schon gelernt, dass sie die Daten manchmal auf einer fremden Seite eingeben dürfen. Dann ist es kein größeres Problem, sie mittels Social Engineering dazu zu bewegen, sie auch auf einer weiteren Seite einzugeben – der Phishing-Seite.Passwortweitergabe ist verboten (durch den Anbieter): Der Benutzer muss in vielen Fällen gegen die Nutzungsbedingungen der genutzten Webanwendung bzw. des Web Service ver...

PHP Magazin
Authentifizierung und Autorisierung mit Hilfe von Tokens

Sicher ist sicher

Authentifizierung und Autorisierung innerhalb einer Webanwendung sind kein Problem, über Anwendungsgrenzen hinweg oder gegenüber Web Services aber schon. OAuth und OpenID Connect lösen dieses Problem.

Carsten Eilers


Die Authentifizierung ist der Nachweis der Identität des Benutzers gegenüber der Anwendung. Nach der Authentifizierung weiß die Anwendung, wer der Benutzer ist, bzw. dass er der ist, der er behauptet zu sein. Zu wissen, wer der Benutzer ist, ist bei vielen Funktionen nur der erste Schritt vor der Ausführung. Oft muss die Anwendung auch prüfen, ob der Benutzer überhaupt berechtigt ist, eine bestimmte Funktion aufzurufen, auf bestimmte Daten zuzugreifen – das ist die Autorisierung. Jeder Benutzer hat bestimmte Berechtigungen, und bei jedem Zugriff auf eine geschützte Ressource wird geprüft, ob der Benutzer die für diesen Zugriff nötigen Rechte besitzt.

Benutzerprüfung über Anwendungsgrenzen hinweg

Solange sich die Benutzerprüfung innerhalb einer Anwendung abspielt, ist alles recht einfach zu lösen: Die Anwendung kann ihre eigenen Benutzer problemlos selbst verwalten und sowohl festlegen als auch durchsetzen, welcher Benutzer welche Funktionen nutzen und auf welche Daten er zugreifen darf. Anders sieht es aus, wenn eine Anwendung im Namen des von ihr authentifizierten Benutzers auf Funktionen eines anderen Diensts, z. B. einer anderen Webanwendung oder einen Web Service, zugreifen soll. Solange dafür auf Dienstseite keine Authentifizierung nötig ist, ist das kein Problem. Allerdings ist das nur sehr selten der Fall, meist sind viele Funktionen und Daten nur bestimmten Benutzern zugänglich. Und sobald die Benutzer sich einloggen müssen, um den Dienst zu nutzen, wird es schwierig. Die zugreifende Anwendung benötigt dafür den Benutzernamen und das Passwort des betroffenen Benutzers für den Dienst. Und das bringt einige Probleme mit sich:

Passwortweitergabe an Dritte erwünscht (durch den Dritten): Der Benutzer muss seine Zugangsdaten für den Dienst auf einer fremden Website eingeben. Was man bekanntlich keinesfalls tun sollte, um nicht Opfer eines Phishing-Angriffs zu werden. Wenn man nun anfängt, den Benutzern zu erklären, dass sie die Daten auf dieser bestimmten fremden Seite eingeben dürfen, erleichtert das den Phishern die Arbeit enorm. Die Benutzer haben dann ja schon gelernt, dass sie die Daten manchmal auf einer fremden Seite eingeben dürfen. Dann ist es kein größeres Problem, sie mittels Social Engineering dazu zu bewegen, sie auch auf einer weiteren Seite einzugeben – der Phishing-Seite.Passwortweitergabe ist verboten (durch den Anbieter): Der Benutzer muss in vielen Fällen gegen die Nutzungsbedingungen der genutzten Webanwendung bzw. des Web Service ver...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang