Next steps / to-do list
- Drop slapo-memberOf and use slapo-dynlist instead (see OpenLDAP ITS#8613 for rationale).
- Make memberOf writeable (ACLs, UI, etc.) for responsible zone admins.
WebSSO / SAML
- WebSSO with CAS protocol
SAML 2.0 support based on one of these:
Project name License Programming
Notes pysaml2 Apache License 2.0 Python no ready-to-use web application, only SAML, much work to implement missing pieces ipsilon GPLv3 Python many dependencies also on FreeIPA/sssd modules, hard to install keycloak Apache License 2.0 Java not sure whether it needs a full-blown application server Shibboleth Duo? Java CAS Apache License 2.0 Java
- Issue server certs to aeHost, aeNwDevice, aeService or aeSrvGroup based on authorization of role Setup Admins
- Enrollment based on Automatic Certificate Management Environment (ACME)
- direct ansible integration for server cert enrollment
- X.509 cert enrollment for aeUser with multi-factor authc
- use X.509 certs as SSH authorized keys instead of attribute sshPublicKey
- Automated authentication configuration (set userPassword) for aeHost and aeService
- Dynamic inventory module for accessing attributes in Æ-DIR entries
- proper keyring support (inspired by Mirko's password_from_keyring-py)
- Log performance data as Graylog Extended Log Format (GELF)
- The web applications should use Python's logging module and file ae-logging.conf
- Add cee_syslog_handler in file ae-logging.conf
- monitor whether PAM/NSS client still has valid configuration
Automatically install correct profiles to run AppArmor in mandatory mode.
- Extend one of the following Python demon implementations to look up correct boot config in Æ-DIR:
- make use of aeNwDevice
Network Access Control
- dynamic RADIUS client configuration (with shared secrets)
PAM/NSS caching demon
- Improve Performance
- Æ-DIR-specific caching demon knows the data can search more efficiently without local configuration (see notes about smart clients)
- Automation / Recovery on error
- special system user for aeHost with host password allowed to set system password in local configuration
- Location-specific replicas
- read DC locations from aeHost to determine near consumer replicas to access
- integrated monitoring (alarming and performance)
- group map
- the group map should be extended with generic groups based on rights groups attributes.
- aliases map
- for simple mail forwarding the aliases map should be supported with generic aliases based on rights groups attributes.
- hosts map
- do hosts lookup similar to ideas for DNS
- use PAM/NSS frontend modules of nss-pam-ldapd
- eventually fix and extend Arthur's pynslcd(8)
- Use X.509 TLS client certs for SASL/EXTERNAL bind
- eventually use DiskCache for persistent caching
- use PowerDNS to serve attributes as DNS RRs to augment regular DNS service:
- use remote backend (preferrably with DNSSEC) via pdns-remotebackend-python
- specific web application for administrative use-cases
- Python / flask / WTForms…
- Make use of Subresource Integrity either with ansible-generated hashes or on-the-fly-generation in the web app(s):
Prepare compliance statements:
- Web apps for simple reporting use-cases (expired objects etc.).
- Graph reporting of data structures in a zone.
This list is already pretty long…