Grups d'Identitat
Ús
El Servei de Grups permet:
- crear grups de membres utilitzant expressions
- recuperar el conjunt de membres d'un grup
- recuperar el conjunt de grups a què pertany un membre
Els membres s'identifiquen per GaussID (com ara 100123) i només es poden utilitzar membres definits a Identitat.
Grups
Els grups s'identifiquen per un id (com ara example.group).
Les expressions defineixen el subconjunt de membres com a:
- Referència a altres grups: other.group
- Combinant grups existents amb operacions de conjunts:
- Unió: group.one ∪ group.two
- Intersecció: group.one ∩ group.two
- Diferència: group.one ∖ group.two
- Diferència simètrica: group.one ∆ group.two
- Obtenint membres de Origins i filtrant per atributs
- Els atributs són referenciats per $ORIGIN.$attribute (com ara ID.country o PRISMA.udCode)
- Membres que coincideixen amb el valor de l'atribut: ID.country = "ES"
- Altres comparadors que es poden utilitzar: ≠, <, >, ≤, ≥
- Membres que coincideixen amb el valor de l'atribut (d'una llista): ID.country ∈ {"ES", "PT"}
- Membres que no coincideixen amb el valor de l'atribut (d'una llista): ID.country ∉ {"ES", "PT"}
- Les expressions de filtratge també es poden combinar utilitzant operacions de conjunts
- Els parèntesis ( ) es poden utilitzar per agrupar subexpressions
Exemple: (ID.country = "ES" ∩ ID.age ≥ 18) ∪ exceptions
Plantilles de grup
Les plantilles permeten crear molts grups (instàncies) alhora utilitzant un:
- id de plantilla com somePrefix.[ID.pais].[ID.provincia]
- expressió de plantilla com ID.pais = [ID.pais] ∩ ID.provincia = [ID.provincia]
- registres: una taula amb els atributs utilitzats per definir la plantilla. Per exemple:
ID.pais | ID.provincia |
---|---|
ES | Barcelona |
ES | Córdoba |
ES | Biscaia |
Aquest exemple crearia els següents grups d'instància:
GroupId | Expressió |
---|---|
somePrefix.ES.Barcelona |
ID.pais = "ES" ∩ ID.provincia = "Barcelona" |
somePrefix.ES.C!F3rdoba |
ID.pais = "ES" ∩ ID.provincia = "Córdoba" |
somePrefix.ES.Biscaia |
ID.pais = "ES" ∩ ID.provincia = "Biscaia" |
En cas que el registre contingui algun caràcter no permès en l'ID del grup, això s'escapa a !HH, per exemple: id de grup somePrefix.ES.C!F3rdoba amb expressió ID.pais = "ES" ∩ ID.provincia = "Córdoba".
Origins
Els Origins són interfícies per a sistemes d'informació externs que es poden utilitzar per filtrar membres.
Conceptualment, un Origin és una taula totalment desnormalitzada amb atributs.
GaussId | pais | provincia | poblacio |
---|---|---|---|
2 | ES | Barcelona | Barcelona |
2 | ES | Barcelona | Granollers |
5 | ES | Cordoba | Lucena |
7 | ES | Vizcaya | Getxo |
8 | ES | Vizcaya | Bilbao |
Actualment hi ha dos Origins: ID (de Identitat) i PRISMA.
Atributs
Els atributs estan relacionats amb el domini del sistema d'informació extern.
L'atribut GaussID és obligatori ja que s'utilitza per identificar membres.
Generalment, els atributs haurien de ser agregables ja que el principal objectiu és filtrar conjunts de membres.
CommonName i GaussID
El servei de grups utilitza exclusivament GaussID per identificar membres.
Hi ha una API provisional per convertir de/a GaussID i CommonName, però no forma part de l'API pública i es pot eliminar sense avís previ.
Aplicació de gestió
API
Podeu veure la definició openapi a https://idgrups.upc.edu/api/META/api i també podeu veure-la amb interfície swagger https://idgrups.upc.edu/apiDefinition .
Per utilitzar la API cal demanar l'accés a eATIC amb les següents dades:
- nomUserApp: common name de l'usuari genèric (d'aplicació) al que es donarà accés a la API
- SUB: idGauss de l'usuari genèric
- nomApp: client id de l'aplicació, groups-api o groups-pro-api
- clau pública RSA: cal adjuntar la clau pública RSA (per exemple clau_grups_rsa.pub) generada amb la comanda ssh-keygen -f clau_grups_rsa, per poder fer login via SFTP al servidor vault.upcnet.es sense haver d'usar credencials
- adreça IP: del servidor que es connectarà al vault.upcnet.es
Una vegada eATIC hagi tramitat l'alta, disposareu d'un JWT amb dos noms diferents (un inclou la data de caducitat) us podreu descarregar el JWT generat connectant al vault des del servidor especificat:
$ sftp -i clau_grups_rsa nomUserApp@vault.upcnet.es
sftp> cd ssojwt
sftp> ls -altr *.jwt
sftp> get nomUserApp_nomApp_entornSSO.jwt
Podeu utilitzar el token JWT amb l'autenticació de tipus Bearer, per exemple:
$ curl https://idgrups.upc.edu/api/groups -H 'Authorization: Bearer eyJ...'
Delegació i accés
La gestió dels grups es delega a les Unitats Tècniques de Gestió mitjançant un grup de mànagers i un grup univers. Si la delegació encara no està creada cal sol·licitar-ho via tiquet a eATIC.
- Afegir nous membres en aquest grup de mànagers.
- Crear o editar grups, els membres dels quals només poden ser persones del grup univers app.idgroups.u.{codi-UTG}.univers. Per exemple, si es crea un grup de PDI, només en podran formar part les persones del PDI del grup univers (no qualsevol PDI de la UPC).
Grups Institucionals
Es generen diàriament els següents grups institucionals amb vinculacions actives:
Unitat Estructural | institucional.u.[ID.ue] |
Perfil | institucional.p.[ID.perfil] |
Unitat Estructural i Perfil | institucional.up.[ID.ue].[ID.perfil] |
Unitat Docent | institucional.ud.[PRISMA.udCentre].[PRISMA.udCodiUpc].[PRISMA.quad] |
Unitat Docent PDI | institucional.udpdi.[PRISMA.udCentre].[PRISMA.udCodiUpc].[PRISMA.quad] |
Unitat Docent Responsable | institucional.udresp.[PRISMA.udCentre].[PRISMA.udCodiUpc].[PRISMA.quad] |
Unitat Docent Grup de Classe | institucional.udgc.[PRISMA.udCentre].[PRISMA.udCodiUpc].[PRISMA.quad].[PRISMA.grupClasse] |
Exemples:
Codi | Expressió |
---|---|
institucional.u.001 | ID.ue = "001" ∩ ID.estat = "ALTA" |
institucional.p.PDI | ID.perfil = "PDI" ∩ ID.estat = "ALTA" |
institucional.up.001.PI |
ID.ue = "001" ∩ ID.perfil = "PI" ∩ ID.estat = "ALTA" |
institucional.ud.162.162069.1 |
PRISMA.curs=2022 ∩ PRISMA.udCentre = "162" ∩ PRISMA.udCodiUpc = "162069" ∩ PRISMA.quad = "1" ∩ PRISMA.grupClasse≠"CONV" ∩ PRISMA.grupClasse≠"?" |
institucional.udpdi.162.162069.1 |
PRISMA.curs=2022 ∩ PRISMA.tipus = "PDI" ∩ PRISMA.udCentre = "162" ∩ PRISMA.udCodiUpc = "162069" ∩ PRISMA.quad = "1" ∩ PRISMA.grupClasse≠"?" |
institucional.udresp.162.162069.1 |
PRISMA.curs=2022 ∩ PRISMA.tipus = "PDI" ∩ PRISMA.esResponsable = "S" ∩ PRISMA.udCentre = "162" ∩ PRISMA.udCodiUpc = "162069" ∩ PRISMA.quad = "1" |
institucional.udgc.162.162069.1.CFIS |
PRISMA.curs=2022 ∩ PRISMA.udCentre="162" ∩ PRISMA.udCodiUpc="162069" ∩ PRISMA.quad="1" ∩ PRISMA.grupClasse="CFIS" |
Grups Google
Es generen diàriament els següents grups de google d'Unitats Docents per quadrimestre:
Grup | Expressió | Exemple |
---|---|---|
Estudiants i PDIs | [PRISMA.udCentre].[PRISMA.udCodiUpc].[PRISMA.sigles].[PRISMA.quad]@assigs.grups.upc.edu | fme.200002.al.q2@assigs.grups.upc.edu |
PDIs | PRISMA.udCentre].[PRISMA.udCodiUpc].[PRISMA.sigles].[PRISMA.quad].pdi@assigs.grups.upc.edu | fme.200002.al.q2.pdi@assigs.grups.upc.edu |
PDIs responsables | [PRISMA.udCentre].[PRISMA.udCodiUpc].[PRISMA.sigles].[PRISMA.quad].resp@assigs.grups.upc.edu | fme.200002.al.q2.resp@assigs.grups.upc.edu |
Comparteix: