diff --git a/docs/40_Installation.md b/docs/40_Installation.md index 9966daf045c2a2c2aff8860cc3e9008132bac606..47777e6026e1d30f702b6b727c9adfac1427908e 100644 --- a/docs/40_Installation.md +++ b/docs/40_Installation.md @@ -14,24 +14,29 @@ This is the filestructure you get ```text - +. ├── Readme.md ├── classes │ : -│ ├── config.php.dist <<< config template ├── docs │ : -│ -├── functions.js <<< Javascript +├── functions.js ├── inc_functions.php -├── inc_mode_boxes.php <<< View: boxes that can be filtered -├── inc_mode_wayf.php <<< View: WAYF javascript from Switch ├── index.php ├── lang <<< folder with translation files (Json) │ : -│ -└── login_aai.css +├── login_aai.css +├── mode <<< Views +│ ├── boxes +│ │ ├── index.php +│ │ └── screen.css +│ ├── list +│ │ : +│ └── wayf +│ : +├── screen.css +└── screen_custom.css.dist ``` * Copy **config.php.dist** to config.php and make your changes. See chapter Configuration. @@ -43,7 +48,7 @@ This is the filestructure you get The web ui offers just a frontend for your visitors to link multiple organisations. -That the logins at another IDP work you need to +That the logins at another IDP work you still need to * Create a Service provider on your AAI Federation * Configure Shibboleth and whitelist the wanted IDPs @@ -53,5 +58,6 @@ That the logins at another IDP work you need to Links: +* <https://www.shibboleth.net/> * <https://en.wikipedia.org/wiki/Shibboleth_(software)> * <https://met.refeds.org/> diff --git a/docs/50_Configuration.md b/docs/50_Configuration.md index 7f91ccf381bcedeee39e04b897493fdffb908c52..009c4e88278b68d5fcb1478bb663bb90fc488e73 100644 --- a/docs/50_Configuration.md +++ b/docs/50_Configuration.md @@ -1,5 +1,7 @@ ## Configuration +### config.php + First an example configuration: ```php @@ -52,7 +54,7 @@ return [ |-- |-- |-- | title | string | Title of the login page; used for title tag and h1 header | lang | string | Language to detect texts in discofeed as 2 letter code; If the language is not found it takes the 1st text item -| mode | string | Selection mode; one of <br>-`"wayf"` Selection with WAYF script from Switch or<br>- `"boxes"` Boxes with images incl. filter field +| mode | string | Selection mode; one of <br>- `"boxes"` Boxes with images incl. filter field<br>- `"list"` Top down list of IDPs with images incl. filter field<br>- `"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 @@ -60,3 +62,15 @@ return [ | return-url | string | Return url to your application afer logging in on then organization url<br>- '/shib_login.php' is for Ilias LMS | cachefile | string | Releative path for cache file; default: discofeed.json | cachettl | integer | Caching time for cache file (discofeed.json ); default: 60 min + +### 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 in the copy +* To activate edit the ./config.php and set `'mode' => 'myboxes',` diff --git a/docs/60_Integration.md b/docs/60_Integration.md new file mode 100644 index 0000000000000000000000000000000000000000..9ae59117f245a1b4b27c2519d3415141574e2285 --- /dev/null +++ b/docs/60_Integration.md @@ -0,0 +1,50 @@ +## Integration + +### Ilias 9 + +Here are my steps to integrate the AAI login into Ilias. +It works without any hack. + +#### Custimize Login page + +Edit the Login page using the rich text editor. Keep in mind that it filters html tags like + +* `<script>` +* `<noscript>` +* `<style>` + +But you can set a link with html. + +```html +<div class="ilStartupSection"> + <div class="form-horizontal"> + <h2>AAI Login</h2> + <p> + [Your introduction text]<br> + <br> + <a href="/login_aai/" class="btn btn-default">AAI Login</a> + </p> + </div> +</div> +``` + +#### Configure AAI Logon script + +Extract the AAI logon source in the webroot of your Ilias installation. +It is next to login.php from Ilias: + +```text +# ls -1d *log* +login.php +login_aai <<< +logout.php +shib_login.php +shib_logout.php + +``` + +In the ./login_aai/**config.php** + +* set a return url to shib_login.php `'return-url' => '/shib_login.php',` +* set your IDPs that you want to enable for selection `'idps' => [...],` +* Customize the look and feel. See page Configuration diff --git a/docs/90_Development.md b/docs/90_Development.md index 38d7f06e16441b85e3ac023b059be0223ece30fc..f913435f31c10a7848f989d2dcf5253a41ae0da0 100644 --- a/docs/90_Development.md +++ b/docs/90_Development.md @@ -2,7 +2,7 @@ * Requirements: local installation of php; you can use its internal webservice * Extract files in a local folder or use git clone -* in functions.js set `var bShowLoginOnError = false;`to `true` +* in functions.js set `var bShowLoginOnError = false;`to `true` to see the Idp selection without having a shibboleth installation * start `php -S localhost:9000` and open <http://localhost:9000> in your webbrowser * Get the files of the discofeed from a production machine running shibboleth and store it as discofeed cache file:<br> `curl https://example.com/Shibboleth.sso/DiscoFeed > discofeed.json` * After reachin cache TTL you can repeat the curl command or `touch discofeed.json`