Subject: The mailing list for listmasters using Sympa
List archive
Re: [en@sympa] New Sympa build is unable to process Shibboleth SSO session from OKTA
- From: Mickey Bowling <address@concealed>
- To: IKEDA Soji <address@concealed>
- Cc: "address@concealed" <address@concealed>
- Subject: Re: [en@sympa] New Sympa build is unable to process Shibboleth SSO session from OKTA
- Date: Tue, 13 Aug 2024 15:37:17 -0700
Hi Soji,
Thanks for taking a look at this. The config files are below and the logs have been attached.
> How you have configured them? Please provide specific details of configuration for OKTA, Shibboleth SP, Apache HTTP Server and Sympa. Please be specific — not just writing "I set it up exactly as the documents say”.
##############################################################################
OKTA: created a custom SAML 2.0 app integration and assigned the application to myself and some testers. The settings were applied below and the remaining values were left as default.
##############################################################################
Audience URI: https://list.company.com/sympa
Name ID format: Persistent
Application username: Okta username
Attribute Statements: Name: emailAddress; Name format: Basic; Value: user.login
##############################################################################
##############################################################################
Sympa config: /etc/sympa/sympa.conf
##############################################################################
domain list.company.com
listmaster address@concealed
lang en-US
db_type PostgreSQL
db_name sympa
db_host localhost
db_port 5432
db_user sympauser
db_passwd some_password$
syslog LOCAL1
log_socket_type unix
log_level 2
sendmail_aliases /etc/sympa/sympa_transport
aliases_program postmap
aliases_db_type hash
##############################################################################
##############################################################################
Sympa Auth: /etc/sympa/auth.conf
##############################################################################
generic_sso
service_name Okta Login
service_id shibokta
http_header_list mail
email_http_header mail
logout_url https://company.okta.com
##############################################################################
##############################################################################
Shibboleth SP: /etc/httpd/conf.d/shib.conf
##############################################################################
ShibCompatValidUser Off
<Location /Shibboleth.sso>
AuthType None
Require all granted
</Location>
<IfModule mod_alias.c>
<Location /shibboleth-sp>
AuthType None
Require all granted
</Location>
Alias /shibboleth-sp/main.css /usr/share/shibboleth/main.css
</IfModule>
##############################################################################
##############################################################################
Sympa Httpd Config: /etc/httpd/conf.d/sympa.conf
##############################################################################
LoadModule alias_module modules/mod_alias.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
<IfModule mod_proxy_fcgi.c>
<Location /sympa>
SetHandler "proxy:unix:/var/run/sympa/wwsympa.socket|fcgi://localhost"
Require all granted
</Location>
</IfModule>
<Location "/static-sympa/css">
Require all granted
</Location>
<Location "/static-sympa/pictures">
Require all granted
</Location>
<Location /sympa/sso_login/shibokta>
AuthType shibboleth
ShibRequestSetting requireSession true
ShibRequestSetting applicationId app-sympa
require shibboleth
</Location>
<Location /static-sympa>
Require all granted
</Location>
Alias /static-sympa/css /var/lib/sympa/css
Alias /static-sympa/pictures /var/lib/sympa/pictures
Alias /static-sympa /usr/share/sympa/static_content
RewriteEngine on
RewriteRule ^/?$ /sympa [R=301]
##############################################################################
##############################################################################
Apache Httpd Config: /etc/httpd/conf/httpd.conf
##############################################################################
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User apache
Group apache
ServerAdmin root@localhost
<Directory />
AllowOverride none
Require all denied
</Directory>
DocumentRoot "/var/www/html"
<Directory "/var/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
<Files ".ht*">
Require all denied
</Files>
ErrorLog "logs/error_log"
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" combined
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule mime_module>
TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
AddDefaultCharset UTF-8
<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>
EnableSendfile on
<IfModule mod_http2.c>
Protocols h2 h2c http/1.1
</IfModule>
IncludeOptional conf.d/*.conf
<VirtualHost *:80>
ServerName list.company.com
ServerSignature Off
ErrorLog /var/log/httpd/redirect.error.log
LogLevel warn
RewriteEngine on
RewriteCond %{SERVER_NAME} =list.company.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
##############################################################################
##############################################################################
Shibboleth SP: /etc/shibboleth/shibboleth2.xml
##############################################################################
<SPConfig xmlns="urn:mace:shibboleth:3.0:native:sp:config"
xmlns:conf="urn:mace:shibboleth:3.0:native:sp:config"
clockSkew="180">
<OutOfProcess tranLogFormat="%u|%s|%IDP|%i|%ac|%t|%attr|%n|%b|%E|%S|%SS|%L|%UA|%a" />
<ApplicationDefaults entityID="https://list.company.com/sympa"
REMOTE_USER="eppn subject-id pairwise-id persistent-id"
cipherSuites="DEFAULT:!EXP:!LOW:!aNULL:!eNULL:!DES:!IDEA:!SEED:!RC4:!3DES:!kRSA:!SSLv2:!SSLv3:!TLSv1:!TLSv1.1">
<Sessions lifetime="28800" timeout="3600" relayState="ss:mem"
checkAddress="false" handlerSSL="true" cookieProps="https"
redirectLimit="exact">
<SSO entityID="http://www.okta.com/xxxxxxxxxxxxxxxxxxxx"
discoveryProtocol="SAMLDS" discoveryURL="https://company.okta.com/app/company_sympasaml_1/xxxxxxxxxxxxxxxxxxxx/sso/saml">
SAML2 SAML1
</SSO>
<Logout>SAML2 Local</Logout>
<LogoutInitiator type="Admin" Location="/Logout/Admin" acl="127.0.0.1 ::1" />
<Handler type="MetadataGenerator" Location="/Metadata" signing="false"/>
<Handler type="Status" Location="/Status"/>
<Handler type="Session" Location="/Session" showAttributeValues="true"/>
<Handler type="DiscoveryFeed" Location="/DiscoFeed"/>
</Sessions>
<Errors supportContact="root@localhost"
helpLocation="/about.html"
styleSheet="/shibboleth-sp/main.css"/>
<MetadataProvider type="XML" path="/etc/shibboleth/okta-metadata.xml">
</MetadataProvider>
<AttributeExtractor type="XML" validate="true" reloadChanges="false" path="attribute-map.xml"/>
<AttributeFilter type="XML" validate="true" path="attribute-policy.xml"/>
<CredentialResolver type="File" use="signing"
key="sp-signing-key.pem" certificate="sp-signing-cert.pem"/>
<CredentialResolver type="File" use="encryption"
key="sp-encrypt-key.pem" certificate="sp-encrypt-cert.pem"/>
<!-- Configuring Shibboleth via https://www.sympa.community/manual/customize/shibboleth.html -->
<ApplicationOverride id="app-sympa" entityID="https://list.company.com/sympa">
<Sessions lifetime="28800" timeout="3600" checkAddress="false" handlerSSL="true" cookieProps="https" >
<SSO discoveryProtocol="SAMLDS" discoveryURL="https://company.okta.com/app/company_sympasaml_1/xxxxxxxxxxxxxxxxxxxx/sso/saml">
SAML2 SAML1
</SSO>
</Sessions>
</ApplicationOverride>
</ApplicationDefaults>
<SecurityPolicyProvider type="XML" validate="true" path="security-policy.xml"/>
<ProtocolProvider type="XML" validate="true" reloadChanges="false" path="protocols.xml"/>
</SPConfig>
##############################################################################
##############################################################################
Shibboleth attribute-map.xml: /etc/shibboleth/attribute-map.xml
##############################################################################
<Attributes xmlns="urn:mace:shibboleth:2.0:attribute-map" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Attribute name="urn:oasis:names:tc:SAML:attribute:subject-id" id="subject-id">
<AttributeDecoder xsi:type="ScopedAttributeDecoder" caseSensitive="false"/>
</Attribute>
<Attribute name="urn:oasis:names:tc:SAML:attribute:pairwise-id" id="pairwise-id">
<AttributeDecoder xsi:type="ScopedAttributeDecoder" caseSensitive="false"/>
</Attribute>
<Attribute name="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" id="persistent-id">
<AttributeDecoder xsi:type="NameIDAttributeDecoder" formatter="$NameQualifier!$SPNameQualifier!$Name" defaultQualifiers="true"/>
</Attribute>
<Attribute name="emailAddress" nameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" id="mail"/>
</Attributes>
##############################################################################
##############################################################################
Shibboleth attribute-policy.xml: /etc/shibboleth/attribute-policy.xml
##############################################################################
<AttributeFilterPolicyGroup
xmlns="urn:mace:shibboleth:2.0:afp"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<PermitValueRule id="SympaUsers" xsi:type="ANY"/>
<AttributeFilterPolicy>
<PolicyRequirementRule xsi:type="ANY" />
<AttributeRule attributeID="*" permitAny="true"/>
</AttributeFilterPolicy>
</AttributeFilterPolicyGroup>
##############################################################################
> Please provide content of system logs for the software components above, _from when_ you clicked the login button _to when_ the home page was shown. Sensitive information may be masked.
Logs attached as sympa.log and shibh.log
> Please show the modified configuration for coresponding components and the logs in the same period as above.
I have reverted the change so I am not locking down the entire page. I can do this if needed but for now, I am only protecting the Okta login button.
> As the document shown at first says, Sympa should be provided user email address as user information. How have you configured to get these information?
Okta is passing over emailAddress, our auth.conf file is configured to accept that as mail is how I am understanding this to work.
On Mon, Aug 12, 2024 at 6:05 PM IKEDA Soji <address@concealed> wrote:
Hi Mickey,
At first, for Sympa configuration, at least the following document should have been read:
https://www.sympa.community/manual/customize/shibboleth.html
For OKTA and Shibboleth SP, also please read the documents provided by each.
> 2024/08/09 2:23、Mickey Bowling <address@concealed>のメール:
>
> Our environment:
>
> OS: Amazon Linux 2
> Sympa 6.2.72
> Apache 2.4.61
> Shibboleth 3.4.1
>
> We are using Shibboleth as the SP for Sympa application. Our IDP is OKTA. I have configured the Sympa OKTA application and Shibboleth to work using SAML2.
How you have configured them? Please provide specific details of configuration for OKTA, Shibboleth SP, Apache HTTP Server and Sympa. Please be specific — not just writing "I set it up exactly as the documents say”.
> At the moment I am able to initiate SP authentication (via a login button on Sympa) which takes me to OKTA to authenticate, then pass back over to Sympa and ends up on the home page, but not as the authenticated user.
Please provide content of system logs for the software components above, _from when_ you clicked the login button _to when_ the home page was shown. Sensitive information may be masked.
> I have also tried protecting the entire Sympa page by adding that as a protected directory. Doing so redirects me to OKTA when I land on the Sympa page. From there I am able to authenticate and it brings me back to Sympa landing page, but not as the authenticated user, but rather a non user. If a user is not assigned the application in OKTA, then they immediately get a notification that they are not assigned the application.
Please show the modified configuration for coresponding components and the logs in the same period as above.
> Does this mean that Shibboleth is getting a valid session from OKTA and Sympa doesn't know how to process this session?
As the document shown at first says, Sympa should be provided user email address as user information. How have you configured to get these information?
Regards,
— Soji
Attachment:
shibd.log
Description: Binary data
Attachment:
sympa.log
Description: Binary data
-
[en@sympa] New Sympa build is unable to process Shibboleth SSO session from OKTA,
Mickey Bowling, 08/08/2024
- Re: [en@sympa] New Sympa build is unable to process Shibboleth SSO session from OKTA, Mickey Bowling, 08/12/2024
-
Re: [en@sympa] New Sympa build is unable to process Shibboleth SSO session from OKTA,
IKEDA Soji, 08/13/2024
-
Re: [en@sympa] New Sympa build is unable to process Shibboleth SSO session from OKTA,
Mickey Bowling, 08/13/2024
-
Re: [en@sympa] New Sympa build is unable to process Shibboleth SSO session from OKTA,
IKEDA Soji, 08/14/2024
-
Re: [en@sympa] New Sympa build is unable to process Shibboleth SSO session from OKTA,
Mickey Bowling, 08/14/2024
-
Re: [en@sympa] New Sympa build is unable to process Shibboleth SSO session from OKTA,
IKEDA Soji, 08/16/2024
- [en@sympa] unsubscrbe!, Frank Spade, 08/17/2024
-
Re: [en@sympa] New Sympa build is unable to process Shibboleth SSO session from OKTA,
IKEDA Soji, 08/16/2024
-
Re: [en@sympa] New Sympa build is unable to process Shibboleth SSO session from OKTA,
Mickey Bowling, 08/14/2024
-
Re: [en@sympa] New Sympa build is unable to process Shibboleth SSO session from OKTA,
IKEDA Soji, 08/14/2024
-
Re: [en@sympa] New Sympa build is unable to process Shibboleth SSO session from OKTA,
Mickey Bowling, 08/13/2024
Archive powered by MHonArc 2.6.19+.