Icam Implementation Guide Final Version - 092019
Icam Implementation Guide Final Version - 092019
Management (ICAM)
Implementation Guidance
Science and Technology Directorate
Primary Authors PUBLIC SAFETY COMMUNICATIONS
Christine Owen IDENTITY, CREDENTIAL, AND ACCESS MANAGEMENT
Larry Kroll
WORKING GROUP
Chris Price
Nyleena Roberts
Contributing Organizations
Oasys International Corporation
Department of Homeland
Security (DHS) Science and Identity, Credential, and Access
Technology Directorate
Partner Engagement-
Management (ICAM) Implementation
Information Sharing
Environment (PE-ISE)
Guidance
DHS Office of Emergency
Communications (OEC) February 2019
First Responder Network
Authority (FirstNet)
Federal Communication
Commission (FCC)
National Institute for Science Version 2
and Technology Public Safety
Communications Research
Division (NIST PSCR)
ICAM Implementation Guidance v.2
The Identity, Credential, and Access Management (ICAM) document series is dedicated to the memory of
Tom Sorley. Tom was a member of the executive leadership of the Public Safety Communications ICAM
Working Group, which sponsored this document. He was the Chief Information Officer and Deputy
Director of the Information Technology Department for Public Safety for the City of Houston, Texas, and
National Chair of the Public Safety Advisory Committee (PSAC). Tom was a thought leader in public
safety communications and his vision is reflected in this ICAM Educational Series.
ICAM Implementation Guidance v.2
DISCLAIMER OF LIABILITY
The Identity, Credential, and Access Management (ICAM) Educational Series is provided by the Public
Safety Communications ICAM Working Group (PSC ICAM WG) “as is” with no warranty of any kind,
either expressed or implied, including, but not limited to, any warranty of merchantability or fitness for a
particular purpose. This material is provided to support the efforts of public safety information sharing,
situational awareness and key decision making. These documents are intended to guide users for making
informed decisions on improving the security posture of their information systems by using ICAM
principles.
The ICAM Educational Series is intended to provide guidance for implementing ICAM principles, and
does not contain or infer any official requirements, policies, or procedures, nor does it supersede any
existing official emergency operations planning guidance or requirements documents. As a condition of
the use of the Series, the recipient agrees that in no event shall the United States Government or its
contractors or subcontractors be liable for any damages, including but not limited to, direct, indirect,
special or consequential damages, arising out of, resulting from, or in any way connected to the Series or
the use of information from the Series for any purpose. It is recommended that organizations align their
resources with tools that would best fit their infrastructure as well as their own standards and
requirements.
The PSC ICAM WG, and DHS S&T does not endorse any commercial product or service referenced in
the ICAM Educational Series, either explicitly or implicitly. Any reference herein to any specific
commercial product, process, or service by service mark, trademark, manufacturer, or otherwise, does
not constitute or imply its endorsement, recommendation, or favoring by the PSC ICAM WG. The views
and opinions of authors expressed herein do not necessarily state or reflect those of the PSC ICAM WG
and shall not be used for advertising or product endorsement purposes.
i
ICAM Implementation Guidance v.2
EXECUTIVE SUMMARY
The Department of Homeland Security (DHS) Science and Technology Directorate (S&T) created
systems by implementing Identity, Credential, and Access Management (ICAM) products within a
sandbox for the Public Safety Communications (PSC) ICAM Working Group (WG). This document
provides Implementation Guides for Public Safety Community (Community) solution architects to
enhance existing ICAM efforts. These Implementation Guides provide instructions for building individual
ICAM components within an organization’s system.
The Community’s goal is to have the ability to appropriately share critical information among its
members, which can aid in saving lives and protecting property. This critical information is at times
highly sensitive and can include law enforcement information, as well as personally identifiable
information (PII) and protected health information, so each organization must have assurance the right
person with the right credentials is accessing information at the right time. This is where ICAM comes in.
To support the Community with its mission-critical tasks, ICAM addresses the growing data
management, interoperability and cybersecurity challenges facing public safety today. ICAM solutions,
especially federated ones, align public safety communities around common identity and access
management practices.
It is essential for important for Community members who are sharing information between different
organizations to make sure the information does not fall into the wrong person’s hands. ICAM provides
identity proofing for an organization’s employees and volunteers, providing strong credentials for system
access and enabling the use of multifactor authentication, using attributes to provision resources, and
creating strong access management all help an organization ensure that the right person is accessing an
organization’s information through a secure and seamless federation.
The intent of this document is to provide implementation guides for ICAM-enabled systems. This
document does not recommend specific ICAM products, but does strive to create useable aids for the
implementation of ICAM products and encourage the adoption of multifactor authentication with a focus
on the use of open source products. This document is paired with the ICAM Executive Primer, ICAM
Acquisition Guidance and ICAM Federation System Checklist.
ii
ICAM Implementation Guidance v.2
Intended Audience
This document provides guidance to implement ICAM products. The document teaches each of the
following stakeholders 1 about ICAM solutions:
Executive Leadership …is the responsible authority for the department, state or ICAM
agency’s fiscal and human resources for ICAM investments. Executive
This stakeholder group will use the document to understand the Primer
importance of ICAM investments, and to translate the value
proposition of ICAM solutions to their mission needs.
ICAM
Program Managers …are responsible for the operational implementation and
Executive
oversight of ICAM capabilities to ensure they meet the
Primer,
functional mission requirements defined by the intended users.
ICAM
They must communicate to both the executive leadership and
Acquisition
solutions architects to ensure understanding and expectations of
Guidance
the requirements for interoperable ICAM investments. Managers
& ICAM
are required to quantify the benefit and resource impacts,
Federation
including cost and integration savings, to executive leadership to
System
ensure continued support and resource sustainment. This
Checklist
document provides program managers with a description of the
key capabilities, processes, services, infrastructure, standards
and procurement language samples that are required of an
interoperable ICAM architecture solution.
This
Solution Architects …are responsible for acquisition requirements and the
document,
design/development/integration of ICAM solutions in
ICAM
accordance with their respective organization’s enterprise
Executive
architecture technical and management requirements. The
Primer,
solution architects will be required to compare and quantify the
ICAM
technical implementation options, alternatives and cost
Acquisition
constraints to the program managers. This document provides
Guidance
structured technical guidance and reference artifacts to assist in
& ICAM
achieving an ICAM-enabled system.
Federation
System
Checklist
1
Each stakeholder’s responsibilities were adopted from the Information Sharing Environment Geospatial
Interoperability Reference Architecture (GIRA), available at
https://www.dni.gov/files/ISE/documents/DocumentLibrary/GIRA.pdf.
iii
ICAM Implementation Guidance v.2
CONTENTS
Disclaimer of Liability .........................................................................................................................i
Executive Summary ............................................................................................................................ ii
Contents............................................................................................................................................ iv
Table of Figures .................................................................................................................................v
1 Introduction .................................................................................................................................1
1.1 Purpose............................................................................................................................1
1.2 Background .....................................................................................................................1
1.3 Approach .........................................................................................................................2
1.4 Enabling Multifactor Authentication ..................................................................................2
1.5 How to Use......................................................................................................................2
1.6 What is in this Document ..................................................................................................3
2 Active Directory Federated Services (ADFS) Implementation Guide ...............................................5
2.1 Prerequisites ....................................................................................................................6
2.2 Installing AuthLite on the AD FS system...........................................................................7
2.3 Enable AuthLite on AD FS ...............................................................................................9
2.4 Create AuthLite Groups in AD FS ................................................................................... 12
2.5 Logging in with AuthLite Multifactor Authentication ....................................................... 16
3 Shibboleth IdP 3 & SP 2 Implementation Guide........................................................................... 17
3.1 Prerequisites .................................................................................................................. 19
3.2 Configuring the IdP Server.............................................................................................. 22
3.3 Configuring the SP Server for the IdP Server ................................................................... 24
3.4 Final IdP Configuration .................................................................................................. 25
3.5 Installing and Configuring the Shibboleth SP ................................................................... 27
3.6 Configuring Duo as a Second Factor Credential for Shibboleth ......................................... 28
4 Keycloak Implementation Guide.................................................................................................. 31
4.1 Keycloak Install and Initial Configuration ........................................................................ 32
4.2 Keycloak User Federation and Configuration ................................................................... 33
4.3 Adding a Client to Keycloak ........................................................................................... 35
4.4 Configure Keycloak as the MFA Provider for Slack ......................................................... 36
4.5 Enabling Multifactor Authentication using Keycloak ........................................................ 37
5 Duo Access Gateway Implementation Guide ................................................................................ 39
5.1 Install and Configure DAG ............................................................................................. 40
5.2 Connect Cloud Applications............................................................................................ 40
iv
ICAM Implementation Guidance v.2
TABLE OF FIGURES
Figure 1 - Steps to Secure and Seamless Information Sharing (Federation) ............................................. ii
Figure 2 - System Configured for Multifactor Authentication Using Yubikey HMAC-based one-time
password, AuthLite & MS Windows Active Directory. .........................................................................5
Figure 3 - System Configured for Multifactor Authentication Using Duo TOTP (Time-based One-Time
Password), Shibboleth IdP, Shibboleth SP & MS Windows Active Directory. ...................................... 17
Figure 3 - System Configured for Multifactor Authentication Using Duo Google Authenticator, Keycloak
& MS Windows Active Directory. ..................................................................................................... 31
Figure 4 - Duo Access Gateway SSO ................................................................................................. 39
Figure 5 - Okta Identity Cloud SSO Build Architecture ....................................................................... 41
v
ICAM Implementation Guidance v.2
1 INTRODUCTION
This document serves as a source of Identity, Credential, and Access Management (ICAM)
Implementation Guides resulting from the evaluation of publicly available documents and the
implementation of ICAM-enabled systems in a sandbox. The ICAM landscape is complex and there are
many elements to consider, particularly when determining organizational policies and system
interoperability. ICAM policies are important to have in enabling technology to share data within a wide
variety of applications, including an organization’s existing legacy systems as well as emerging
nationwide initiatives, such as the Nationwide Public Safety Broadband Network (NPSBN), Next
Generation 911 services and the First Responder Network Authority (FirstNet).
While this document is focused on assisting state, local, tribal and territorial (SLTT) Public Safety
Community (Community) entities in improving their system’s security posture so they can safely and
securely share information with each other, this document can be used by any organization implementing
the products discussed within this document. Instead of considering both single and multifactor
authentication, this document focuses on implementing multifactor authentication on an organization’s
systems. Adopting multifactor authentication when upgrading an ICAM-enabled system is highly
recommended for any organization, but it is especially recommended based on a risk assessment of the
typical information stored in the Community’s systems. This document is the third of a series of ICAM
educational tools, including the ICAM Executive Primer, ICAM Acquisition Guidance and ICAM
Federation System Checklist.
1.1 PURPOSE
The goal of this document is to enable any organization, including the SLTT Community, to spend its
resources wisely on thoughtful and well-specified ICAM products to support information sharing and
fortified authentication capabilities. This document provides ICAM implementation guides for the
Community and seeks to leverage existing efforts to avoid duplication and maximize the value of existing
ICAM products and solutions. While it does use specific vendors to complete the builds, this document
does not endorse any specific vendor, technology or software. The implementation guidance within this
document aids the Community in creating ICAM-enabled systems and adopting multifactor
authentication. Further, each organization is responsible for its own cybersecurity measures, and they
should make decisions based on their own requirements, laws and expertise on the subject.
1.2 BACKGROUND
The Public Safety Communications Identity, Credential, and Access Management Working Group (PSC
ICAM WG) is a subsidiary group of the Information Sharing Council (ISC) with a Federal Advisory
Committee Act (FACA) exempt status under Section 1016(g)(4) of the Intelligence Reform and
Terrorism Prevention Act of 2004 (as amended). Its members include the Department of Homeland
Security (DHS) Science and Technology Directorate (S&T), Partner Engagement Information Sharing
Environment (PE-ISE), DHS Office of Emergency Communications (OEC), FirstNet, as well as National
Institute of Standards and Technology (NIST) Public Safety Communications Research Division (PSCR).
The PSC ICAM WG supports the ISC in fulfilling the ISC’s duties (with a focus on public safety)
pertaining to the interchange of information between public safety agencies by addressing policy,
governance, standards, technology and acquisition guidance on ICAM capabilities for the Community.
1
ICAM Implementation Guidance v.2
1.3 APPROACH
Through outreach to various communities (including FirstNet stakeholders, the Federal ICAM
Subcommittee, DHS Cybersecurity and the Office of the Director of National Intelligence’s Sensitive But
Unclassified [SBU] Technical Advisory Committee [STAC]) and utilization of the capabilities at the
DHS S&T, the PSC ICAM WG gathered existing ICAM-related documents, performed research and
collected information. This information provided the background for building ICAM-enabled systems in a
test environment (i.e., sandbox), the result of which was distilled into this implementation guide.
2
Most public safety communications systems, radio sites, public safety facilities, data centers and radios are
physically secured against internal and external threats.
3
Verizon Enterprise Solutions, 2017 Data Breach Investigations Report, which can be found at
http://www.verizonenterprise.com/verizon-insights-lab/dbir/2017/.
2
ICAM Implementation Guidance v.2
Acquisition Guidance is the second in the series. It gives an overview to program managers of what to
look for while acquiring ICAM products and advises solutions architects about lessons learned from
sandbox builds of ICAM-enabled systems with multifactor authentication. The series ends with an ICAM
Federation System Checklist, which includes five topics that should be addressed by a system owner
before federating a system. This series also contains several helpful sections and appendices, including
reference architecture, implementation guidance and procurement language.
This document was developed by the DHS-established PSC ICAM WG; questions and comments can be
sent to DHS S&T at: [email protected].
3
ICAM Implementation Guidance v.2
Active Directory Federated Services (ADFS) Implementation Guide used low-cost products. The
Shibboleth IdP 3 & SP 2 used a free, open source product that was mentioned on the Global Federation
Identity and Privilege Management (GFIPM) website. The Duo Access Gateway (DAG) and Okta IdP
Implementation Guides are both cloud-based commercial products.
Based on the installation procedures and associated outcomes of these builds, PSC ICAM WG created the
below reference architecture and Implementation Guides. In no way does the PSC ICAM WG endorse or
favor the vendors and software implemented below. These guides are for educational purposes only. And
as such, each organization is responsible for its own cybersecurity measures, and should make decisions
based on the requirements, laws and expertise of the organization.
4
ICAM Implementation Guidance v.2
Figure 2 - System Configured for Multifactor Authentication Using Yubikey HMAC-based one-time password,
AuthLite & MS Windows Active Directory.
AuthLite is a two-factor authentication tool that can operate on Windows and Active Directory (AD).
This build was conducted in an Amazon Web Services (AWS) environment and, as such, its guide
contains implementation instructions specific to AWS. This build was configured in conjunction with
Active Directory Federated Services (AD FS) to extend AuthLite’s federation capabilities. AD FS is a
Microsoft component that can be installed to provide Simplified Sign-on (SSO) to applications across
organizational boundaries. AD does not natively support multifactor authentication, so AuthLite was used
as a middleware to provide multifactor authentication.
For the purposes of this guide, we used Google Authenticator as a one-time password (OTP) token for the
second factor. AuthLite can also be configured to use a Yubikey as a credential. The Yubikey, a FIDO
Alliance-approved credential, is a hard token that can be plugged into a universal serial bus (USB) port or
used with another near field communication (NFC) device and touched to release a certificate. Its cost
varies on the type of Yubikey chosen and the device can be configured several different ways – it could
be used as a single-factor authenticator, as an OTP device, or even as a public key infrastructure token. In
this build, the Yubikey is configured for two-factor authentication as a keyed-hash message authentication
code (HMAC)-based one-time password.
To use the Yubikey in an AWS environment, USB hardware needs to be accessible by the Amazon
Elastic Compute Cloud (EC2) instances. One way to accomplish this is by setting up a publicly accessible
virtual private network (VPN) tunnel into AWS. Because USB credentials cannot be passed through
5
ICAM Implementation Guidance v.2
directly to EC2 instances, this allows the user to provide two authentication factors to gain access to the
VPN (or virtual private cloud (VPC) in this case). In this build, OpenVPN was chosen for this purpose
and setup to use a Microsoft domain controller as its user directory. AuthLite is relatively inexpensive and
interacts seamlessly with the Yubikey and AD. In this build, Yubikey and AD username/password
provide the two factors needed to access the VPC via the OpenVPN (and AuthLite) software.
2.1 PREREQUISITES
• Register your Windows Server 2012 server as a member server on a preexisting domain.
• The ADFS configuration requires a publicly trusted certificate for secure sockets layer (SSL)
server authentication according to the following guidelines located here on the Microsoft
website.
• Follow Microsoft’s installation guide to deploy ADFS and configure it for your domain.
6
ICAM Implementation Guidance v.2
1. Download and/or copy the most recent version of AuthLite to a folder located on the local server.
2. Open Command Prompt as an administrator and run the installer through the command line.
7
ICAM Implementation Guidance v.2
8
ICAM Implementation Guidance v.2
2. Click on License Information from the Left Navigation. Request an AuthLite License Key.
OR
9
ICAM Implementation Guidance v.2
4. Click the Add process button. Enter IdentityServer in the text box. Click OK.
10
ICAM Implementation Guidance v.2
11
ICAM Implementation Guidance v.2
1. Open Active Directory Users and Computers. This can be opened from the Tools menu in the
Server Manager. Select Active Directory Users and Computers from the dropdown.
2. Create the following three Global Security Groups in your Domain. The Security Group names are
specific and case sensitive:
a. AuthLite Users
b. AuthLite 1F Tag
c. AuthLite 2F Tag
3. Add any Users you wish to be managed by AuthLite to the AuthLite Users group.
4. Users in the AuthLite Users group must be provided with a multifactor token. Multifactor tokens can
be created from Setup an OATH Token under Management Tasks in the left navigation pane.
Note: Users can be managed within the AuthLite Token Manager tool.
12
ICAM Implementation Guidance v.2
5. Add the AuthLite Users group as a Member of the AuthLite 1F Tag group. This ensures that all
members of the AuthLite users group are also members of the AuthLite 1F Tag group.
6. Set the domain administrators group to Deny on Write for both the AuthLite 1F Tag and AuthLite 2F
Tag groups. This is preventative but not required. AuthLite should be allowed to assign these
permissions dynamically.
a. Click the AuthLite User Group Pairs item on the left navigation panel
13
ICAM Implementation Guidance v.2
c. Add the previously created AuthLite 1F and 2F Tag Security Groups to their relevant fields. Click
OK
14
ICAM Implementation Guidance v.2
15
ICAM Implementation Guidance v.2
References
AD FS Requirements. (2018, March 05). Retrieved from Microsoft.com: https://docs.microsoft.com/en-
us/windows-server/identity/ad-fs/overview/ad-fs-requirements#BKMK_1
Certificate Requirements for Federation Servers. (2017, May 30). Retrieved from Microsoft.com:
https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/design/certificate-requirements-
for-federation-servers
Use Group Policy to enforce 2-factor on Windows servers/workstations. (2018). Retrieved from
AuthLite.com: https://www.authlite.com/docs/2_3/id_1587484890/
16
ICAM Implementation Guidance v.2
Figure 3 - System Configured for Multifactor Authentication Using Duo TOTP (Time-based One-Time
Password), Shibboleth IdP, Shibboleth SP & MS Windows Active Directory.
Shibboleth is a federated identity solution that provides simplified sign-on (SSO) capabilities, along with
multifactor authentication. Because the GFIPM website provides a link to implementation documentation
for Shibboleth (a free, open source product), in this build Shibboleth was used as an identity provider and
simplified sign-on solution, as well as a service provider.
This build includes a time-based one-time password (TOTP) credential on your phone. Duo was chosen
as the credential provider because it interoperates with Shibboleth and is free for up to 10 users. Duo’s
mobile phone TOTP application allows for a six-digit number found on the phone, a phone call, or a
button that pops up on your phone to prove you with the credential.
17
ICAM Implementation Guidance v.2
ABOUT
This implementation guide has been created to assist organizations with installing and configuring
Shibboleth IdP 3 and SP 2 to authenticate users over Lightweight Directory Access Protocol (LDAP)
against Microsoft AD. Additionally, it outlines how to add a second factor to authentication using Duo
TOTP. While researching Shibboleth, it was found that much of the publicly available documentation for
installing and configuring Shibboleth was not straightforward, especially for those who may be unfamiliar
with the software. This guide is for implementation of Shibboleth software in an AWS cloud
environment, and should be used as a reference in conjunction with the current publicly available
Shibboleth documentation. Throughout this guide, links have been provided to offer additional assistance
and information.
WHAT IS THE SHIBBOLETH SOFTWARE?
This step-by-step guide provides detailed instructions on how to successfully implement the Shibboleth
software components in an AWS cloud environment. The Shibboleth software is a web-based SSO
system made up of three components:
• The IdP is responsible for user authentication and providing user information to the SP. It is
located at the home organization, which is the organization that maintains the user’s account.
• The SP is responsible for protecting an online resource and consuming information from the IdP.
It is located at the resource organization, which is the organization that keeps records that will be
shared.
• The Discovery Service (DS) helps the SP discover the user’s IdP. It may be located anywhere on
the web and is not required in all cases. 4
Shibboleth has two major halves: an IdP and a SP. The IdP supplies information about users to
applications, and the SP gathers information about users to protect resources. In the typical use case, a
web browser accesses a protected resource, authenticates at the identity provider and once authenticated,
is logged into the resource. 5
4
Shibboleth Concepts, available at https://wiki.shibboleth.net/confluence/display/CONCEPT.
5
Shibboleth Wiki: Flows and Configs, https://wiki.shibboleth.net/confluence/display/CONCEPT/FlowsAndConfig.
6
How Shibboleth Works: Basic Concepts, https://www.shibboleth.net/index/basic.
18
ICAM Implementation Guidance v.2
3.1 PREREQUISITES
You will need to create at least a three server networks for this configuration – an IdP, an SP, and an AD
server. The servers should have a base hardware spec of 2GB+ of RAM and 160GB of Storage. All
guides are written using Windows Server 2012 as the Operating System.
Follow Microsoft’s installation guide to add the Certificate Services role to your AD server.
19
ICAM Implementation Guidance v.2
3. Select the Certificate that has the name of your AD Domain. Right click and select Export from
All Tasks.
20
ICAM Implementation Guidance v.2
4. Press Next and save the certificate (Choose a name easy to remember and find, i.e., ADCERT).
5. Copy the newly created file to the IdP desktop through the Remote Desktop clipboard
functionality.
21
ICAM Implementation Guidance v.2
22
ICAM Implementation Guidance v.2
6. Click Next.
2. Provide answers to the questions asked when creating the certificate store.
a. Enable secure sockets layer (SSL) by adding the following connector to server.xml:
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="<PATH TO KEYSTORE>" keystorePass="<PASSWORD>"
clientAuth="false" sslProtocol="TLS"/>
23
ICAM Implementation Guidance v.2
swallowOutput="true">
24
ICAM Implementation Guidance v.2
25
ICAM Implementation Guidance v.2
metadataFile="C:/opt/shibboleth-idp/metadata/<sp servername>-
metadata.xml" />
5. From your browser, launch https://<sp server>/Shibboleth.sso/Metadata.
6. Save the xml content that is returned to C:/opt/shibboleth-idp/metadata/<sp server>-
metadata.xml.
7. Add connection to your SSL certificate in the ldap.properties file on the IdP server, add
certificate file we previously placed on the desktop, and make sure the user and password in
the file are the AD Admin user we created in the previous steps.
8. Rebuild the WAR by running build.bat again.
9. Restart Tomcat service.
26
ICAM Implementation Guidance v.2
27
ICAM Implementation Guidance v.2
<util:map id="shibboleth.authn.MFA.TransitionMap">
<!-- First rule runs the Password login flow. -->
<entry key="">
<bean parent="shibboleth.authn.MFA.Transition"
p:nextFlow="authn/Password" />
</entry>
<!-- Second rule runs a function if Password succeeds, to determine
whether an additional factor is required. -->
<entry key="authn/Password">
<bean parent="shibboleth.authn.MFA.Transition" p:nextFlowStrategy-
ref="checkSecondFactor" />
</entry>
<!-- An implicit final rule will return whatever the final flow returns.
-->
</util:map>
<!-- Example script to see if second factor is required. -->
<bean id="checkSecondFactor"
parent="shibboleth.ContextFunctions.Scripted" factory-
method="inlineScript">
28
ICAM Implementation Guidance v.2
<constructor-arg>
<value>
<![CDATA[
nextFlow = "authn/Duo";
nextFlow; // pass control to second factor or end with the first
]]>
</value>
</constructor-arg>
</bean>
29
ICAM Implementation Guidance v.2
13. Download the Duo Mobile application onto a mobile device and configure your Duo account
for TOTP/push usage.
14. Rebuild the WAR by running build.bat again.
15. Restart the Tomcat service.
16. Try to access the protected resource again. This time, there should be a second factor prompt
using Duo.
Duo configuration is now complete. Refer to this page on the Shibboleth wiki for additional
information.
RESOURCES
Baker, C. (2017, March 10). Implementing MFA Using Native IDPv3.3 Duo Plugin (for IDPs who
upgraded from 2.x). Retrieved from wiki.shibboleth.net:
https://wiki.shibboleth.net/confluence/pages/viewpage.action?pageId=32112643
Duo for Shibboleth Identity Provider v3. (n.d.). Retrieved from duo.com:
https://duo.com/docs/shibboleth
How Shibboleth Works: Basic Concepts. (n.d.). Retrieved from www.shibboleth.net:
https://www.shibboleth.net/index/basic/
User, U. (2017, 8 May). FlowsAndConfig. Retrieved from wiki.shibboleth.net:
https://wiki.shibboleth.net/confluence/display/CONCEPT/FlowsAndConfig
User, U. (2017, May 8). Home. Retrieved from wiki.shibboleth.net:
https://wiki.shibboleth.net/confluence/display/CONCEPT
30
ICAM Implementation Guidance v.2
Figure 4 - System Configured for Multifactor Authentication Using Duo Google Authenticator, Keycloak
& MS Windows Active Directory.
SUMMARY
Keycloak is an open-source ICAM solution that can facilitate the management and security of users with
little to no cost. Keycloak allows for several ICAM methodologies, depending on the needs of your
business. It can manage SSO for your business applications and social networks. It can seamlessly
connect to existing LDAP and AD servers for federation purposes. It can even serve as a user store to
manage the fine-grained authorization policies your organization enacted.
For the purposes of this build, we used Keycloak to establish multifactor authentication and SSO with
Google Apps and Slack as the SPs. Although Keycloak can be used for a variety of different SPs, this
guide focuses on Slack. The build criteria area is to connect Keycloak via SSO to Slack utilizing Google
Authenticator for multifactor authentication.
BEFORE YOU BEGIN – A LIST OF HELPFUL TIPS
• Make sure you have Java installed and your JAVA_HOME variable is set
o Open the start menu and select “View Advanced System Settings”
o Select environment variables and create/edit JAVA_HOME to point to where your JDK
is located.
• Keycloak and Commercial SPs require HTTPS communication. Before starting, obtain a
certificate for the host name you are utilizing and create a JKS file for it. Instructions for this
procedure is here.
31
ICAM Implementation Guidance v.2
• Create a cname DNS entry that points to your Keycloak server IP Address. This will allow you to
access the Administration Console from your computer after initial configuration.
• Install either Firefox or Chrome on the Keycloak server. The admin console interface does not
work with IE.
Original:
<interface name="public">
<inet-address value="${jboss.bind.address:127.0.0.1}"/>
</interface>
Updated:
<interface name="public">
<inet-address value="${jboss.bind.address:10.10.10.10}"/>
</interface>
5. If you are using an external DNS you will need to change 3 lines of code
a. Change the “property name” value from “localhost” to your specific hostname
i. Ex: <property name="hostname" value="<enter your hostname>"/>
b. Change the “host name” alias from “localhost” to your specific hostname
i. Ex: <host name="default-host" alias="<enter your hostname>">
c. Change the “remote destination host” from localhost to your hostname
i. Ex: <remote-destination host="<enter your hostname>" port="25"/>
6. Using the command prompt, navigate to the Keycloak/bin folder. Run the standalone.bat
command to start the server. Keycloak does not have a built-in shutdown script. To shut down the
Keycloak server, you will need to Ctrl-C in the command prompt window.
32
ICAM Implementation Guidance v.2
7. You will need to create an admin account to access the admin console. Open a new command
windows and navigate to the Keycloak\bin folder. Run the below script with the required
username and password:
add-user-keycloak.bat -r master -u <username> -p <password>
8. Verify access to admin console by logging in at URL *YourLocalIP*:8080/auth from the server.
33
ICAM Implementation Guidance v.2
3. Configure the fields to access your LDAP service. An example is given below to connect to a
Microsoft AD instance for an AD forest named keycloakst.
• Set Sign Assertions: ON
• Set Force Name ID Format: ON
• Set Name ID Format: email
• Username LDAP attribute: cn
• RDN LDAP attribute: cn
• UUID LDAP attribute: objectGUID
• User Object Classes: person, organizationalPerson, user
• Connection URL: <URL to your AD server> ex: ldap://10.0.X.XXX:389
• Users DN: CN=Users, DC=keycloakst, DC=org
• Authentication Type: simple
• Bind DN: distinct name of your LDAP admin ex: [email protected]
• Bind Credential: <password of admin account>
All other fields can be left as default. There are test buttons associated with the Connection URL
and Bind Credential fields to verify connection to the LDAP.
4. Press Save at the bottom when finished the page will reload.
5. Scroll to the bottom of the page and click Synchronize all users. You will see a confirmation
message when the process is complete
6. Click Users from the left navigation
7. Click View All Users to ensure that the User Federation has updated the user store appropriately
34
ICAM Implementation Guidance v.2
35
ICAM Implementation Guidance v.2
9. Under the Advanced Options tab, click Expand and unselect Sign Authnrequest and Sign
Responses. The Service Provider Issuer URL should be the URL of your Slack instance (e.g.
wso2st.slack.com).
36
ICAM Implementation Guidance v.2
37
ICAM Implementation Guidance v.2
4. After signing in with the username and password, have the user scan the one-time Keycloak QR
code via Google Authenticator.
38
ICAM Implementation Guidance v.2
39
ICAM Implementation Guidance v.2
40
ICAM Implementation Guidance v.2
41
ICAM Implementation Guidance v.2
TO BEGIN
Okta is a cloud-based identity management solution. Once a plan is purchased, Okta sends the
organization’s administrator a link to the application. A good place to begin is on the Okta Help Center's
Getting Started as a New Okta Administrator page.
CONNECTING A DOMAIN CONTROLLER
If you do not already have a domain controller installed and configured, follow Microsoft’s instructions
on how to configure the domain controller.
Once your domain controller is configured and installed for your organization, follow Okta’s installation
and configuration guide for the Okta Active Directory Agent, found on the Okta Help Center's Install and
Configure the Okta Active Directory Agent page.
7
https://support.okta.com/help/Documentation/Knowledge_Article/Google-Apps-Deployment-Guide
42
ICAM Implementation Guidance v.2
Once everything is properly configured, your Okta dashboard will look like this:
CHANGE MANAGEMENT
Okta Help Center's End User Adoption Toolkit provides helpful information to download the End User
Adoption kit.
43