Upgrade phpCAS
[piwik-CASLogin.git] / CAS / docs / Upgrading
1 ################################
2 ### Upgrading 1.3.1 -> 1.3.2 ###
3 ################################
4
5 Due to the missing validation of the CN of the SSL certifcate it may be that
6 phpcas fails validation of CAS server certicates that do not match the IP/DNS 
7 name you use in the phpcas client() or proxy() setup.
8 If this happens a quick workaround to change the setup to the old but unsecure
9 behaviour. This can be seen in the no_ssl_cn_validation example.
10 This is not a recommended setting and is no a secure setup!
11
12 ################################
13 ### Upgrading 1.2.x -> 1.3.0 ###
14 ################################
15
16
17 ------------------------------------------------------------------
18 1. Changing of the default debug.log permissions:
19 ------------------------------------------------------------------
20
21 The default debug log is now created with 0600 permissions to be only readable
22 by the webserver
23
24 -------------------------------------------------------
25 2. Changing of the behaviour of proxied applications:
26 -------------------------------------------------------
27
28 If your application is being proxied (Another casified application is using
29 proxy tickets to access your service you need to change your configuration. The
30 new default configuration is now to deny any proxied use of your service unless
31 it is exlicitly allowed:
32
33 If you want your service to be proxied you have to enable it (default disabled) 
34 and define an accepable list of proxies that are allowed to proxy your service.
35
36 Add each allowed proxy definition object. For the normal CAS_ProxyChain
37 class, the constructor takes an array of proxies to match. The list is in
38 reverse just as seen from the service. Proxies have to be defined in reverse
39 from the service to the user. If a user hits service A and gets proxied via
40 B to service C the list of acceptable on C would be array(B,A). The definition
41 of an individual proxy can be either a string or a regexp (preg_match is used)
42 that will be matched against the proxy list supplied by the cas server
43 when validating the proxy tickets. The strings are compared starting from
44 the beginning and must fully match with the proxies in the list.
45
46 Examples:
47       phpCAS::allowProxyChain(new CAS_ProxyChain(array(
48               'https://app.example.com/'
49           )));
50 or
51       phpCAS::allowProxyChain(new CAS_ProxyChain(array(
52               '/^https:\/\/app[0-9]\.example\.com\/rest\//',
53               'http://client.example.com/'
54           )));
55
56 For quick testing or in certain production screnarios you might want to
57 allow allow any other valid service to proxy your service. To do so, add
58 the "Any" chain:
59
60       phpcas::allowProxyChain(new CAS_ProxyChain_Any);
61
62 THIS SETTING IS HOWEVER NOT RECOMMENDED FOR PRODUCTION AND HAS SECURITY
63  IMPLICATIONS: YOU ARE ALLOWING ANY SERVICE TO ACT ON BEHALF OF A USER
64  ON THIS SERVICE.
65
66
67 ----------------------------------------------------------------
68 3. Changing of the default PGT file storage location in proxy mode:
69 ----------------------------------------------------------------
70
71 The default storage of the sensitive PGT session files is the 
72 session_save_path() now. This is a php environment dependent dir which is also
73 used for storing your php session data. The default permissions are also changed
74 to 0600 to be only readable by the webserver.
75
76
77
78
79 ------------------------------------------------------------------
80 4. The setPGTStorageFile() function has changed it parameters.
81 ------------------------------------------------------------------
82
83 The setPGTStorageFile() function no longer needs an storage "format" argument.
84 Since the format functionality was never implemented it has now been dropped 
85 and only the path argument is necessary.
86
87 ------------------------------------------------------------------
88 5. The startSession boolean in the constructor has been changed to
89 changeSessionID
90 ------------------------------------------------------------------
91
92 The last parameter of the constructor for has been changed from "start session"
93 to "change session ID". This has no negative effects on existion integrations
94 but will allow integration with other frameworks to take advantage of single 
95 sign-out if they switch to "true". phpCAS will then rename the session id 
96 (keeping all vars) and be able to single sign-out users.
97
98
99
100