Configuration

config.php

First an example configuration:

<?php
return [

    'title' => 'AAI Login',

    // --- language for ui
    'lang' => 'de',

    // -- enable one of it:
    'mode' => 'boxes',
    // 'mode' => 'wayf',

    // -- maintenance hint or other message on top
    // 'text-info' => '+++ Hinweis +++ Hinweis +++ Hinweis +++ Hinweis +++',

    // -- text before and after
    'text-before' => '<h2>AAI Login</h2>
        <p>
            Studierende und Dozenten nutzen in der Regel das Anmelden &uuml;ber ihre Organisation:
        </p>',
    
    'text-after' => '<br><br><h2>Anmeldung ohne AAI</h2>
        <p>
            Klicken Sie auf: <br />
            <a href="/login.php" onclick="">Gast-Zugang</a>
        </p>',

    // -- positive list of IDPs
    'idps' => [
        "https://aai-idp.unibe.ch/idp/shibboleth",
        "https://aai.insel.ch/idp/shibboleth",
        "https://aai-logon.vho-switchaai.ch/idp/shibboleth",
        "https://aai-logon.unibas.ch/idp/shibboleth",
    ],

    // -- return URL
    'return-url' => '/shib_login.php'

    // -- cache for discofeed
    'cachefile' => 'discofeed.json',
    'cachettl' => 60*60,

];

Available settings

Key Type Description
title string Title of the login page; used for title tag and h1 header
lang string Language as 2 letter code for ui and to detect texts in discofeed; If the language is not found in the discofeed it takes the 1st text item
mode string Selection mode; one of
- "boxes" Boxes with images incl. filter field
- "list" Top down list of IDPs with images incl. filter field
- "wayf" Selection with WAYF script from Switch
text-info string When not empty: show a warning banner with its text on top eg. for maintenance messages
text-before-wayf string Text to show before wayf select box (for mode = “wayf” only)
text-after-logins string Fisnishing text after
idps array List of enabled idps to whitelist; it will filtered by enabled organisatzions by shibboleth
return-url string Return url to your application afer logging in on then organization url
- ‘/shib_login.php’ is for Ilias LMS
cachefile string Releative path for cache file of the discofeed; default: “discofeed.json”; the user of webserver (www-data, …) needs write permission in the follder
cachettl integer Caching time for cache file (discofeed.json ); default: 60 min

Screenshots of modes

Mode “boxes”: Login screen with mode “boxes”

Mode “list”: Login screen with mode “boxes”

Mode “wayf”: Login screen with mode “boxes”

Custom Css

Place a file named “screen_custom.css”. If this exists it will be added in the html code after all other css files. There you can override all styles and values.

Custom look

If you want to modify the look of the Idp selection:

  • go to directory “mode”
  • Make a copy of a view, eg. copy “boxes” to “myboxes” and make your changes for coding and styling in your copy
  • To activate it edit the ./config.php and set 'mode' => 'myboxes',