1import ../make-test-python.nix ({pkgs, ...}: {
2 name = "kerberos_server-mit";
3 nodes.machine = { config, libs, pkgs, ...}:
4 { services.kerberos_server =
5 { enable = true;
6 realms = {
7 "FOO.BAR".acl = [{principal = "admin"; access = ["add" "cpw"];}];
8 };
9 };
10 krb5 = {
11 enable = true;
12 kerberos = pkgs.krb5Full;
13 libdefaults = {
14 default_realm = "FOO.BAR";
15 };
16 realms = {
17 "FOO.BAR" = {
18 admin_server = "machine";
19 kdc = "machine";
20 };
21 };
22 };
23 users.extraUsers.alice = { isNormalUser = true; };
24 };
25
26 testScript = ''
27 machine.succeed(
28 "kdb5_util create -s -r FOO.BAR -P master_key",
29 "systemctl restart kadmind.service kdc.service",
30 )
31
32 for unit in ["kadmind", "kdc"]:
33 machine.wait_for_unit(f"{unit}.service")
34
35 machine.succeed(
36 "kadmin.local add_principal -pw admin_pw admin",
37 "kadmin -p admin -w admin_pw addprinc -pw alice_pw alice",
38 "echo alice_pw | sudo -u alice kinit",
39 )
40 '';
41})