Comparteix:

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ó

https://idgrups.upc.edu

 

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:

  • nomUserAppcommon name de l'usuari genèric (d'aplicació) al que es donarà accés a la API
  • SUBidGauss de l'usuari genèric
  • nomAppclient 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.

Els membres del grup u.{codi-UTG}.app.idgroups.managers poden:
  1. Afegir nous membres en aquest grup de mànagers.
  2. 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