Weebo SI
SecurityAuthentification

Groupes et accès

Les groupes Authentik, ce qu'ils ouvrent et ce qu'ils donnent en aval

Les groupes et utilisateurs déclarés dans 2.argo/helm/auth/sub (AuthentikGroup, AuthentikUser), ce qu'ils ouvrent dans Authentik, et ce qu'un groupe donne ensuite dans chaque système qui lit la claim groups.

Hiérarchie

Un membre d'un groupe enfant est aussi membre de ses parents pour Authentik : une politique sur weebo_user laisse passer weebo_moderator et weebo_admin.

Utilisateurs

UtilisateurNomEmailGroupes directsGroupes effectifsActif
batleforcmaxmax@weebo.internalweebo_admin, batleforcweebo_admin, weebo_moderator, weebo_user, batleforcoui
batleforc-testbatleforc-testbatleforc-test@weebo.internalweebo_userweebo_useroui

Applications Argo CD visibles

Ce que chaque utilisateur voit une fois connecté à Argo CD (qui exige d'abord l'accès à l'application Authentik argo) : les rôles globaux de policy.csv (1.pulu-conf) par groupe, et les rôles des AppProjects par groupe ou par email (scopes RBAC : [groups, email]). La politique par défaut d'Argo CD ne donne rien.

Ces rôles, comme les RoleBindings labsso:<email> de l'apiserver, font confiance à la claim email : ils supposent qu'un utilisateur ne peut pas changer son email dans Authentik (System › Settings, « Allow users to change email » désactivé).

UtilisateurApplicationsPar
batleforctout (role:admin)policy.csv : weebo_admin:step-up, émis par le mapping argo admin profile de l'application argo-admin (second facteur)
batleforctout (role:readonly)policy.csv : weebo_admin
batleforcche-users/che-user-batleforc (get, sync)rôle proj:che-users:user-batleforc : max@weebo.internal
batleforcche-config-batleforc/* (get, sync)rôle proj:che-config-batleforc:user-batleforc : max@weebo.internal
batleforc-testche-users/che-user-batleforc-test (get, sync)rôle proj:che-users:user-batleforc-test : batleforc-test@weebo.internal

Accès aux applications

« ✅ » : la politique d'accès de l'application vise ce groupe ; « ✅ hérité » : elle vise un parent, que ce groupe satisfait.

angosargoargo-adminbatlehubche-clusterclickstackendpoint-gatewayforgejokube-adminlonghorns3stalwart
weebo_user—✅—————————✅
weebo_moderator✅✅ hérité—✅✅—✅✅——✅✅ hérité
weebo_admin✅ hérité✅ hérité✅✅ hérité✅ hérité✅✅ hérité✅ hérité✅✅✅ hérité✅ hérité
batleforc————————————
👤 batleforc✅✅✅✅✅✅✅✅✅✅✅✅
👤 batleforc-test—✅—————————✅

Claims émises

Les mappings de scope maison (AuthentikScopeMapping) : ce qu'une application qui les demande reçoit dans le jeton.

MappingScopeDescriptionExpression
argo admin profileprofileArgo CD admin marker, emitted after the step-up onlyadmin = ak_is_group_member(request.user, name="weebo_admin")
return {
    "name": request.user.name,
    "preferred_username": request.user.username,
    "nickname": request.user.username,
    "groups": ["weebo_admin:step-up"] if admin else [],
}
rustfs policiesgroupsS3 access levelfor group_name, policy in (
    ("weebo_admin", "consoleAdmin"),
    ("weebo_moderator", "bucketHealth"),
):
    if ak_is_group_member(request.user, name=group_name):
        return {"rustfs_policy": [policy]}
return {"rustfs_policy": []}
weebo emailemailEmail address, verified per the identity's attributesattributes = request.user.group_attributes()
verified = attributes.get("email_verified", "false")
return {
    "email": request.user.email,
    "email_verified": str(verified).lower() == "true",
}
weebo groupsgroupsWeebo group membership, for angosreturn {"groups": [g.name for g in request.user.ak_groups.all()]}

Ce que les groupes donnent en aval

Chaque endroit du rendu (et de la configuration Pulumi d'Argo CD) qui nomme un groupe Authentik : une autorisation accordée au groupe par le système qui consomme la claim groups.

GroupeApp Argo CDObjetChamp
weebo_moderatorbatlehubbatlehub/Application/batlehub-appspec.source.helm.valuesObject.config.auth[0].role_mappings.weebo_moderator
weebo_moderatorbatlehubbatlehub/BatleHubLocalInstance/mainspec.config.auth[0].role_mappings.weebo_moderator
weebo_moderatorauthauth/AuthentikScopeMapping/rustfs-policiesspec.expression
weebo_adminapp of appsdevelopment/ClusterRoleBinding/weebo-admin-crbsubjects[0].name
weebo_adminangosangos/AngosLocalInstance/registryspec.global.access.jobs[0]
weebo_adminangosangos/AngosLocalInstance/registryspec.global.access.admin[0]
weebo_adminangosangos/AngosRepository/weebospec.access.delete[0]
weebo_adminbatlehubbatlehub/Application/batlehub-appspec.source.helm.valuesObject.config.auth[0].role_mappings.weebo_admin
weebo_adminbatlehubbatlehub/BatleHubLocalInstance/mainspec.config.auth[0].role_mappings.weebo_admin
weebo_adminforgejoforgejo/Application/forgejo-appspec.source.helm.valuesObject.gitea.oauth[0].adminGroup
weebo_adminauthauth/AuthentikScopeMapping/argo-admin-profilespec.expression
weebo_adminauthauth/AuthentikScopeMapping/rustfs-policiesspec.expression
weebo_adminargocd (1.pulu-conf)argocd/ConfigMap/argocd-cmdata.policy.csv
batleforcbatlehubbatlehub/BatleHubNamespaceClaim/npm-batleforcspec.group
batleforcbatlehubbatlehub/BatleHubNamespaceClaim/cargo-batleforcspec.prefix
batleforcbatlehubbatlehub/BatleHubNamespaceClaim/cargo-batleforcspec.group
batleforcbatlehubbatlehub/BatleHubNamespaceClaim/go-batleforcspec.group
batleforcbatlehubbatlehub/BatleHubNamespaceClaim/go-batleforc-orgspec.group
batleforcforgejoforgejo/Application/forgejo-appspec.source.helm.valuesObject.gitea.oauth[0].groupTeamMap
batleforccheeclipse-che/CheCluster/eclipse-chespec.components.cheServer.extraProperties.CHE_SYSTEM_ADMIN_NAME

Argo CD (1.pulu-conf, policy.csv)

Scopes lus pour les groupes : [groups, email].

GroupeRôle Argo CD
weebo_admin:step-uprole:admin
weebo_adminrole:readonly

On this page