Hi,

I try to get a SAML login working and failed. I read a lot in this list and think I'm pretty close towards a working setup. I managed to get redirected to the IDP login screen and while I get redirected back to SOGo I get this error message:

---
Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request

Reason: Error reading from remote server
---

The sogo.log to this request is:

---
Jun 24 11:16:38 sogod [2131]: |SOGo| starting method 'GET' on uri '/SOGo'
Jun 24 11:16:38 sogod [2131]: <0x0x5572c15faaa0[SOGoCache]> Cache cleanup interval set every 3600.000000 seconds Jun 24 11:16:38 sogod [2131]: <0x0x5572c15faaa0[SOGoCache]> Using host(s) '127.0.0.1' as server(s) Jun 24 11:16:38 sogod [2131]: [WARN] <0x0x7fc5bc4d8a80[WOxElemBuilder]> could not locate builders: WOxExtElemBuilder,WOxExtElemBuilder Jun 24 11:16:38 sogod [2131]: [ERROR] <0x0x5572c19e0770[SOGoUserManager]> No authentication sources defined - nobody will be able to login. Check your defaults. 2023-06-24 11:16:38.057 sogod[2131:2131] <MySQL4Channel[0x0x5572c1582b10] connection=0x0x5572c17d4950> SQL: SELECT c_defaults FROM sogo_user_profile WHERE c_uid = 'anonymous'; 2023-06-24 11:16:38.058 sogod[2131:2131] <MySQL4Channel[0x0x5572c1582b10] connection=0x0x5572c17d4950> query has results, entering fetch-mode.
Jun 24 11:16:38 sogod [2131]: |SOGo| request took 0.152470 seconds to execute
Jun 24 11:16:38 sogod [2131]: 79.140.187.148, 172.27.11.107 "GET /SOGo HTTP/1.1" 302 0/0 0.155 - - 6M - 12 Jun 24 11:16:44 sogod [2131]: |SOGo| starting method 'POST' on uri '/SOGo/saml2-signon-post' Jun 24 11:16:44 sogod [2128]: <0x0x5572c1604cf0[WOWatchDogChild]> child 2131 exited Jun 24 11:16:44 sogod [2128]: <0x0x5572c1604cf0[WOWatchDogChild]> (terminated due to signal 11) Jun 24 11:16:44 sogod [2128]: <0x0x5572c1543c80[WOWatchDog]> child spawned with pid 2135 2023-06-24 11:16:44.602 sogod[2135:2135] MySQL4 connection established 0x0x5572c168a150 2023-06-24 11:16:44.602 sogod[2135:2135] ---------- -[MySQL4Channel openChannel]: <MySQL4Channel[0x0x5572c155ae80] connection=0x0x5572c168a150> opens channel count[0] 2023-06-24 11:16:44.602 sogod[2135:2135] MySQL4 channel 0x0x5572c155ae80 opened (connection=0x0x5572c168a150,sogo) 2023-06-24 11:16:44.602 sogod[2135:2135] <MySQL4Channel[0x0x5572c155ae80] connection=0x0x5572c168a150> SQL: SELECT 1 FROM sogo_user_profile WHERE 1 = 2; 2023-06-24 11:16:44.603 sogod[2135:2135] <MySQL4Channel[0x0x5572c155ae80] connection=0x0x5572c168a150> query has results, entering fetch-mode. 2023-06-24 11:16:44.603 sogod[2135:2135] <MySQL4Channel[0x0x5572c155ae80] connection=0x0x5572c168a150> SQL: SELECT 1 FROM sogo_folder_info WHERE 1 = 2; 2023-06-24 11:16:44.603 sogod[2135:2135] <MySQL4Channel[0x0x5572c155ae80] connection=0x0x5572c168a150> query has results, entering fetch-mode. 2023-06-24 11:16:44.605 sogod[2135:2135] <MySQL4Channel[0x0x5572c155ae80] connection=0x0x5572c168a150> SQL: SELECT 1 FROM sogo_sessions_folder WHERE 1 = 2; 2023-06-24 11:16:44.605 sogod[2135:2135] <MySQL4Channel[0x0x5572c155ae80] connection=0x0x5572c168a150> query has results, entering fetch-mode. Jun 24 11:16:44 sogod [2135]: <0x0x5572c176b150[WOHttpAdaptor]> notified the watchdog that we are ready
---

I think the WOWatchDogChild kills for whatever reason the login process... Previously I got a this error:

---
sogo.log.1:2023-06-22 19:10:31.616 sogod[4831:4831] EXCEPTION: <NSException: 0x560f461a0690> NAME:NSInvalidArgumentException REASON:Tried to add nil value for key 'login' to dictionary INFO:{}
---

But after adding a login key (as a AttributeStatement Mapper/User Property) to the SAML answer the above error message is thrown.

I try to get the SAML login working with Debian bookworm and Keykoack 21.1.1.

---
dpkg -l | grep -e 'sogo\|sope'
ii libsope1 5.8.0-1 amd64 SKYRiX Object Publishing Environment (shared libraries) ii sogo 5.8.0-1 amd64 Scalable groupware server ii sogo-activesync 5.8.0-1 amd64 Scalable groupware server - ActiveSync module ii sogo-common 5.8.0-1 all Scalable groupware server - common files
---

My sogo.conf looks like this:

---
{
  SOGoDebugRequests   = YES;
  SoDebugBaseURL      = YES;
  SOGoEASDebugEnabled = YES;
  ImapDebugEnabled    = YES;
  LDAPDebugEnabled    = YES;
  MySQL4DebugEnabled  = YES;
  PGDebugEnabled      = YES;
  SOGoUIxDebugEnabled = YES;
  WODontZipResponse   = YES;

  /* Authentication */
  SOGoPasswordChangeEnabled = NO;

  /* Web Interface */
  SOGoPageTitle = SOGo;
  //SOGoVacationEnabled = YES;
  //SOGoForwardEnabled = YES;
  //SOGoSieveScriptsEnabled = YES;
  //SOGoMailAuxiliaryUserAccountsEnabled = YES;
  //SOGoTrustProxyAuthentication = NO;
  //SOGoXSRFValidationEnabled = YES;

  MySQL4Encoding          = "utf8mb4";
SOGoProfileURL = "mysql://user:[email protected]:3306/sogo/sogo_user_profile"; OCSFolderInfoURL = "mysql://user:[email protected]:3306/sogo/sogo_folder_info"; OCSSessionsFolderURL = "mysql://user:[email protected]:3306/sogo/sogo_sessions_folder"; OCSEMailAlarmsFolderURL = "mysql://user:[email protected]:3306/sogo/sogo_alarms_folder";

  SOGoLanguage = English;
  SOGoAppointmentSendEMailNotifications = YES;
  SOGoMailingMechanism = smtp;
  SOGoSMTPServer = 127.0.0.1;
  SOGoTimeZone = UTC;
  SOGoSentFolderName = Sent;
  SOGoTrashFolderName = Trash;
  SOGoDraftsFolderName = Drafts;
  SOGoIMAPServer = "imaps://dovecot.example.com:143/?tls=YES";
  SOGoSieveServer = "sieve://dovecot.example.com:4190/?tls=YES";
  SOGoIMAPAclConformsToIMAPExt = YES;
  SOGoFirstDayOfWeek = 0;
  SOGoMailMessageCheck = manually;
  SOGoMemcachedHost = 127.0.0.1;

  SOGoCacheCleanupInterval = 3600;

  NGImap4AuthMechanism            = PLAIN;
  SOGoForceExternalLoginWithEmail = YES;

  SOGoAuthenticationType          = saml2;
  SOGoSAML2PrivateKeyLocation     = "/etc/sogo/sogo-saml.key";
  SOGoSAML2CertificateLocation    = "/etc/sogo/sogo-saml.crt";
  SOGoSAML2IdpMetadataLocation    = "/etc/sogo/idp-metadata.xml";
  SOGoSAML2IdpPublicKeyLocation   = "/etc/sogo/idp.key";
  SOGoSAML2IdpCertificateLocation = "/etc/sogo/idp.crt";
  #SOGoSAML2IdpCertificateLocation = "/etc/ssl/certs/";
  SOGoSAML2LoginAttribute         = "username";
  SOGoSAML2LogoutEnabled          = YES;
  SOGoSAML2LogoutURL              = "https://sogo.example.com/";;
}

Anyone any ideas how to get SAML login working with SOGo?

FYI: The login to dovecot already works with Keycloak from Thunderbird.


---

Reply via email to