Register the admin VO
The admin VO is the one that rules them all. It is not meant to be connected to the grid services and therefore can be offline and DiracX-specific. We currently support Indigo IAM and dex, but you can also use your institute SSO platform (e.g. CERN SSO).
Prerequisites
- You have access to your DiracX instance URL.
Generate an OIDC client
- Go to the CERN Application Portal
- Click "Register a new application"
-
Fill in the application details:
-
Application Name: DiracX [Your VO/Installation]
-
Description: DiracX authentication for [Your VO]
-
SSO Protocol: OpenID Connect
- Redirect URLs
- Base URL
- Client Secret Configuration: tick
My application cannot store a client secret safely
- If you want to restrict to a certain egroup, in the
role
part, edit thedefault role
to add your egroup
TODO: blabla
The general guidelines for the configuration is as follow
-
Client secret: none
-
Redirect URIs:
-
Grant type:
authorization_code
-
Scope: at minimum
openid
,profile
andemail
Use Authorization Code without secrets
If your IDP gives you a choice, use the PKCE one, which is the only one supported by DiracX
Configure DIRAC
-
In your DIRAC CS, add under
DiracX > CsSync > VOs > <VO> > IdP
: -
Add a
diracx_admin
group to theRegistry
:Dispalay configuration example
Registry { Groups { diracx_admin { Users = <username from dirac> VO = diracx_admin Properties = Operator Properties += FullDelegation Properties += ProxyManagement Properties += ServiceAdministrator Properties += JobAdministrator Properties += CSAdministrator Properties += AlarmsManagement Properties += FileCatalogManagement Properties += SiteManager } } }
-
List their subject‑IDs under
UserSubjects
:Display configuration example
Automate the listing of subjects if you can
The
SubId
corresponds to the username. Members of an egroup can be listed with the following (replace<the-egroup-you-want>
)curl --no-progress-meter --insecure "ldaps://xldap.cern.ch/OU=Users,OU=Organic Units,DC=cern,DC=ch?name?sub?(&(objectClass=user)(memberOf=CN=<the-egroup-you-want>,OU=e-groups,OU=Workgroups,DC=cern,DC=ch))" | grep name | awk -F ":" '{print $2}' | tr -d '[:blank:]'
You need an ldap compatible curl build
See if
ldap
shows incurl --version
Make sure that the CS sync is active.