Ankündigung

Einklappen
Keine Ankündigung bisher.

Ideensammlung für Genehmigungsworkflow

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ideensammlung für Genehmigungsworkflow

    Hallo an alle und noch ein Frohes Fest!

    So nun aber zum ernst der Lage zurück.
    Ich will mir mein Leben erleichtern und einen Workflow erstellen. Dieser soll folgendes tuen. Eine Person hätte gern Zugriff auf meine Webanwendung, diese läuft im Intranet, die Person braucht also Zugriff auf meine Datenbank. Ok also ein Formular geschrieben und an abgesendet an den Server. Nun schickt dieser mir eine Mail und darin soll ein Link zur Freigabe stehen. Bei Bestätigung werden die Rechte im Server gesetzt. Bei Ablehnung soll eine Webseite geöffnet werden wo hinterlegt werden soll warum.

    Also soweit nicht das Problem, aber wie erstellt man solche Links die nichts aussagen aber trotzdem einmalig sind und vor allem das automatisch vom Server aus.

    Wer kann mir hier Tipps geben bzw. Tutorials oder ähnliches damit ich mich in die Sache einarbeiten kann?

    Danke für eure Hilfe.

  • #2
    Zitat von tutter Beitrag anzeigen
    Hallo an alle und noch ein Frohes Fest!

    Also soweit nicht das Problem, aber wie erstellt man solche Links die nichts aussagen aber trotzdem einmalig sind und vor allem das automatisch vom Server aus.

    Wer kann mir hier Tipps geben bzw. Tutorials oder ähnliches damit ich mich in die Sache einarbeiten kann?

    Danke für eure Hilfe.
    Woran hängt es genau?

    Zufällige werte kannst Du mit mit PHP erstellen:
    zB. ab php7 so:

    http://php.net/manual/de/function.random-bytes.php

    und auch meist mit der Datenbank wenn Du eine nutzt.








    Kommentar


    • #3
      Soll es sich dabei um temporäre oder primäre Rechte handeln? Also zeitlich begrenzt oder willst du die Rechte einem Nutzer auf Dauer geben?

      Du hast also im Grunde nur einen groben Weg beschrieben. Aber was passiert genau, nachdem das Formular ausgefüllt wurde? Und wer soll das Formular überhaupt ausfüllen? Ein Admin oder der Nutzer, der die Rechte brauch? Sendet der Server automatisch eine Mail mit dem Link oder soll das ein Admin je nach Informationen des Formulars entweder authorisieren oder nicht authorisieren (wenn der Nutzer das Formular ausfüllt)? Sind die eingeholten Rechte an einen Acoount gebunden oder wird einfach über den Link für einen einzigen Nutzer/Browser eine Session erstellt mit den Rechten erstellt?

      Mir fallen eigentlich nur 2 sinnvolle Wege ein.

      Weg Nummer 1: Temporäre Session + Rechte
      1. Admin füllt Formular aus (eigentlich nur Name, E-Mailadresse, Adresse bestätigen und zusätzlich die Rechte)
      2. Skript schreibt in die Datenbank einen Random-Token in Spalte 1, eine Rechtetabelle in Spalte 2 und ein Ablaufzeitpunkt in Spalte 3
      3. Skript schreibt dem Nutzer aus dem Formular eine E-Mail mit der URL und dem Token (z.B. example.de/login/?t=abcdef1234567890)
      4. Nutzer klickt auf den Link
      5. Skript unter dem Link sucht nach dem Token. Wenn dieser Existiert und der Ablaufzeitpunkt noch nicht erreicht ist, erzeugt er für den Browser eine Session und schreibt dort die Rechtetabelle und das Ablaufzeitpunkt rein. Dann löscht er die Zeile mit dem Token direkt aus der Datenbank
      6. Bei jeder Navigation/Request wird geprüft, ob der Ablaufzeitpunkt erreicht bzw. überschritten ist und wenn ja, wird die Session gekillt. Ansonsten prüft es, ob der Nutzer Zugriff auf die angeforderte Ressource hat
      7. Wird der Browser geschlossen, wird der Cookie und somit die Session verworfen.

      Weg Nummer 2: Primäre Rechte + Neuen Account
      1. Admin füllt Formular aus (eigentlich auch nur Name, E-Mailadresse, Adresse bestätigen und zusätzlich die Rechte)
      2. Skript legt einen Account mit den Daten an und verpasst ihm die Rechte. Passwort bleibt leer
      3. Skript schreibt in die Datenbank einen Random-Token in Spalte 1, die E-Mailadresse in Spalte 2 und ein Ablaufzeitpunkt in Spalte 3
      4. Skript schreibt dem Nutzer aus dem Formular eine E-Mail mit der URL und dem Token (z.B. example.de/setpw/?t=abcdef1234567890)
      5. Nutzer klickt auf den Link und bekommt ein Formular angezeigt, wo er unter Bestätigung der E-Mailadresse sich ein Passwort setzen kann
      6. Skript setzt das Passwort. Ab jetzt kann sich der Nutzer mit den primären Rechten jederzeit einloggen

      Ich vermute mal, das dir eher der erste Weg vorschwebt. Aber wirklich sicher bin ich mir da noch nicht.

      Kommentar

      Lädt...
      X