Skip to content
Snippets Groups Projects
Commit 79cd1540 authored by Hahn Axel (hahn)'s avatar Hahn Axel (hahn)
Browse files

update docs

parent 1db441a3
No related branches found
No related tags found
No related merge requests found
......@@ -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/>
## 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',`
## 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
......@@ -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`
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment