Recherche
...
Alors il est particulièrement intéressant d'accéder à nuxeo sans passer à nouveau par le WAYF. Heureusement il est possible de court-circuiter le WAYF cf. https://federation.renater.fr/faq/wayf#court-circuiter_le_wayf
Remarque |
---|
Plus exactement on passe par le WAYF mais il n'y a pas d'interaction avec l'utilisateur. |
...
Bloc de code |
---|
https://ident-shib-test.univ-rennes1.fr/profile/Shibboleth/SSO?shire=http://sp-test3.univ-rennes1.fr/Shibboleth.sso/SAML/POST&target=http://sp-test3.univ-rennes1.fr/nuxeo/nxdoc/default/8f336444-60b5-48fa-9c03-a4c3335f8575/view_documents%3FtabId%3D%26conversationId%3D0NXMAIN&providerId=http://sp-test3.univ-rennes1.fr
|
Il est possible de saisir la définition du groupe Shib complexe comme celle-ci :
Bloc de code |
---|
(currentUser.user.affiliation=='student' and currentUser.user.username.matches('^g')) or (currentUser.user.username.contains('jaune')) and (not (currentUser.user.email.matches('.*@etu.u-bordeaux1.fr') or currentUser.user.company==('CNRS'))) |
On voit ici que l'on utilise user.affiliation alors que affiliation n'est pas un attribut standard de l'objet user de nuxeo. Il nous faut donc surcharger la définition de l'objet user de nuxeo. Pour cela nous créons un fichier userShib.sxd comme celui-ci :
Bloc de code | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0"?>
<xs:schema targetNamespace="http://www.nuxeo.org/ecm/schemas/user"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:nxs="http://www.nuxeo.org/ecm/schemas/user">
<xs:include schemaLocation="base.xsd" />
<xs:element name="username" type="xs:string" />
<xs:element name="password" type="xs:string" />
<xs:element name="firstName" type="xs:string" />
<xs:element name="lastName" type="xs:string" />
<xs:element name="company" type="xs:string" />
<xs:element name="email" type="xs:string" />
<xs:element name="affiliation" type="xs:string" />
<!-- inverse reference -->
<xs:element name="groups" type="nxs:stringList" />
</xs:schema>
|
On voit la définition de <xs:element name="affiliation" type="xs:string" />. Il faut ensuite référencer ce nouveau shéma :
Bloc de code | ||||
---|---|---|---|---|
| ||||
<extension target="org.nuxeo.ecm.core.schema.TypeService" point="schema">
<schema name="user" src="userShib.xsd" override="true" />
</extension
|
Attention au override="true" qui est indispensable si l'on veut surcharger la définition de user utilisé par défaut par nuxeo.
override="true"
override="true"
override="true"