3. Authenticatieschema in Brocade en de desktop

Auteur Marc Jeurissen
Aanmaak 23 jan 2007
Oud BVV nr 2129

3.1. Abstract

Dit document beschrijft de (technische) procedure die gevolgd wordt bij het authenticeren in Brocade en in een service in een desktop.

3.2. Brocade authenticatieschema

Opstart van Brocade gebeurt via /website/application/brocade.phtml die doorlinkt naar /website/application/login.phtml.

Bestaat cookie 'r4_system_name' . '_authentication'?

  • Ja:

    • include /website/application/msession.phtml
    • $authid = inhoud cookie
    • start %Entry^usewlog (/universe/authentication/usewlog.m) met PDref="staff^$UDuserid^$pw^$mail^$sn^$gn^$REMOTE_ADDR^$UDworkstation^brocade^^^^^$authid" en waarbij $UDuserid, $pw, $mail, $sn, $g =""
    • start Authentb^usewlog met ZDu=""
      • slaagt m4\_getAuthenticationId erin een goede login-id op te halen?
        • Neen: user =""
        • Ja: schrijf gevonden user op positie 1 van PDref
      • user = “”
        • Ja: Login-scherm wordt getoond
        • Neen: start EntryST^usewlog
          • M-sessie wordt gecreëerd
          • sessie wordt geauthenticeerd met user
          • sessienummer komt terug naar brocade.phtml
          • Inlog ok, Brocade-menu wordt getoond
  • Neen:

    • inlogscherm wordt getoond
    • submit van inlogscherm
      • js functie submitlogin() in /website/application/login.js = berekening sentinel en md5
      • terug naar brocade.phtml
    • in brocade.phtml: include /website/application/msession.phtml
    • brocadeLDAP in /website/application/msession.phtml wordt uitgevoerd
      • ingevoerde gegevens worden afgecheckt tegenover LDAP-server en resultaat komt in $matchyes
      • $matchyes = 1
        • Ja:
          • $authid wordt berekend op basis van de tijd
          • start %Entry^usewlog (/universe/authentication/usewlog.m) met PDref="staff^$UDuserid^$pw^$mail^$sn^$gn^$REMOTE_ADDR^$UDworkstation^brocade^^^^^$authid" en waarbij $UDuserid, $pw, $mail, $sn, $gn ingevuld zijn door brocadeLDAP
          • start Authentb^usewlog met ZDu'="" -> m4_setAuthenticationId
          • start EntryST^usewlog
            • M-sessie wordt gecreëerd
            • sessie wordt geauthenticeerd met user
            • sessienummer komt terug naar brocade.phtml
            • Inlog ok, Brocade-menu wordt getoond
        • Neen: Login-scherm wordt opnieuw getoond

3.3. Desktop authenticatieschema

Notitie

De hierna volgende variabelen die beginnen met $, zijn PHP-variabelen.

Een service wordt opgestart vanuit /desktop/install/index.phtml.

  • Bestaat cookie r4_system_name' . '_' . $desktop . '_auth'?

    • Ja: haal $authenticate (inlogtijd) en $login eruit
    • Neen: zet $authenticate = '' en $login = ''
  • Start %Url^dmesserv (/desktop/install/dmesserv.m) met $authenticate (CDtime), $login (CDlogin) en eventueel $sessionauth (CDauth).

    • $sessionauth is afkomstig van mogelijk meegegeven &sessionauth=login parameter via m4\_serviceUrl. Negeert alle login-software.
    • Heeft werkstation van de sessie toegang tot de service?
      • Neen: doauth ($authentication) = 9
      • Ja: Volgende stappen gaan ervan uit dat $sessionauth = ''
        • vanuit meta-info service en desktop en eventueel tijdsinterval ex cookie wordt bepaald of loginscherm vereist is
          • Ja: doauth = 1
          • Neen: is er een loginnaam meegekomen ex cookie
            • Ja: komt deze overeen met de inlogmode van de service (eloi indien euser)?
              • Ja: doauth = 0, sessie wordt geauthenticeerd
              • Neen: doauth = 1
            • Neen: doauth = 1
    • geef doauth ($authenticate) terug aan index.phtml
  • $authenticate != 1 of 9: service-url wordt opgestart

  • $authenticate = 9: noentry scherm wordt getoond

  • $authenticate = 1 (login nodig):

    • is een login nodig omdat de maximale tijdsduur van de service verstreken is
      • Ja: $auth* = ''
      • Neen:
        • Bestaat cookie r4_system_name' . '_authentication?
          • Neen: $auth* = ''
          • Ja: start %Entry^usewlog (/universe/authentication/usewlog.m) met PDref = "euser^^^^^^$session^$service^$desktop^$REMOTE_ADDR^$authenticateid"
            • AuthentE^usewlog wordt gestart met ZDu=""
              • slaagt m4_getAuthenticationId erin een goede login-id op te halen?
                • Neen: user =""
                • Ja: schrijf gevonden user op positie 5 van PDref
            • user = ""
              • Ja: terug naar index.phtml en stel $auth = ''
              • Neen: start EntryEU^usewlog
                • authid="", dan wordt login = gevonden user
                • login=0 dus afchecken is niet nodig
                • sessie wordt gauthenticeerd met gevonden user
                • m4_setAuthenticationId met gevonden user
                • geef gevonden user aan $auth van index.phtml
    • Start %Entry^dauwauth (/desktop/authentication/dauwauth.m) met $auth in CDauth
      • CDauth =""
        • Neen:
          • scherm NoAuthentication wordt opgeroepen
          • js functie AUTHENTICATE.noAuthentication (/desktop/authentication/authentication.js) wordt aangesproken
            • als cookie 'r4_system_name' . '_' . $desktop . '_auth' niet bestaat, wordt hij gezet en menu-frame herladen om afmeld-service te tonen
            • service-url wordt opgestart
        • Ja: scherm Authenticate wordt opgeroepen
          • url bevat login=
            • Ja: start AUTHENTICATE.instantAuthentication() (/desktop/authentication/authentication.js)
              • zet FDlogin
              • reload menu-frame
            • Neen:
              • toon invulvelden FDlogin en FDpw
              • submit knop start eerst AUTHENTICATE.submitLogin() (/desktop/authentication/authentication.js)
                • berekening FDsent (sentinel) ex tijd
                • berekening FDmd5 ex sentinel + paswoord
                • reload menu-frame
          • submit form = /desktop/authentication/iam.phtml
            • bereken $authid op basis van de tijd of haal $authid uit cookie 'r4_system_name' . '_authentication' indien deze bestaat
            • start %Entry^usewlog (/universe/authentication/usewlog.m) met PDref = "euser^^$eusys^$md5^$sentinel^$userid^$session^$service^$desktop^$REMOTE_ADDR^$authid"
              • AuthentE^usewlog wordt gestart met ZDu'=""
                • s RDauthid = positie 10 van PDref
                • zet positie 10 van PDref = ''
              • start EntryEU^usewlog
                • voer logincheck uit, afhankelijk van login-mode van de desktop
                • logincheck gelukt
                  • Ja: komt login overeen met login-mode van service of kan login ernaar hervormd worden
                    • Ja:
                      • authenticeer sessie
                      • m4_setAuthenticationId
                    • Neen: login =''
                  • Neen: login =''
                • geef login terug aan iam.phtml in $login
            • $login = 0
              • Ja: toon loginscherm opnieuw
              • Neen:
                • zet cookie 'r4_system_name' . '_' . $desktop . '_auth'
                • zet cookie 'r4_system_name' . '_authentication' indien deze nog niet bestaat
                • service-url wordt opgestart