PinFederate Admin Training Student Guide
PinFederate Admin Training Student Guide
2 Proprietary | Do not distribute — Copyright © 2022 Ping Identity Corporation. All rights reserved.
Course Objectives
After completing this course, you should be able to:
§ Discuss industry standards: web single sign-on, SAML, OAuth, and OpenID
Connect
§ Provide an overview of PingFederate
§ Configure IdP and SP SSO connections
§ Connect to external data sources for attribute requests
§ Configure basic authentication policies for SSO transactions
§ Setup PingFederate as an OAuth authorization server
§ List some basic deployment scenarios
§ Configure directed clustering
3 Proprietary | Do not distribute — Copyright © 2022 Ping Identity Corporation. All rights reserved.
Course Lab Topology
PingFederate IDP PingFederate SP
Datastore
SP Connection IdP Connection Agentless
Configuration
from IdP from SP Integration
Kit
HTML
Form Adapter
4 Proprietary | Do not distribute — Copyright © 2022 Ping Identity Corporation. All rights reserved.
Course Topology Configuration Order
PingFederate IDP Components will be PingFederate SP
1 configured in the
order shown 2
3
Simple PCV Console
Console
7 8
Datastore
Agentless
Configuration SP Connection IdP Connection
Integration
5
from IdP from SP
Kit
6
9 HTML 4
Form Adapter
User w/ Browser
5 Proprietary | Do not distribute — Copyright © 2022 Ping Identity Corporation. All rights reserved.
Ping Identity Support Resources
Ping offers support resources at support.pingidentity.com.
6 Proprietary | Do not distribute — Copyright © 2022 Ping Identity Corporation. All rights reserved.
Documentation
The Documentation page includes links to each product.
7 Proprietary | Do not distribute — Copyright © 2022 Ping Identity Corporation. All rights reserved.
Community
Join the discussion by participating in Ping’s Community.
8 Proprietary | Do not distribute — Copyright © 2022 Ping Identity Corporation. All rights reserved.
Product Training
Ping offers instructor-led training, on-demand training, and certifications.
9 Proprietary | Do not distribute — Copyright © 2022 Ping Identity Corporation. All rights reserved.
Product Downloads
Downloads are available at https://www.pingidentity.com/en/resources/downloads.html.
10 Proprietary | Do not distribute — Copyright © 2022 Ping Identity Corporation. All rights reserved.
Summary
• Course objectives
• Ping Identity documentation
• Ping Identity Community
• Ping Identity product training
• Ping Identity product downloads
11 Proprietary | Do not distribute — Copyright © 2022 Ping Identity Corporation. All rights reserved.
Federation Overview
v20220316
2 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Objectives
After completing this module,
you should be able to:
• Describe Federation
3 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
What is Ping Federate?
§ Identity Federation
§ Integration of access to applications
§ Browser-based SSO
§ OAuth and OpenID Connect authorization server
4 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Single Sign-On
5 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
History of Single Sign-On
§ Traditionally:
– SSO was done within a
single company for
internal apps only
– Applications validate the
security token against a
central server
– External applications still
required a separate
account and login User session is verified against a central
source when trying to access an internal
application
6 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SSO: Across multiple domains
7 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Identity Federation
§ Federation is a trust
relationship between two Employee
companies Organization
Trust Relationship
§ The user can:
– Authenticate to one SaaS
Partner
organization
– Access a resource at
another
8 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Roles: Identity Provider (IdP)
SP is responsible for:
App
1. Receiving and verifying Server
assertions or security
tokens Federation
Inbound
– “Has already been Server
Assertion
authenticated”
2. Providing access to an
application or resource Database
Server
10 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SSO From The User’s Perspective
1. User authenticates to the Identity Provider
2. User clicks a link for the target application (e.g. Google Mail) and is
taken directly there without having to authenticate a second time
User App
Authentication Server
11 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SSO – Detailed Flow
1. User requests access to a web application and the IdP verifies the user
is authenticated
1. Authenticate
User App
Authentication Server
12 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SSO – Detailed Flow (cont.)
2. IdP looks up the user’s attributes (username, email, department, etc.)
and
3. The IdP sends an assertion or security token to the SP
1.Authenticate
2. Attribute Lookup
User App
Authentication Server
13 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SSO – Detailed Flow (cont.)
4. SP receives the assertion or security token with the user’s attributes
and creates an application session for the user
1.Authenticate
4. User placed
into application
2. Attribute Lookup
session
User App
Authentication Server
14 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Why use SSO/Federation?
§ Simplifies Administration
– Reduces number of accounts & passwords to maintain
– Partners manage their own users
– Replaces proprietary solutions with industry standard solutions and protocols
§ Increases Security
– Propagate strong authentication
– Reduce identity theft targets
– Extend enterprise security to hosted services
– Protects against password proliferation
15 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SSO Summary
Federation Federation
Server Server
User App
Authentication Server
16 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SP vs IdP Initiated SSO
§ IdP-initiated SSO: § SP-initiated SSO:
1. Authenticate at IdP.
2. Assertion is sent to the SP 1. Start at SP. “Who are you?”
› Authentication request to
IdP: “Who is this?”
2. Authenticate at IdP
3. Assertion is sent to the SP
17 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Section Review
2 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Objectives
After completing this module,
you should be able to:
3 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
What is an Adapter?
PingFederate PingFederate
Directory Application
4 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
IdP Adapters
§ Interfaces with an
application that users Service Provider
Open Standards
are trying to access SAML
Commercial
Citrix SharePoint
Slack
6 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
What is an Integration Kit?
7 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Installing Adapters
8 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
What Will We Build In Our Labs?
rm Re
Fo r PingFederate PingFederate fer
L
M pte Ad ence
ap
HT Ada ter ID
OpenLDAP Application
Directory
9 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Section Review
10 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
PCVs and the HTML
Form Adapter
v20220316
2 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Objectives
After completing this module,
you should be able to:
3 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Password Credential Validators
4 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
What is a Password Credential Validator?
5 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Adapter Flow with PCV
1. User attempts to access an
application with no existing
Identity Provider session
2. PingFederate, via the
User HTML Form Adapter,
presents a login page
3. HTML Form Adapter uses
Authentication
the configured PCV to
PCV Service
Service Provider
validate the credentials
against the authentication
service
4. Once the user is
PingFederate
authenticated their session
is created (optional) and
they are forwarded to the
HTML Form
Adapter service provider
6 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Available PCVs
7 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Creating a PCV
§ PCVs are
created from
the System
screen
§ Configuration
options will
depend on the
type of PCV
selected
8 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
HTML Form Adapter
9 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
What is the HTML Form Adapter?
10 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Adapter Configuration Tasks
Steps
11 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Selecting a PCV
12 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
HTML Form Adapter Customizations
13 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Selecting Adapter Templates
14 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Attribute Contracts
15 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Attribute Contracts (cont.)
Core
Contract
Extended
Contract
16 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Section Review
17 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
ReferenceID Adapter
v20220316
2 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Objectives
After completing this module,
you should be able to:
3 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Agentless Integration Kit
4 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SP Application — Process Overview
5 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
IdP Application — Process Overview
1. The IdP PF receives an authentication request Identity Provider
2. PF redirects the browser to the IdP application,
Attribute Dropoff
including a resume path as a query parameter
3. The user authenticates Reference Returned
Custom PingFederate
4. The IdP app makes an authenticated direct HTTP Authentication
call to send the attributes to PF Application
Redirect to Resume
https://pingfederate.IdP.com/ext/ref/dropoff ( in Re Path
clu dir
din ect (including reference)
5. PF stores the attributes and returns a reference ID g r for
es Lo
um gi
in the HTTP response to the IdP app ep n
ath
)
6. IdP app redirects the browser to the PF resume
path with that reference id in the query string,
https://pingfederate.IdP.com/ User
[resume-path]?REF=<123ABCD>
6 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Application Authentication
7 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Adapter Endpoints and Attribute Format
8 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Section Review
9 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Lab: Create IdP and SP Adapters
10 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OpenToken Adapter
v20220316
2 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Objectives
After completing this module,
you should be able to:
3 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Language Integration Kits
en Op
ok r PingFederate PingFederate en
T
en te Ad Tok
ap en
Op dap ter
A
§ OpenToken Adapter
– JAR file can be deployed in PingFederate
– This adapter is also included with the PingFederate install
§ Language specific agent for your
application
– Custom code libraries
§ SP and IdP sample applications for
testing
§ Documentation and code examples
5 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OpenToken Concepts
Custom
No OpenToken! Custom
Authentication Java, PHP, or .NET
Application Application
6 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Transport Options
7 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OpenToken Adapter — IdP Flow
1. PingFederate redirects the user to
the custom authentication application
2. Application validates the user and
creates an OpenToken with the
Identity Provider
requested attributes
Open Standards
3. User is forwarded back to OpenToken SP Connection
PingFederate with the OpenToken SAML
OAuth OpenID
4. Attributes from the OpenToken are Custom Java,
PHP, or .NET PingFederate Connect
used to fulfil the connection contract authentication
application
5. Connection attributes are sent to the
SP partner using industry standard
protocols (SAML, WS-Federation,
etc.)
8 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OpenToken Adapter — SP Flow
1. PingFederate receives an SSO
request from an IdP partner
Service Provider 2. PingFederate takes the attributes
Open Standards from the incoming connection and
IdP Connection OpenToken uses them to fulfil the adapter
SAML
OAuth OpenID contract
Custom SaaS App
Connect PingFederate PHP .NET 3. OpenToken Adapter creates an
Java
OpenToken and redirects the user to
the application
4. Application takes the OpenToken
and uses the attributes to generate a
user session
9 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Installing the OpenToken Adapter
10 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OpenToken Adapter Agent Configuration File
11 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Application Considerations
12 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Application Considerations (cont.)
13 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Additional Resources
14 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Section Review
15 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Kerberos Adapter
v20220316
2 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Objectives
After completing this module,
you should be able to:
3 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
What is Kerberos?
4 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Kerberos Adapter
5 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
PingFederate Kerberos Flow Overview
6 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Kerberos Detailed Flow
Active SP SaaS
IdP
Directory PingFederate Federation Application
Server
2
1
User Kerberos
Ticket
7 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Kerberos Detailed Flow (cont.)
Active SP SaaS
IdP
Directory PingFederate Federation Application
Server
2
1
User Kerberos
Ticket
8 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Kerberos Detailed Flow (cont.)
Active SP SaaS
IdP
Directory PingFederate Federation Application
Server
2
1
User Kerberos
Ticket
9 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Kerberos Detailed Flow (cont.)
Active SP SaaS
IdP
Directory PingFederate Federation Application
Server
2
1
User Kerberos
Ticket
10 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Kerberos Detailed Flow (cont.)
Active SP SaaS
IdP
Directory PingFederate Federation Application
Server
2
1
User Kerberos
Ticket
11 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Kerberos Adapter — Active Directory Configuration
12 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Kerberos Adapter Setup
13 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Kerberos Adapter Setup (cont.)
14 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Kerberos Adapter — Browser Configuration
15 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
IWA Integration Kit
16 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Section Review
17 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
SAML Basics
v20220316
2 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Objectives
After completing this module,
you should be able to:
3 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
What is SAML?
5 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SAML Use Case — Browser SSO
G Suite
Salesforce
Federation Server
e.g. PingFederate
6 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SAML Roles and Terminology
7 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SAML Roles
8 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SAML Roles (CONT.)
Service Providers
Subject/Principal (user)
(SP)
G Suite
Salesforce
Federation Server
Identity Provider e.g. PingFederate
(IdP)
9 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Entity ID and Base URL
10 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SAML Terminology
Profiles
Combination of assertions, protocols, and bindings to support a Metadata
particular use case Configuration data that
can be shared
Bindings between IdPs and SPs
Mapping of SAML onto a standard message format
Protocols
Requests and responses for obtaining assertions Authentication
Context
Detailed data on the
Assertions type of authentications
Authentication, attribute, and entitlement
information
11 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SAML Assertions
12 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Assertion Overview
13 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Assertion Statements
14 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Assertion Statements (cont.)
15 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SAML Assertion Example
Salesforce
Federation Server
e.g. PingFederate
16 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Assertion Elements
19 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Assertion Elements (cont.)
20 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SAML Bindings
21 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Binding Overview
22 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Binding Types
23 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
HTTP Post Binding
24 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
HTTP Artifact Binding
25 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
HTTP Redirect Binding (SAML 2.0)
26 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SAML Profiles
27 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Profiles Overview
28 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
IdP Initiated SSO — Post
Identity Provider Service Provider
1 2 4 5
Browser Interface
29 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Section Summary
30 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Section Summary (cont.)
31 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Creating
Connections
v20220316
2 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Objectives
After completing this module,
you should be able to:
3 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Introduction to Connections
rm Re
Fo r PingFederate PingFederate fer
L
M pte
IdP connection Ad ence
ap
HT Ada from SP to IdP ter ID
4 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Introduction to Connections (cont.)
§ Connection management
screen allows:
– Filtering connections by
protocol or status
– Search connections
– Enabling/disabling connections
– Export connection metadata
– Update with metadata
– Export/import connections (PF
to PF only)
– Copy
– Delete
6 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SAML Metadata
SAML
Assertion
IdP SP
PingFederate PingFederate
8 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Single Sign-On Service Endpoint
SP initiated SSO
(SAMLRequest / AuthnRequest)
IdP SP
PingFederate PingFederate
9 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Start SSO Endpoint
Base URL
https://sso.int.wal-ping.com:9031
Base URL: https://sso.wal.wal-ping.com:9031 StartSSO endpoint
ACS Endpoint: /idp/startSSO.ping
/idp/startSSO.ping?
First parameter – requested partner ID
https://sso.int.wal-ping.com:9031 PartnerSpId=https://sso.int.den-ping.com
/idp/startSSO.ping?
IdP PartnerSpId=https://sso.int.den-ping.com Second paramter – requested adapter ID
PingFederate &IdpAdapterId=LDAPLogin
&IdpAdapterId=LDAPLogin
10 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SP Connections
11 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
IdP — Configuring SP Connections
rm Re
Fo r PingFederate PingFederate fer
L
M pte Ad ence
ap
HT Ada ter ID
12 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
IdP — SP Connection Configuration Flow
Configure Configure
Select SAML Set Token
Token Protocol
Profile Lifetime
Creation Settings
13 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
IdP Connections
14 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SP — Configuring IdP Connections
rm Re
Fo r PingFederate PingFederate fer
L
M pte
IdP connection Ad ence
ap
HT Ada from SP to IdP ter ID
15 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SP — IdP Connection Configuration Flow
Configure
Select SAML User Session Target Session
Protocol
Profile Creation Mapping
Settings
17 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Lab: Creating IdP and SP Connections
rm Re
Fo r PingFederate PingFederate fer
L
M pte Ad ence
ap
HT Ada ter ID
18 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
PingFederate Logs
v20220316
2 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Objectives
After completing this module,
you should be able to:
3 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Log Files
4 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Server Log
5 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Admin Log
6 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Transaction Log
7 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Transaction Logging Mode – Connection
§ Logging mode
for connections
can be
changed on
the General
Info screen
8 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Transaction Logging Mode – Globally
§ Per connection
settings can be
overridden from the
Connection
Management screen
§ Logging mode
override affects all
connections for the
IdP or SP role
9 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Request log
10 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Audit Log
11 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Admin API log
12 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Managing Log Files
13 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Log File Location
14 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Logging Configuration — log4j2.xml
§ Located in pingfederate/server/default/conf
§ The log4j2.xml file is used to configure logging elements
and logging level (info, warn, debug, etc.)
– Note: Raising the logging above INFO level may have a performance
impact depending on your implementation
– Information on how to enable debug logging can be found in the
PingFederate Admin Guide
§ For more information about log4j2 please refer to the Log4j
2 open source project
15 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Log File Rolling
16 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Alternate Logging Options
17 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
PingFederate Logging Options
18 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Section Review
Re
F orm PingFederate PingFederate fer
ML pte
r Ad ence
ap
T
H Ad a ter ID
OpenLDAP Application
Directory
20 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Attributes and Data
Sources
v20220316
2 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Objectives
After completing this module,
you should be able to:
3 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Attribute Expressions
4 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Expressions Overview
5 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Simple Expressions
6 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Simple Expressions (cont.)
7 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Simple Expressions (cont.)
8 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Object-Graph Navigation Language (OGNL)
§ Based on java
§ Disabled by default
§ Allows advanced attribute processing and manipulation
within PingFederate
§ Language documentation available from Apache Commons
– http://commons.apache.org/proper/commons-ognl/
9 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
OGNL Examples
10 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
External Data Sources
11 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
External Data Sources
y A tt
Q uer ribu
t eQ
u te uer
A ttrib y
PingFederate
LDAP JDBC
Directory Database
12 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
LDAP Data Sources
§ Required parameters:
– Hostname(s)
› Supports multiple entries seperated
by a space for failover
– LDAP Type
› Generic, PingDirectory, Active
Directory, Oracle Directory Server
§ Use LDAPS specifies to use the
LDAPS protocol
§ User DN/Password are used when
Bind Anonymously is unchecked
13 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
JDBC Data Sources
15 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Data Sources – Connection Mapping (cont.)
16 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Data Sources – Connection Mapping (cont.)
§ LDAP Filter defines how PingFederate will identify a user within the
data store
§ This example tells PingFederate to search for a user who’s CN
(common name) in the LDAP directory matches the username entered
on the HTML Form Adapter
18 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Data Sources – Connection Mapping (cont.)
19 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Adapter Contract Mapping
20 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Connection vs. Adapter Mapping
21 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Connection Mapping
Adapter Connections
Username SAML_SUBJECT
Email
SAML_SUBJECT
Email
Data Store
displayName SAML_SUBJECT
Email
mail
Email Email
SAML_SUBJECT
Email
Data Store
displayName SAML_SUBJECT
Email
mail
24 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Lab: Using External Data Sources for Attributes and
Authentication
rm Re
Fo r PingFederate PingFederate fer
L
M pte Ad ence
ap
HT Ada ter ID
25 Proprietary | Do not distribute. Copyright ©2022, Ping Identity Corporation. All rights reserved.
Authentication
Policies
v20220316
2 Proprietary | Do not distribute. Copyright © 2022, Ping Identity Corporation. All rights reserved.
Objectives
After completing this module,
you should be able to:
3 Proprietary | Do not distribute. Copyright © 2022, Ping Identity Corporation. All rights reserved.
Endpoints
4 Proprietary | Do not distribute. Copyright © 2022, Ping Identity Corporation. All rights reserved.
Introduction to Endpoints
6 Proprietary | Do not distribute. Copyright © 2022, Ping Identity Corporation. All rights reserved.
Policies, Selectors, and Contracts
7 Proprietary | Do not distribute. Copyright © 2022, Ping Identity Corporation. All rights reserved.
Introduction to Authentication Policies
8 Proprietary | Do not distribute. Copyright © 2022, Ping Identity Corporation. All rights reserved.
Policy Paths
10 Proprietary | Do not distribute. Copyright © 2022, Ping Identity Corporation. All rights reserved.
Authentication Selectors (cont.)
Selector Type Description
CIDR Choose authentication sources based on the IP address of an incoming request.
Cluster Node Decision based on the cluster node servicing the request.
Matches between the target SP connection used in the request and SP connections configured in
Connection Set
PingFederate. Allows you to override authentication selection on an individual connection basis.
Decision made based on specific browser headers included in the request. Example: can be used
HTTP Header to choose an authentication source based on the user’s browser identified by the User-Agent HTTP
header.
HTTP Request Parameter Choose a policy path based on the value of a supplied query parameter.
Choose a policy path based on a match found between the client information in an OAuth request
OAuth Client Set
and the OAuth clients configured on PingFederate.
Decision based on the scopes requested by an OAuth client. Example: Requesting admin or write
OAuth Scope
access will trigger an adapter with a stronger form of authentication.
Requested AuthN Choose authentication sources based on the authentication context requested by an SP.
11 Proprietary | Do not distribute. Copyright © 2022, Ping Identity Corporation. All rights reserved.
Authentication Policy Contracts
§ List of attributes
§ Policy Contracts can be mapped
at the end of an Authentication
Policy branch
§ Contracts can be used in multiple
places in the policy tree and can
be used in multiple connections
§ Attributes can be mapped from
adapters or external data stores
12 Proprietary | Do not distribute. Copyright © 2022, Ping Identity Corporation. All rights reserved.
Using Authentication Policies
Policy starts with a selector. This
CIDR selector returns YES if the 1. Create Authentication
request comes from an internal
IP, otherwise returns NO.
Selectors and Policy
Contract
2. Create needed adapters
Depending on the selector output
different authentication methods 3. Create Authentication
can be chosen. Policy for your use case
13 Proprietary | Do not distribute. Copyright © 2022, Ping Identity Corporation. All rights reserved.
Using Authentication Policies (cont.)
§ Multiple Authentication
Policies can be created
§ If a policy path is open-
ended PingFederate
will automatically move
to the next applicable
policy in the list
14 Proprietary | Do not distribute. Copyright © 2022, Ping Identity Corporation. All rights reserved.
Using Authentication Policies (cont.)
15 Proprietary | Do not distribute. Copyright © 2022, Ping Identity Corporation. All rights reserved.
Policy Contract Mapping
Adapter Connections
Username SAML_SUBJECT
Email Email
Policy Contract
SAML_SUBJECT
SAML_SUBJECT
Email Email
displayName SAML_SUBJECT
Email
mail Name
17 Proprietary | Do not distribute. Copyright © 2022, Ping Identity Corporation. All rights reserved.
Fragments and Contracts
18 Proprietary | Do not distribute. Copyright © 2022, Ping Identity Corporation. All rights reserved.
Fragments vs. Policies
19 Proprietary | Do not distribute. Copyright © 2022, Ping Identity Corporation. All rights reserved.
Using Policy Fragments
20 Proprietary | Do not distribute. Copyright © 2022, Ping Identity Corporation. All rights reserved.
Using Policy Fragments (cont.)
Fragments do not have to have
authentication sources. Fragments
can be used to combine selectors
into an output that the parent policy
can use.
21 Proprietary | Do not distribute. Copyright © 2022, Ping Identity Corporation. All rights reserved.
Issuance Criteria
22 Proprietary | Do not distribute. Copyright © 2022, Ping Identity Corporation. All rights reserved.
Issuance Criteria
23 Proprietary | Do not distribute. Copyright © 2022, Ping Identity Corporation. All rights reserved.
Issuance Criteria (cont.)
24 Proprietary | Do not distribute. Copyright © 2022, Ping Identity Corporation. All rights reserved.
Summary
rm Re
Fo r PingFederate PingFederate fer
L
M pte Ad ence
ap
HT Ada ter ID
26 Proprietary | Do not distribute. Copyright © 2022, Ping Identity Corporation. All rights reserved.
Introduction to OAuth
v20220316
2 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Objectives
After completing this module,
you should be able to:
3 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
What is OAuth 2.0?
4 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Why OAuth 2.0?
§ Industry standard
§ REST friendly
§ Provide application access without giving the application
your password
– Instead a token is issued to the application on behalf of the user
§ Can be used for applications that do not support SAML
5 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OAuth 2.0 Standards
6 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OAuth Terminology
7 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Role — Resource Server (RS)
9 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Role — Client
10 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Role — Authorization Server (AS)
Client
Resource
Owner
11 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Access Token
12 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Refresh Token
13 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Client ID and Client Secret
§ Client Id
– A value used by the client to identify itself to the service provider
§ Client Secret
– A secret used by the client to establish ownership of the client ID
14 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Scopes
15 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Problem Statement
16 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Answer
er
e cts us
edir
lie nt r AS for and
2. C to ation
c n
enti atio
auth uthoriz
a
s
acces t
rns lien
1. User initiates a
S retu o the c Authorization
checkout 3. A ken t Server
to
Resource
Server
17 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Section Summary
18 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OAuth Scopes and
Access Tokens
20220316
2 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Objectives
After completing this module,
you should be able to:
3 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Configure Scopes and Access
Tokens
4 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Authorization Server Responsibilities
5 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Scopes on the Authorization Server
publish_actions Enables your app to post content, comments, and likes to a user's
stream and to the streams of the user's friends
user_location Provides access to the user's current city as the location property
ads_management Provides the ability to manage ads and call the ads API on behalf of
a user
6 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Adapter Mapping
7 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OAuth and Adapters
8 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OAuth Adapter Attributes
9 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OAuth Adapter Mapping
10 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Example: OAuth Mappings in PingFederate
Adapter
Username
Persistent Grant
USER_KEY
USER_NAME
Data Store
displayName
mail
11 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Access Token Mapping
12 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Access Token Mapping
13 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Example: OAuth Mappings in PingFederate
IdP Adapter Persistent Access Token
Adapter Mapping Grant Contract Mapping Access Token
LDAP / AD Etc.
SQL DB
displayName
mail Birthday
14 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Copyright © 2017 Ping Identity Corp. All rights reserved
Example: OAuth Mappings in PingFederate
Adapter
Username
Persistent Grant
Access Token
USER_KEY
USER_NAME UserID
Email
Account Number
Data Store
Data Store
displayName
mail Account Number
15 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Order of Operations
17 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Persistent Grants Table
§ Stored in a local SQL table: <pf-
home>/pingfederate/server/default/conf/access-grant/sql-scripts
§ Single table – pingfederate_access_grant
§ For production an external DB is required
Column Type
guid VARCHAR(32)
hashed_refresh_token VARCHAR(256)
unique_user_id VARCHAR(256)
scope VARCHAR(1024)
client_id VARCHAR(256)
grant_type VARCHAR(128)
context_qualifier VARCHAR(64)
issued TIMESTAMP
updated TIMESTAMP
expires TIMESTAMP
18 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
User Management of Persistent Grants
§ https://<pfhost:port>/as/oauth_access_grants.ping
§ Template:
pingfederate/server/default/conf/template/
oauth.access.grants.page.template.html
19 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Client Management of Persistent Grants
20 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OAuth Authentication Selector
21 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Advanced: OAuth Scope Authentication Selector
24 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Lab: Scopes and Access Tokens
rm
L Fo r PingFederate
M pte
HT Ada
PCV
25 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OAuth Grants
v20220316
2 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Objectives
After completing this module,
you should be able to:
3 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OAuth Grant Types
4 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
What is an OAuth Grant?
5 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Access Token Validation
§ OAuth client
application sends
s ac ces
s
the access token
eive om AS
nt r
ec
n fr to resource
Clie toke
Authorization
Server
RS server
validate
s token
§ Resource server
Clie
Client
nt u with AS validates the
toke ses an
n
reso to acc access access token with
urce ess
serv th the authorization
er A e
PI server
6 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved. Resource
Server
Client Credentials
§ Authorization server
returns access token to Client receives access
token from AS
client server Client Authorization
Server
§ No user is involved
7 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Authorization Code
9 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OAuth Playground
10 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OAuth Playground
11 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OAuth Playground
12 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
What’s in the Playground?
§ Download includes:
– Documentation
– Product
§ Read pre-requisites for installing
§ Set appropriate parameters
§ Proceed with installation
§ Bring up Web-based browser to begin testing
13 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Configure OAuth Clients
14 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
General Client Configuration
15 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
General Client Configuration
§ Client ID
§ Client secret
§ Redirect URI:
– Callback URL
§ Grant type
16 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Client Credentials
17 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Client Credentials Grant Client
18 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Lab: Create a Client Credentials Client
20 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Access Token Validation Client
21 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Lab: Create a Resource Server Client
22 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Authorization Code
23 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Authorization Code Grant Client
24 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Lab: Create an Authorization Code Client
25 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Other Configurations
26 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Assigning an Access Token to a Client
§ Clients can be
assigned specific
access tokens
§ This allows for
different tokens
for different
clients/purposes
27 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Refresh
28 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Section Summary
29 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Appendix: Deprecated Client Types
30 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Resource Owner Pssword Credentials
31 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved. Resource
Owner
Implicit
§ Browser application
redirects user to
authorization server Token returned directly
§ User authenticates, then to the client
authorizes the request
§ Authorization server Client Authorization
o AS Server
32 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved. Resource
Owner
OpenID Connect
v20220316
2 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Objectives
After completing this module,
you should be able to:
3 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OpenID Connect Standard
4 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OpenID Connect
5 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OpenID Connect Use Case
- and -
“Thanks for your purchase, unknown person!” I have no metrics on which types of people
buy this type of music
Versus
6 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
ID Tokens
Aut
Auth henticate
orize
s (lik s and
Authorization Server
e nor
mal)
AuthZ
Endpoint
User
Token PingFederate
Endpoint
en
ac c ess tok
es
lient receiv n id_token Validation
C lso a Endpoint
OAuth Client
and a
7 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
ID Token (cont.)
Authorization Server
"iss": "https://as.idtel.com",
AuthZ
(‘issuer’. Did this come from the right
Endpoint authorization server (AS)?)
“sub”: "24400320",
Token PingFederate (Which user did the AS authenticate?
Endpoint
Also called “sub” for “subject”. Will
OAuth Client decode to “joe”, for instance.)
Validation
Endpoint
"aud": "s6BhdRkqt3",
(‘audience’. This should decode to
HTTP/1.1 200 OK Content-Type: application/json Cache- “tunes_partner” – my client_id, so this
Control: no-store Pragma: no-cache Base64url
{ decode token was meant for me)
"access_token":"SlAV32hkKG",
"token_type":"bearer", "expires_in":3600,
"refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA",
"id_token":"eyJ0 ... NiJ9.eyJ1c ...
"exp": 1311281970,
I6IjIifX0.DeWt4Qu .”
}
(‘expiry time of token.’ Is this token
still valid?)
• A security token
• JSON Web Token (JWT) "iat": 1311280970
8 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved. (‘issued at time’)
Endpoint — Userinfo
Authorization Server
AuthZ {
Endpoint ”user_id":
"248289761001",
Token PingFederate "name":
Endpoint ”Joe Saml”,
"preferred_username":
Validation Userinfo "j.saml",
Endpoint Endpoint
"email":
”[email protected]",
“age”:
Access token is “27”
exchanged for user “location”:
“Florida”
claims
}
OAuth Client
9 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OpenID Connect Scopes
10 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Normal Authentication and Authorization
11 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OpenID Connect Example
12 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OpenID Connect Example (cont.)
13 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OpenID Connect Example (cont.)
14 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OpenID Connect Example (cont.)
15 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Getting User Claims
16 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Requesting Additional Claims
17 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Obtain User Profile Information
§ Now the client can use the access token to retreive the
user’s profile from the userinfo endpoint
18 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OpenID Connect Application Flow
Authorization Server
AuthZ 1) Web app launches browser, in which
Endpoint user authenticates to the
1 authorization server (and grants
PingFederate authorization)
2
Token
Endpoint 2) Authorization server returns Auth
Code to web app through browser
Validation Userinfo 3) Web app exchanges code for access
3 Endpoint Endpoint token and id token
4) Instead of sending the access token
4 to the resource server, the web app
User 5 sends the access token to the
userinfo Endpoint
OAuth Client
5) Authorization Server returns
requested user information
(claims) from the userinfo endpoint
20 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
OpenID Connect and SSO
21 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
PingFederate’s Role
22 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
SSO With OpenID Connect
1) OIDC request
2) User authenticates and
3rd Party authorizes with the 3rd party
OIDC Provider provider. Client receives
access token and ID token.
1
AuthZ 3) Client sends the access token
Endpoint to the Userinfo Endpoint
4) Authorization Server returns
2 Token requested OIDC claims
Endpoint
5) Client logs user in
3 Validation Userinfo
Endpoint Endpoint
PingFederate
as a relying
party
23 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Relying Party Requirements
§ PingFederate 8.2+:
– Needs to be set up for SP role
– Check OpenID Connect under SP in Roles and Protocols section
– Requires an SP adapter for “last mile” option
– Build a connection in PingFed and choose “OpenID Connect”
instead of a protocol like “SAML”
24 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Section Summary
25 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Server Administration
v20220316
2 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Objectives
After completing this module,
you should be able to:
3 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Changing Startup Parameters
4 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Runtime Notifications
5 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Administration Accounts
6 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Importing and Exporting Connections
§ When/why?
– Moving from a development server to test or production
– Adding additional servers to your environment and allocating certain connections to
other servers
§ The resulting XML data is a PingFederate-proprietary format
7 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Copy Connections
8 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Administrative API
9 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Restful Administrative API
11 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
API Documentation
12 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
API Operation
13 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Section Summary
14 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Lab: Admin. API
15 Confidential | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Deployment and
Optimization
v20220316
2 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Objectives
After completing this module,
you should be able to:
3 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Deployment Options
4 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Stand-Alone Deployment
5 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Behind a Proxy Server
6 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Proxy Server Configuration
7 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Converting from Stand-alone to Cluster
8 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Clustered
9 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Directed Clustering
10 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Clustering Configuration
11 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Clustering Configuration (cont.)
12 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Clustering Configuration (cont.)
Run.properties file property Description
pf.operational.mode • Controls the operational mode of the PingFederate server
(CLUSTERED_CONSOLE or CLUSTERED_ENGINE)
pf.cluster.node.index • Each server in a cluster must have a unique index number
• Used to identify peers and optimize inter-node communication (Range: 0-65535)
pf.cluster.auth.key • Sets the password that each node in the cluster must use to authenticate when
joining the group
• This prevents unauthorized nodes from joining a cluster
pf.cluster.encrypt • Indicates whether or not to encrypt network traffic sent between nodes in a cluster
• When set to true, communication within the cluster is encrypted with a symmetric
key derived from the value of the pf.cluster.auth.pwd property.
• All nodes in a cluster must have the same value set for this property.
pf.cluster.bind.address • Controls the network interface to which the group communication should bind.
• For machines with more than one network interface, you can use this property to
increase performance (particularly with UDP) as well as improve security by
segmenting group-communication traffic onto a private network or VLAN.
• If left blank, the first available network interface is used
13 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Directed Clustering — Designating State Servers
overhead
Engine Node Engine Node
Console Node Index: 5 Index: 6
14 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved. Index: 100
Directed Clustering — Defining Subclusters
§ You can use node indices to divide a cluster into subgroups, or subclusters
§ This requires a network management solution that sticks, or persists, user
sessions to a specific subcluster
Network Load
Balancer
Network Load Network Load
Balancer Balancer
EMEA Region US Region
Console Node
Index: 100
Engine Node Engine Node Engine Node Engine Node Engine Node Engine Node
Index: 1 Index: 2 Index: 3 Index: 4 Index: 5 Index: 6
§ Admin console
§ Lists all the nodes in the cluster
16 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Cluster Replication — What is Replicated?
§ Configuration Set:
– All the things defined in the admin. console GUI
– E.g. server settings, adapter instances, partner connections,
certificate keystores, etc.
§ Runtime session and state data
§ License file
17 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Cluster Replication — What is NOT replicated?
18 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Adaptive Clustering
19 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Adaptive Clustering Overview
20 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Introduction to Adaptive Clustering
21 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Adaptive Clustering — Replica Sets
hashing
Incoming Transaction
§ State has various keys
which can be hashed to
determine where the state
information is stored
– E.g. PF session cookie
Engine Node Engine Node Engine Node
Index: 1 Index: 2 Index: 3
Incoming Transaction
– Default set size is three nodes, this
can be configured
§ Replica sets are determined based
on the transaction hash
– Two sessions will most likely have
their state stored on different replica
sets Engine Node Engine Node Engine Node
Index: 1 Index: 2 Index: 3
§ Replica sets serve to equally
distribute the state information
across all nodes Engine Node
Index: 4
Engine Node
Index: 5
23 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Adaptive Clustering — Replica Sets (cont.)
§ When a transaction is
resumed (say after a User
Resumed Transaction
the key/hash to retrieve
state data for the
transaction from the replica
set
§ The engine looks for Engine Node
Index: 1
Engine Node
Index: 2
Engine Node
Index: 3
consensus on returned
states Engine Node
Index: 4
Engine Node
Index: 5
24 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Adaptive Clustering — Replica Sets (cont.)
25 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Adaptive Clustering Configuration
26 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Node Discovery
SWIFT_PING
• OpenStack
27 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Section Summary
28 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Optional Lab: Create a Directed Cluster
29 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved. Copyright © 2015 Ping Identity Corp. All rights reserved. 29
Troubleshooting Lab
Hints
v20220316
2 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Lab 8: SAML Troubleshooting
3 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
Troubleshooting lab:
§ Scenario A:
– Hint 1:
› Check the error page URL to know which server.log to look at.
4 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
§ Scenario A:
– Hint 1:
› Check the error page URL to know which server.log to look at.
– Hint 2:
› The SP is checking to validate the signing certificate. What it’s configured
to check – does that match what the IdP is configured to send?
5 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
§ Scenario A:
– Problem:
› In its connection configuration, the IdP is signing the assertion with a certificate.
› The SP is checking to validate the assertion’s signature – “Does what came match what I was expecting to come?”
- These don’t match.
– Solution:
› In the IdP Admin Console:
- Go to the connection summary for the connection to the Denver SP.
- Scroll to the bottom – go to the header for Digital Signing &...
- Get to a ‘manage certificates’ page and export the signing certificate (NOT the cert + key).
› In the SP admin console:
- Go to the very bottom of their connection summary, to the signature verification certificates page.
- Get to a ‘manage certificates’ page;
- import the correct certificate. Save.
§ à On to scenario B!
6 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
§ Scenario B:
– Hint 1:
› “Unable to lookup metadata” means that the assertion is coming from an
issuer the service provider doesn’t recognize (not a problem with any
metadata itself).
7 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
§ Scenario B:
– Problem:
› The SP is getting an assertion from an entity ID it doesn’t have in its connection list.
› i.e. What is entered in the Service Provider-side connection does not match the actual identity
provider’s entity ID.
– Solution:
› On the SP Admin Console, open your IdP Connection to Waltham.
› Click the blue General Info tab at the top.
› Change the partner’s entity ID back to https://sso.int.wal-ping.com
- Note: How would you know this?
» it’s configured on the Identity Provider admin console in server settings
» It’s also listed in the server.log as what’s coming in the assertion.
» In a production scenario, you would ask the IdP what their entity ID is
§ à On to scenario C!
8 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
§ Scenario C:
– Hint:
› The log shows that the assertion is getting to the SP PingFederate with
all its attributes – but not all those attributes are getting to the application.
What’s between the SP PingFederate and the target application?
9 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.
§ Scenario C:
– Problem:
› The SP adapter doesn’t have all the attributes configured in its extended contract,
so while it’s working, it is not passing additional attributes.
› We have to add the attributes to the adapter, then map then in the connection.
– Solution:
› In the SP admin console, go to Adapters.
› Choose the OpenToken Adapter.
› Click the Extended Contract tab.
› Enter Email, add. Enter Fullname, add.
› Done, save.
› You’ll have to remap the assertion (follow the red text prompts).
10 Proprietary | Do not distribute — Copyright ©2022 Ping Identity Corporation. All rights reserved.