Contents
Davinci Flow
Davinci is being used to overcome a couple of limitations of the Credential Adapter in PingFederate:
- Credential Issuance is not supported - only Presentation
- Verify IK does not support Biographic Name matching
To perform these functions, the PF Davinci IK is used to pass information from the Neo IKs into a Flow.
Davinci Flow
Notes
- The Input Schema is populated from the Credential used to begin the transaction
- User must be created in the Neo Env and
VerifiedEmployee\VerifiedExternalcredential issued
- User must be created in the Neo Env and
- The Verify
CreateTransactionnode uses the InputgivenNameandsurnamevalues- There's a Custom JS Function used to extract the
BABEL_STREETobject from the Metadata, that is checked to see that it's notNONEorLOW- Note: This is why it's important to use your Legal name on the Credential (unless you want to demo the failed verification)
- There's a Custom JS Function used to extract the
- There are a couple of calls in the Flow that are not currently available in the DV Connectors - these need a Worker token
- I reuse the
PingOne Davinci ConnectorWorker App (easier than adding one) - This is a
CLIENT_SECRET_BASICApp - I use theStringconnector to construct theAuthorization: Basicheader- There's a FR to allow Variable Secrets to be used in this Action - this is why it's a String
- I reuse the
- The 2 calls that use this Worker:
P1 Branding- I do the Branding in the Verify QR display from PingOne Branding - change the Logo there- The branding carries over into the Verify WebApp, but not PID App
Issue Credential- The DV Connector doesn't supportMANAGEDor thecredDataobject that is injected into the call
- The
InternalAccessCredential has a flag -isInternalthat is dependant on the Credential you used to get it:VerifiedEmployeesetsisInternal: trueVerifiedExternalsetsisInternal: false
- This attribute is exposed in PingFed in the
Cred - InternalAccessIK and can be used to add additional Rules in Policy- Look at the
Verified_CredentialFragment - there's already a rule forriskLevel != LOW
- Look at the