remove SM_FLAG_STOP_EVAL, unused
[mech_eap.orig] / README
1 Overview
2 ========
3
4 This is an implementation of the GSS EAP mechanism, as described in
5 draft-ietf-abfab-gss-eap-01.txt.
6
7 Building
8 ========
9
10 In order to build this, a recent Kerberos implementation (MIT or
11 Heimdal), Shibboleth, and EAP libraries are required, along with
12 all of their dependencies.
13
14 Note: not all SPIs are supported by the Heimdal mechanism glue,
15 so not all features will be available.
16
17 Installing
18 ==========
19
20 When installing, be sure to edit $prefix/etc/gss/mech to register
21 the EAP mechanisms. A sample configuration file is in this directory.
22
23 Make sure your RADIUS library is configured to talk to the server of
24 your choice: see the example radsec.conf in this directory. If you
25 want to use TCP or TLS, you'll need to run radsecproxy in front of
26 your RADIUS server.
27
28 On the RADIUS server side, you need to install dictionary.ukerna and
29 include it from the main dictionary file (assuming it has a dictionary
30 format compatible with FreeRADIUS).
31
32 If you want the acceptor be able to identify the user, the RADIUS
33 server needs to echo back the EAP username from the inner tunnel;
34 for privacy, mech_eap only sends the realm in the EAP Identity
35 response. To configure this with FreeRADIUS, add:
36
37         update outer.reply {
38             User-Name = "%{request:User-Name}"
39         }
40
41 to $prefix/etc/raddb/sites-enabled/inner-tunnel, and ensure that
42
43     virtual_server = "inner-tunnel"
44
45 is set in eap.conf for the desired EAP types. Other than that,
46 configuration of FreeRADIUS should be identical for other NAS
47 applications.
48
49 To test the SAML assertion code path, you can place a fixed SAML
50 assertion in the update reply block of the default configuration.
51
52         update reply {
53             SAML-AAA-Assertion = '<saml:Assertion ...'
54             SAML-AAA-Assertion += '...'
55         }
56
57 You'll need to split it into multiple lines because of the RADIUS
58 attribute size limit.
59
60 Testing
61 =======
62
63 You can then test the MIT or Cyrus GSS and SASL example programs.
64 Sample usage is given below. Substitute <user>, <pass> and <host>
65 appropriately (<host> is the name of the host running the server,
66 not the RADIUS server).
67
68 % gss-client -port 5555 -spnego -mech "{1 3 6 1 4 1 5322 22 1 18}" \
69   -user <user> -pass <pass> <host> host@<host> "Testing GSS EAP"
70 % gss-server -port 5555 -export host@<host>
71
72 Note: for SASL you will be prompted for a username and password.
73
74 % client -C -p 5556 -s host -m EAP-AES128 <host>
75 % server -c -p 5556 -s host -h <host>
76
77 To test fast reauthentication support, add the following to
78 /etc/krb5.conf:
79
80 [appdefaults]
81         eap_gss = {
82                 reauth_use_ccache = TRUE
83         }
84
85 This will store a Kerberos ticket for a GSS-EAP authenticated user
86 in a credentials cache, which can then be used for re-authentication
87 to the same acceptor. You must have a valid keytab configured.