This topic describes how to integrate the ADFS IdP with Carbon Black EDR.
Prerequisites
To configure ADFS, refer to your Microsoft documentation.
Procedure
- Acquire metadata XML from the ADFS IdP and place it in the
/etc/cb/ssodirectory on the Carbon Black EDR server host. (You are not required to use this directory, but it is a good default location.) - On the Carbon Black EDR server, navigate to
/etc/cb/ssoand:- Copy /etc/cb/sso/sso.conf.example.adfs to /etc/cb/sso/sso.conf.
- Copy attr_map.py.example.adfs to attr_map.py.
Note:
Make appropriate changes to the attr_map.py file based on the attributes that are returned from ADFS. Each configurable property is accompanied with inline documentation in the attr_map.py file to assist with this process.
- In the /etc/cb/sso/sso.conf file:
Caution:
The syntax of this configuration file must fully conform to the JSON data-interchange format. Failure to do so can create an invalid configuration file, which prevents the
cb-coreservicesservices from launching properly. When changes are made to this file andcb-enterpriseis restarted, check / var/log/cb/coreservices/debug.log to make sure that there are no errors.- Specify the file path to the location of the metadata XML from the ADFS IdP. For example:
"metadata": { "local": [ "<file path to location of IdP XML>" ] }, - Make sure the
attribute_mapperfield has the path to the Python Mapper file:"attribute_mapper": "/etc/cb/sso/attr_map.py", - Change the
accepted_time_difffield if needed:"accepted_time_diff": 600,
- Update the
service/sp/idpsection with the appropriate appid from the ADFS IdP. For example:"service": { "sp": { "idp": { # EntityId of the IDP "https://fakeipd.example.com": { - Update the
single_sign_on_serviceandsingle_logout_servicesections with the appropriate name and appid from the ADFS IdP For example:# URLs in this section MUST be updated to match the URLs defined # by the IdP you are integrating with "single_sign_on_service": { "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect": "https://fakeipd.adfs.com/adfs/ls/" }, "single_logout_service": { "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect": "https://fakeipd.adfs.com/adfs/ls/?wa=wsignout1.0" } - In the
endpointssection, update theassertion_consumer_serviceandsingle_logout_servicefields with the appropriate IP address of FQDN of Carbon Black EDR. For example:"endpoints": { "assertion_consumer_service": { "https://<IP Address or FQDN of the EDR Server>/api/saml/ assertion":"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" }, "single_logout_service": { "https://<IP Address or FQDN of the EDR Server>/api/saml/ logout": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" } }, - Update the
entityidfield with the appropriate IP address or FQDN of the Carbon Black EDR server. For example:"entityid": "https://<IP Address or FQDN of the EDR Server>/",
- Search the sso.conf file for “TODO” and ensure that all “TODO” tasks are completed.
- Specify the file path to the location of the metadata XML from the ADFS IdP. For example:
- Open the /etc/cb/cb.conf file and edit the
SSOConfigproperty so that it contains the full path to the SSO configuration file created in the previous steps. This single property defines whether Carbon Black EDR server will be started in standalone or federated authentication mode.Note:To deactivate SSO integration, comment out the
SSOConfigproperty. - Generate the Carbon Black EDR server’s SSO service provider metadata XML file by issuing the following command:
/usr/share/cb/cbssl sso --make-metadata > /<your file path>
- Give the file to the IdP to complete the trust.
- Restart the Carbon Black EDR server by issuing the following command:
sudo service cb-enterprise restart