3. School authority components#
In this chapter the components that communicate with the ID Broker system are described.
Service providers use the ID Broker for authentication and to retrieve information about logged in users. School authorities do the actual authentication and send their users data to the ID Broker. The ID Broker system provides interfaces for multi tenant authentication, user data storage and retrieval.
3.1. School authorities / schools#
Analogous to the ID broker system, the UCS@school platform also forms the basis at the school authority, on which various sub-components implement the required interfaces. The use of the UCS@school platform is a mandatory requirement.
The following UCS@school sub-components are relevant for the communication with the ID broker:
3.1.1. Identity management#
Together with other UCS core components such as UMC and UDM, OpenLDAP forms the identity management (IDM) at the school authority. All relevant school objects, such as schools, users and group memberships, are administered via the IDM.
3.1.2. Identity provider#
The identity provider (IDP) is also a module of UCS@school, which is responsible for the authentication of users. For this purpose, multiple authentication mechanisms such as OpenID Connect or SAML are supported by the IDP. The IDP can usually be accessed from the outside in order to connect external services to the UCS@school domain of the school board. In this scenario, the ID broker assumes the role of an external service, and makes appropriate authentication requests to the IDP. In order to answer the authentication requests, the IDP accesses the local user data of the IDM.
3.1.3. UCS@school ID Connector#
For the provisioning of the ID broker, another component is required, which is also part of the UCS@school platform. The UCS@school ID Connector offers the possibility to connect a UCS@school domain to another UCS@school domain (here the ID Broker system) and to provision it with user data.
To use the UCS@school ID Connector in conjunction with the ID Broker, the ID Connector Plugin is required.
A management API is accessible at
https://FQDN/ucsschool-id-connector/api/v1/docs
.The API should not be made accessible to the public, as it is only used for configuration purposes.
The official documentation: https://docs.software-univention.de/ucsschool-id-connector/
The source code is available at https://git.knut.univention.de/univention/components/ucsschool-id-connector
3.1.3.1. ID Connector Plugin#
This plugin for the UCS@school ID Connector is triggered by changes in the school authorities IDM (LDAP), i.e. creation, modification and deletion, of all UCS@school users and school groups which are configured to be connected to the ID Broker.
Note
With version 1.3.18
of the package id-broker-id-connector-plugin
the tool manage_schools_to_sync.py can be used to or and remove schools from the ID Broker.
The new default is be that new schools have to be added manually.
The old behavior, i.e. all current and future schools are synchronized, still works after the upgrade.
If a change is detected, the plugin uses the Provisioning API to modify the user data on the ID Broker. If an object is part of a school, which is not yet existing on the ID Broker, this school is created automatically on the ID Broker.
The plugin for the UCS@school ID Connector sends the following data from the school authority to the Provisioning API:
Users: Only UCS@school users are sent, “normal” users are ignored. The attributes sent are:
entryUUID
(a unique object ID in the IDM of the school authority),firstname
,lastname
,username
andcontext
. Wherecontext
is a structure that contains the names of the schools the user is a member of, the groups in those schools and the users role (student, teacher, staff) in them.School classes and Workgroups: Only the school groups of users that should by synchronized are sent. The attributes sent are:
name
,description
(display name),school
andmembers
.Schools: Only the schools of users that should by synchronized are sent. The attributes sent are:
name
anddisplayName
.
The documentation for school authorities is available at https://docs.software-univention.de/idbroker-school-authority-manual/index.html
The source code is available at https://git.knut.univention.de/univention/components/ucsschool-id-connector/-/tree/master/src/plugins