WSO2 IS is an API-driven open source IAM product designed to help you build effective CIAM solutions. It is based on open standards such as SAML, OAuth and OIDC with the deployment options of on-premise, cloud, and hybrid. It supports complex IAM requirements given its high extensibility.
- JDK version 1.8 or newer.
cd /opt
wget https://github.com/wso2/product-is/releases/download/v5.11.0/wso2is-5.11.0.zip
unzip wso2is-5.11.0.zip
- Using a text editor to open /opt/wso2is-5.11.0/repository/conf/deployment.toml file.
- Edit
hostname
andnode_ip
under[server]
section
[server]
hostname = "your id server hostname"
node_ip = "your id server ip address"
- Edit
username
andpassword
under[super_admin]
section
[super_admin]
username = "your admin user"
password = "your admin password"
- Add following content like that.
[cors]
allow_generic_http_requests = true
allow_any_origin = false
allowed_origins = [
"https://your-zimbra-hostname"
]
allow_subdomains = false
supported_methods = [
"GET",
"POST",
"HEAD",
"OPTIONS"
]
support_any_header = true
supported_headers = []
exposed_headers = []
supports_credentials = true
max_age = 3600
tag_requests = false
cd /opt/wso2is-5.11.0/
./bin/wso2server.sh start
- Sign in to WSO2 Identity Server Management Console as an admin by visiting url
https://your-id-server-hostname:9443
from your web browser. - On the Main menu, click Identity > User Stores > Add. Fill in Add New User Store form like that
- Click Add button to add ldap user store
- On the Main menu, click Identity > Users and Roles > List
- Click Users to list users from ldap
- Sign in to WSO2 Identity Server Management Console as an admin by visiting url
https://your-id-server-hostname:9443
from your web browser. - On the Main menu, click Identity > Service Providers > Add
- Enter Service Provider Name and click Register to add service provider
- Export untrusted ssl certificate to the file:
openssl s_client -servername your-id-server-hostname -connect your-id-server-hostname:9443 </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' >/path/to/wso2-is.pem
- Execute following commands under the
zimbra
user:
zmcertmgr addcacert /path/to/wso2-is.pem
zmprov -l mcf +zimbraCsrfAllowedRefererHosts your-id-server-hostname
zmmailboxdctl restart
- Using a text editor to open /opt/zimbra/conf/zm.sso.properties file.
- Set sso.defaultClient to
SAML2Client
- Set sso.callbackUrl to
https://your-zimbra-hostname/service/extension/sso/callback
- Set saml.callbackUrl to
https://your-zimbra-hostname/service/extension/saml/callback
- Set sso.postLogoutURL to
https://your-zimbra-hostname/
- Set saml.identityProviderMetadataPath to
https://your-id-server-hostname:9443/identity/metadata/saml2
- Restart mailbox under
zimbra
user:zmmailboxdctl restart
- Download SAML service provider metadata at
https://your-zimbra-hostname/service/extension/saml/metadata
tometadata.xml
. - Sign in to WSO2 Identity Server Management Console as an admin by visiting url
https://your-id-server-hostname:9443
from your web browser. - On the Main menu, click Identity > Service Providers > List
- Click on Edit link that corresponds to the service provider for Zimbra Mail Server
- On Inbound Authentication Configuration -> SAML2 Web SSO Configuration, click Configure
- Choose Metadata File Configuration, upload service provider metadata file (
metadata.xml
). Click Upload to register new SAML srvice provider - On Inbound Authentication Configuration -> SAML2 Web SSO Configuration, click Edit
- Fill NameID format with
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
- Check Enable Response Signing and Enable Single Logout
- Fill SLO Response URL and SLO Request URL with
https://your-zimbra-hostname/service/extension/saml/callback?client_name=SAML2Client&logoutendpoint=true
- Check Enable Attribute Profile and Include Attributes in the Response Always
- Click Update to update SAML service provider configuration
- Testing service provider metadata by visiting url
https://your-zimbra-hostname/service/extension/saml/metadata
from your web browser. - Testing single sign on by visiting url
https://your-zimbra-hostname/service/extension/saml/login
from your web browser. - Testing logout & single logout (SLO) by visiting url
https://your-zimbra-hostname/service/extension/sso/logout
from your web browser.
- Execute following commands with the
zimbra
user:
zmprov mcf zimbraWebClientLoginURL https://your-zimbra-hostname/service/extension/saml/login
zmprov mcf zimbraWebClientLogoutURL https://your-zimbra-hostname/service/extension/sso/logout
zmmailboxdctl restart
- Sign in to WSO2 Identity Server Management Console as an admin by visiting url
https://your-id-server-hostname:9443
from your web browser. - On the Main menu, click Identity > Service Providers > List
- Click on Edit link that corresponds to the service provider for Zimbra Mail Server
- On Inbound Authentication Configuration -> OAuth/OpenID Connect Configuration, click Configure
- Fill Callback Url with
regexp=https://your-zimbra-hostname(.*)
- Check Enable OIDC Backchannel Logout and fill Backchannel Logout Url with
https://your-zimbra-hostname/service/extension/oidc/callback?client_name=OidcClient&logoutendpoint=true
- Using a text editor to open /opt/zimbra/conf/zm.sso.properties file.
- Set sso.defaultClient to
OidcClient
- Set sso.callbackUrl to
https://your-zimbra-hostname/service/extension/sso/callback
- Set oidc.callbackUrl to
https://your-zimbra-hostname/service/extension/oidc/callback
- Set sso.postLogoutURL to
https://your-zimbra-hostname/
- Set oidc.discoveryUri to
https://your-id-server-hostname:9443/oauth2/oidcdiscovery/.well-known/openid-configuration
- Set oidc.id to
OAuth Client Key
- Set oidc.secret to
OAuth Client Secret
- Restart mailbox under
zimbra
user:zmmailboxdctl restart
Notes: You can get OAuth Client Key
and OAuth Client Secret
from Inbound Authentication Configuration -> OAuth/OpenID Connect Configuration on OpenID Connect service provider that you configured
- Testing single sign on by visiting url
https://your-zimbra-hostname/service/extension/oidc/login
from your web browser. - Testing logout & single logout (SLO) by visiting url
https://your-zimbra-hostname/service/extension/sso/logout
from your web browser.
- Execute following commands with the
zimbra
user:
zmprov mcf zimbraWebClientLoginURL https://your-zimbra-hostname/service/extension/oidc/login
zmprov mcf zimbraWebClientLogoutURL https://your-zimbra-hostname/service/extension/sso/logout
zmmailboxdctl restart