diff --git a/authentik/ldap-outpost-lb.yaml b/authentik/ldap-outpost-lb.yaml new file mode 100644 index 0000000..002499b --- /dev/null +++ b/authentik/ldap-outpost-lb.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + name: ldap-outpost-external + namespace: authentik +spec: + type: LoadBalancer + selector: + app.kubernetes.io/name: ak-outpost-ldap-outpost + ports: + - name: ldap + port: 389 + targetPort: 3389 + protocol: TCP + - name: ldaps + port: 636 + targetPort: 6636 + protocol: TCP diff --git a/dns/domains/rubenhensen.nl.yaml b/dns/domains/rubenhensen.nl.yaml index 44f7c35..d5da29c 100644 --- a/dns/domains/rubenhensen.nl.yaml +++ b/dns/domains/rubenhensen.nl.yaml @@ -23,6 +23,10 @@ records: expire: 86400 type: A content: "62.41.87.114" + - name: "ldap" + expire: 86400 + type: A + content: "62.41.87.114" - name: "argocd" expire: 86400 type: CNAME diff --git a/nix-infra-machine/nodes/node001.nix b/nix-infra-machine/nodes/node001.nix index ea35497..7353f8c 100644 --- a/nix-infra-machine/nodes/node001.nix +++ b/nix-infra-machine/nodes/node001.nix @@ -91,7 +91,7 @@ fts = "rocksdb"; blob = "rocksdb"; lookup = "rocksdb"; - directory = "internal"; + directory = "authentik"; }; store.rocksdb = { @@ -112,6 +112,28 @@ enable = true; }; + directory.authentik = { + type = "ldap"; + url = "ldap://ldap.rubenhensen.nl:389"; + timeout = "30s"; + tls.enable = false; + base-dn = "DC=ldap,DC=goauthentik,DC=io"; + + bind.auth.method = "lookup"; + + filter = { + name = "(&(objectClass=user)(cn=?))"; + email = "(&(objectClass=user)(|(mail=?)(mailAlias=?)))"; + }; + + attributes = { + name = "cn"; + class = "objectClass"; + email = "mail"; + groups = "memberOf"; + }; + }; + authentication.fallback-admin = { user = "admin"; secret = "%{file:/run/credentials/stalwart-mail.service/stalwart-admin-password}%";