I'm having issues getting our instance of SOGo to authenticate with CAS. We have been running both SOGo and CAS for a while I figure it is now time to try to get them to work together. I am able to authenticate to the SOGo web interface but am getting that "failure to obtain a PGT from the C.A.S. service" Both the SOGo server (sogo.domain.com) and the cas server (auth.domain.com) are using ssl with valid (signed by Godaddy's CA) certificates. I have cas-proxy-validate.py installed and this in my apache2 SOGo.conf file:

----------------- conf.d/SOGo.conf ------------
ProxyPass /SOGo/casProxy http://localhost/cgi-bin/cas-proxy-validate.py
#<Proxy http://localhost/app/cas-proxy-validate.py>
<Proxy http://localhost/cgi-bin/cas-proxy-validate.py>
  Order deny,allow
  Allow from all
</Proxy>
-----------------------------------------------------

I did change the <Proxy http://localhost/app/cas-proxy-validate.py> to <Proxy http://localhost/cgi-bin/cas-proxy-validate.py> I would assume that is a typo in the conf.d/SOGo.conf file. I do get the "missing parameter." when I got to https://sogo.domain.com/SOGo/casProxy . So the cas-proxy-validate.py cgi is running. (notice I did set "Allow from all" at least for now to rule that out).

Here is my SOGo .GNUStepDefualts:

------------- .GNUStepDefaults ---------------
{
    NSGlobalDomain = {
    };
    sogod = {
OCSEMailAlarmsFolderURL = "postgresql://sogo:**********@db04.private:5432/sogotesting/sogo_alarms_folder"; OCSFolderInfoURL = "postgresql://sogo:**********@db04.private:5432/sogotesting/sogo_folder_info"; OCSSessionsFolderURL = "postgresql://sogo:**********@db04.private:5432/sogotesting/sogo_sessions_folder";
    SOGoACLsSendEMailNotifications = YES;
    SOGoAppointmentSendEMailNotifications = YES;
    SOGoAuthenticationType = cas;
    SOGoCASServiceURL = https://auth.domain.com/cas;
    SOGoDraftsFolderName = INBOX.Drafts;
    SOGOEnableEmailAlarms = YES;
    SOGoFoldersSendEMailNotifications = YES;
    SOGoForceIMAPLoginWithEmail = YES;
    SOGoIMAPServer = mailbackend.private;
    SOGoLanguage = English;
    SOGoMailDomain = emaildomain.com;
    SOGoMailingMechanism = smtp;
    SOGoOtherUsersFolderName = "Other Users";
SOGoProfileURL = "postgresql://sogo:**********@db04.private:5432/sogotesting/sogo_user_profile";
    SOGoSentFolderName = INBOX.Sent;
    SOGoSharedFolderName = "INBOX.Shared Folders";
    SOGoTimeZone = America/Chicago;
    SOGoTrashFolderName = INBOX.Trash;
    domains = {
        esu10.org = {
            SOGoMailDomain = emaildomain.com;
            SOGoSMTPServer = mail.domain.com;
            SOGoUserSources = (
                {
                CNFieldName = cn;
                IDFieldName = uid;
                UIDFieldName = mail;
                baseDN = "dc=domain,dc=com";
                bindDN = "cn=Search,dc=domain,dc=com";
                bindFields = (mail);
                bindPassword = ****************;
                canAuthenticate = YES;
                displayName = "Global Address Book";
                hostname = ldap.private;
                id = emaildomain;
                isAddressBook = YES;
                port = 389;
                type = ldap;
                scope = sub;
                }
            );
        }
    };
    WOUseRelativeURLs = YES;
    WOWorkersCount = 10;
    };
}
-----------------------------------------------------

I also have "PREFORK=10" in /etc/default/sogo. I'm not sure if I also need WOWorkersCount so I set both.

Here are the relevant logs from both SOGo and Jasig's CAS for an example of a "failure to obtain a PGT from the C.A.S. service":

------- from sogo.log --------------------------
Aug 23 11:28:41 sogod [18674]: [WARN] <0x0xfa3280[SOGoCASSession]> failure to obtain a PGT from the C.A.S. service localhost - - [23/Aug/2011:11:28:41 GMT] "GET /SOGo/so/?ticket=ST-4913-6Yrbmq9cu20LPGRdUY4h-cas HTTP/1.1" 302 0/0 0.118 - - 900K localhost - - [23/Aug/2011:11:28:41 GMT] "GET /SOGo/ HTTP/1.1" 302 0/0 0.013 - - 432K localhost - - [23/Aug/2011:11:28:41 GMT] "GET /SOGo/[email protected] HTTP/1.1" 302 0/0 0.002 - - 44K localhost - - [23/Aug/2011:11:28:41 GMT] "GET /SOGo/[email protected]/view HTTP/1.1" 302 0/0 0.004 - - 12K localhost - - [23/Aug/2011:11:28:41 GMT] "GET /SOGo/so/[email protected]/Mail HTTP/1.1" 302 0/0 0.002 - - 24K 2011-08-23 11:28:41.213 sogod[18674] WARNING: IMAP4 connection pooling is disabled! Aug 23 11:28:41 sogod [18674]: [ERROR] <0x0x119c920[SOGoCASSession]> attempted to obtain a ticket for service 'imap://mailbackend.private' while no PGT available Aug 23 11:28:41 sogod [18674]: [ERROR] <0x011B95C0[SOGoMailAccount]:0> no IMAP4 password available Aug 23 11:28:41 sogod [18674]: [ERROR] <0x011A4270[SOGoMailFolder]:folderINBOX> Could not connect IMAP4 localhost - - [23/Aug/2011:11:28:41 GMT] "GET /SOGo/so/[email protected]/Mail/view HTTP/1.1" 200 7075/0 0.065 27969 74% 2M Aug 23 11:28:41 sogod [18674]: [WARN] <0x0xf9ca90[SOGoWebDAVAclManager]> entry '{DAV:}write' already exists in DAV permissions table Aug 23 11:28:41 sogod [18674]: [WARN] <0x0xf9ca90[SOGoWebDAVAclManager]> entry '{DAV:}write-properties' already exists in DAV permissions table Aug 23 11:28:41 sogod [18674]: [WARN] <0x0xf9ca90[SOGoWebDAVAclManager]> entry '{DAV:}write-content' already exists in DAV permissions table localhost - - [23/Aug/2011:11:28:41 GMT] "POST /SOGo/so/[email protected]/Calendar/alarmslist?browserTime=1314116921 HTTP/1.1" 200 2/0 0.010 - - 128K Aug 23 11:28:41 sogod [18674]: [ERROR] <0x0xf94e80[SOGoCASSession]> attempted to obtain a ticket for service 'imap://mailbackend.private' while no PGT available Aug 23 11:28:41 sogod [18674]: [ERROR] <0x0107E620[SOGoMailAccount]:0> no IMAP4 password available Aug 23 11:28:41 sogod [18674]: [ERROR] <0x0107E620[SOGoMailAccount]:0> Could not connect IMAP4 localhost - - [23/Aug/2011:11:28:41 GMT] "POST /SOGo/so/[email protected]/Mail/0/mailboxes HTTP/1.1" 200 17/0 0.003 - - 4K localhost - - [23/Aug/2011:11:28:41 GMT] "POST /SOGo/so/[email protected]/Mail/foldersState HTTP/1.1" 200 0/0 0.003 - - 4K

------------------------------------------------------

----------- from my jasig cas.log -------------
2011-08-23 11:28:40,957 INFO [org.jasig.cas.authentication.AuthenticationManagerImpl] - AuthenticationHandler: org.jasig.cas.adaptors.ldap.BindLdapAuthenticationHandler successfully authenticated the user which provided the following credentials: [username: [email protected]] 2011-08-23 11:28:40,958 INFO [org.jasig.cas.CentralAuthenticationServiceImpl] - Granted service ticket [ST-4913-6Yrbmq9cu20LPGRdUY4h-cas] for service [https://sogo.domain.com/SOGo/so/] for user [[email protected]] 2011-08-23 11:28:41,067 INFO [org.jasig.cas.authentication.AuthenticationManagerImpl] - AuthenticationHandler: org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler failed to authenticate the user which provided the following credentials: [callbackUrl: https://sogo.domain.com/SOGo/casProxy] 2011-08-23 11:28:41,067 ERROR [org.jasig.cas.web.ServiceValidateController] - TicketException generating ticket for: [callbackUrl: https://sogo.domain.com/SOGo/casProxy] org.jasig.cas.ticket.TicketCreationException: error.authentication.credentials.bad at org.jasig.cas.CentralAuthenticationServiceImpl.delegateTicketGrantingTicket_aroundBody6(CentralAuthenticationServiceImpl.java:300)
....
------------------------------------------------------

I do use dovecot on the back end with pam_cas from Pam_cas-2.0.11-esup-2.0.5 for IMAP but the sogo server is not even attempting to contact the back end imap server when I enable CAS.

I just seem to be running up against a wall. Is there anyone that could help me with this? Are there that many people running SOGo along with C.A.S. it has been mentioned before but their seems to be very little documentation on it.

Thanks,
Jordan

--
[email protected]
https://inverse.ca/sogo/lists

Reply via email to