-
Notifications
You must be signed in to change notification settings - Fork 2
Backoffice Portal
Pipat Saengow edited this page Jan 13, 2023
·
1 revision
CUGetReg have a dashboard for internal tooling located at auth.internal. Within it contains various tools for administering, monitoring, and deploying CUGetReg.
Go to auth.internal, and press GitHub icon at the bottom and log-in with your GitHub account.
Your GitHub account must be a member of thinc-org/cugetreg
team. Additionally, for certain tools, you must be a member of thinc-org/cugetreg-infra
team.
If you get add to a new group, you must use Unenroll Me
button and login again.
Following tools are available:
- Appsmith
- For approving user review
- This things is access control by Nut Pinyo, not from authentik due to free-tier limitation. You should ask him for access.
- Argo CD
- For GitOps of the K8S Cluser
- Only accessible by member of
thinc-org/cugetreg-infra
team
- Kube Login
- For K8S management using
kubectl
tool. -
cugetreg
team currently have no permission assigned, but in the future, we may allows port-forwarding and access to staging environment. -
infra
team havecluster-admin
access
- For K8S management using
- Kubernetes Dashboard
- For easy monitoring of the K8S cluster.
- Open Search (like Kibana)
- Monitoring of user behavior log (
clientlogging
) and backend log -
infra
team have full access -
cugetreg
team have limited access with some fields anonymized
- Monitoring of user behavior log (
- Traefik Dashboard
- for monitoring the cluster's ingress
The portal page is implemented using Authentik. We use authentik to
- Authenticate user via GitHub and grant user's permission via github Team
- Act as a authentication proxy for internal apps.
- Act as an OpenID Connect providers for internal apps.
- GitHub Social Login provider is set-up with Thinc Github OAuth App
- When user press log-in with GitHub, they go through
default-source-authentication
which containsis-in-thinc-org
policy which check that user is in thinc-org - But if this is their first login, then they go though
default-source-enrollment
flow, which containsgithub-admin-enroll
policy which retrieve user's team and enroll them into an authentik group of the same name. a. If there are additional group to be auto-enroll, the policy's group list must be modified.
- AppSmith
- No setup, just a link
- Argo CD
- ArgoCD's OIDC is configured in
argo-cm.yaml
- It map group using OIDC's groups claim, the group
cugetreg-infra
is then mapped to admin role usingargocd-rbac-cm.yaml
.
- ArgoCD's OIDC is configured in
- Kube Login
- It use OIDC JWT Token setup in
k3s.service
. It map group using OIDC groups claim. -
cugetreg-infra-role.yaml
then map cluster admin rol tocugetreg-infra
group. - KubeAPI Server is exposed directly through TCP Router in
k8s-ingress.yaml
-
kubelogin is then used to automatically setup the
kubectl
command.
- It use OIDC JWT Token setup in
- Kubernetes Dashboard
- Authentik's Proxy provider is used along with appropriate ingress route
- Open Search
- Opensearch supports OIDC. This requires configuration in
opensearch-helm.yaml
andopensearch-dashboard.yaml
- I additionally put username password bypass. Credential is in
opensearch-dashboard.yaml
- Opensearch authenticate by using
roles_key
which is an OIDC claim that are comma-separated list of "backend role"- This requires special "kibana-roles" Property Mapping to be setup in Authentik.
- The python expression maps
cugetreg-infra
team toadmin
backend role andcugetreg
tolimited
role
- "backend role" is mapped to actual role by configuring through Opensearch Dashboard GUI's Security Tab.
- limited role mask various fields and anonymized PI data.
- Opensearch supports OIDC. This requires configuration in
- Traefik Dashboard
- It use proxy provider
- Facebook Page: Thinc.
- LinkedIn: CU Get Reg
- Discord: เร็ว ๆ นี้