Integrating Flows into Applications
After you create a flow, integrate it into a user-facing application. Integrating a flow into an application lets your users launch the flow from that application.
You can integrate a flow in different ways. Each method launches the flow in a different way. Choose an integration method based on the type of flow that you want to launch and the desired user experience.
The following methods can be used to launch a flow:
-
A redirect through PingOne. This method uses a call to a PingOne application to launch a flow with a redirect. This method is effective for flows with UI components. You should use a redirect through PingOne if you want to launch the flow in a new application page that replaces the current page and if you want to use OpenID Connect (OIDC) or Security Assertion Markup Language (SAML) authentication.
-
A redirect through PingOne using DaVinci as an external identity provider (IdP). This method uses a call to a PingOne application to launch a flow with a redirect using an external IdP configuration. This method is effective for flows with UI components, but it’s not recommended unless you have already configured your environment for it. If you want to configure your environment to launch flows with a redirect through PingOne, use this procedure instead.
-
The widget. This method launches a flow inside of a widget on the current page. This method is effective for situations in which you do not want to redirect the user to a new URL.
-
An API call. This method launches a flow using an API call. This method is effective for flows without a UI component.
-
The SDK. This method launches a flow from an application that you develop using the DaVinci module for the Ping SDK for JavaScript, Ping SDK for iOS, or Ping SDK for Android. This method is appropriate if you want fine-grained control of a user’s mobile experience.
-
The PingFederate integration. This method uses the widget to launch a flow from an existing PingFederate deployment.
To switch between using flows for a PingOne redirect integration and an integration using the DaVinci widget, refer to Switching between PingOne and DaVinci widget integrations. |
Integration method comparison
Description
Redirect |
Launches flow in new browser tab |
Widget |
Launches flow within current browser tab |
API |
Launches flow without UI components using API call |
SDK |
Launches flow from native or web apps using the Ping SDKs from a PingOne application |
DaVinci Integration Kit for PingFederate (widget mode) |
Launches flow within current browser tab |
DaVinci Integration Kit for PingFederate (API mode) |
Launches flow without UI components using API call |
Trigger
Redirect |
PingOne Policy link |
Widget |
Widget embedded in application |
API |
API Call |
SDK |
Launch from within SDK application |
DaVinci Integration Kit for PingFederate (widget mode) |
PingFederate authentication policy initiates DaVinci Integration Kit adapter in widget-based flow mode |
DaVinci Integration Kit for PingFederate (API mode) |
PingFederate authentication policy initiates DaVinci Integration Kit adapter in API-based flow mode |
UX Hosted By
Redirect |
DaVinci |
Widget |
Application that launched the flow |
API |
None Launching application must handle UX |
SDK |
Custom application built with the SDK |
DaVinci Integration Kit for PingFederate (widget mode) |
PingFederate |
DaVinci Integration Kit for PingFederate (API mode) |
None DaVinci adapter in API-based flow mode does not present a UI |
HTML
Redirect |
DaVinci using PingOne Forms or Custom HTML |
Widget |
DaVinci with Custom HTML |
API |
None Launching application must handle UX |
SDK |
Launching application must handle UX |
DaVinci Integration Kit for PingFederate (widget mode) |
DaVinci Integration Kit template |
DaVinci Integration Kit for PingFederate (API mode) |
None DaVinci adapter in API-based flow mode does not present a UI |
CSS
Redirect |
DaVinci |
Widget |
Host application |
API |
None Launching application must handle UX |
SDK |
Launching application must handle UX |
DaVinci Integration Kit for PingFederate (widget mode) |
DaVinci Integration Kit template |
DaVinci Integration Kit for PingFederate (API mode) |
None DaVinci adapter in API-based flow mode does not present a UI |
User Experience
Redirect |
User’s browser tab is redirected to DaVinci with refresh |
Widget |
Flow is launched within the host application |
API |
None Launching application must handle UX |
SDK |
Flow is launched within the application |
DaVinci Integration Kit for PingFederate (widget mode) |
Flow is launched within PingFederate |
DaVinci Integration Kit for PingFederate (API mode) |
None DaVinci adapter in API-based flow mode does not present a UI |
Modes
Redirect |
Full screen |
Widget |
Embedded in host application or modal |
API |
None Launching application must handle UX |
SDK |
Depends on launching application |
DaVinci Integration Kit for PingFederate (widget mode) |
Embedded in DaVinci Integration Kit template |
DaVinci Integration Kit for PingFederate (API mode) |
None DaVinci adapter in API-based flow mode does not present a UI |
Developer Experience for Launching Flows
This applies only to launching flows. Flow creation is equally complex for all methods. |
Redirect |
No development skills needed Flow hosted in DaVinci |
Widget |
Minimal development effort Flow is a component in existing application |
API |
Significant development effort |
SDK |
Significant development effort |
DaVinci Integration Kit for PingFederate (widget mode) |
Minimal development effort
|
DaVinci Integration Kit for PingFederate (API mode) |
No development skills needed Flow result data is available in PingFederate authentication policy |