about summary refs log tree commit diff
path: root/nixpkgs/nixos/tests/kerberos/heimdal.nix
blob: a0551b131e9144d37a90d72359908f0b01f2c66e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import ../make-test.nix ({pkgs, ...}: {
  name = "kerberos_server-heimdal";
  machine = { config, libs, pkgs, ...}:
  { services.kerberos_server =
    { enable = true;
      realms = {
        "FOO.BAR".acl = [{principal = "admin"; access = ["add" "cpw"];}];
      };
    };
    krb5 = {
      enable = true;
      kerberos = pkgs.heimdalFull;
      libdefaults = {
        default_realm = "FOO.BAR";
      };
      realms = {
        "FOO.BAR" = {
          admin_server = "machine";
          kdc = "machine";
        };
      };
    };
  };

  testScript = ''
    $machine->start;

    $machine->succeed(
      "kadmin -l init --realm-max-ticket-life='8 day' \\
       --realm-max-renewable-life='10 day' FOO.BAR"
    );

    $machine->succeed("systemctl restart kadmind.service kdc.service");
    $machine->waitForUnit("kadmind.service");
    $machine->waitForUnit("kdc.service");
    $machine->waitForUnit("kpasswdd.service");

    $machine->succeed(
      "kadmin -l add --password=admin_pw --use-defaults admin"
    );
    $machine->succeed(
      "kadmin -l ext_keytab --keytab=admin.keytab admin"
    );
    $machine->succeed(
      "kadmin -p admin -K admin.keytab add --password=alice_pw --use-defaults \\
       alice"
    );
    $machine->succeed(
      "kadmin -l ext_keytab --keytab=alice.keytab alice"
    );
    $machine->succeed("kinit -kt alice.keytab alice");
  '';
})