Zugriffskontrolle (SSO,JWT,SAML,XACML)

From
Revision as of 11:25, 16 September 2018 by Stepo (talk | contribs)
Jump to navigation Jump to search

Einleitung

Zugriffskontrolle ( engl. access control ) soll die Authentizität (Wer ist das?) und Autorisierung (Darf der das?) von Nutzern bei Zugriff auf Ressourcen sicher stellen.

Single Sign On (SSO)

Durch die Proliferation von gemeinen Haushaltsgeräten mit integriertem Computer (umg. IoT-Geräte) ist die herkömmliche Zugriffskontrolle per Login- und Passwortabfrage unpraktisch. Das Ziel von Single Sign On soll dieses Problem lösen, indem Identitäten zentral verwaltet werden und diese genutzt werden kann um sich überall an- und abzumelden.

SAML/XACML

Json Web Token (JWT)

Minimum Working Example

In einem minimum working example soll das Zusammenspiel der im Artikel besprochenen Elemente vergegenwärtigt werden. Die Architektur basiert auf der vorgestellten SAML-XACML Architektur, wobei nur der Policy Decicision Point, die Policy Enforcement Points und der Identity Provider implementiert werden. Zusätzlich wurden der SAML Prozess durch einen JWT-basierten Tokenaustausch ersetzt. Der Messageaustausch geschieht durch HTTP REST.

Setup

1. Code laden von github

2. Requirements laut Readme.md installieren

Ablauf

Access control example sequence.png

== JWT holen

POST gegen den Registrierungsendpunkt oder Loginendpunkt des IDP:

POST /registration HTTP/1.1
Host: 127.0.0.1:3000
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache
username=stepo&password=stepo

Antwort:

HTTP/1.1 200
status: 200
content-type: application/json
content-length: 23
server: Werkzeug/0.14.1 Python/3.6.5
date: Sun, 16 Sep 2018 11:23:16 GMT
{"message": "success"}

== JWT holen

POST gegen den Registrierungsendpunkt oder Loginendpunkt des IDP: