PingID MFA
The PingID MFA Connector requests authentication from a PingID MFA instance via PPM request. PingID returns the authentication state and attributes in claims to the Orchestrator.
Configuration
The following values can be provided to the PingID MFA connector via the Maverics configuration file.
ppmURL
The URL where Maverics will send the PPM request (normally "https://authenticator.pingone.com/pingid/ppm/auth"
).
secretKey
The client secret of the Maverics application used to sign JSON Web Tokens (JWT).
The secret must be base64 encoded.
idpAccountID
The account ID of the service provider created in PingID.
issuer
The issuer claim identifying the principal that issued the JWT.
audience
The audience claim identifying the recipients that the JWT is intended for (normally "pingidauthenticator"
).
mfaCallbackURL
The URL that PingID will use to POST the PPM response back to. The Maverics PPM MFA handler will be served on this URL. The URL path can be an arbitrary endpoint such as /stuff/mfa/callback
or /maverics-handlers/mfa/callback
.
Claim Mapping in Authentication Policy
Using the PingID MFA connector in authentication policy requires a mapping
between the PingID username
(sent as the “sub” in the PPM request) to a corresponding claim provided by the IDP connector. This matches user’s identity in the first factor (IDP) with their PingID identity. For example:
authentication:
idps:
- azure
mfa:
- pingid:
mapping:
- username: azure.name
Sample Connector Configuration
connectors:
- name: pingid
type: pingid
ppmURL: "https://authenticator.pingone.com/pingid/ppm/auth"
secretKey: <example_secret>
idpAccountID: "0aa0000a-a000-000a-00aaa-a0000aa00000"
issuer: "Example"
audience: "pingidauthenticator"
mfaCallbackURL: "https://maverics.example.com/mfa/callback"
Complete configuration sample with Azure AD
version: 0.1
tls:
sonar-app:
caFile: /etc/maverics/certs/rootCA.pem
maverics:
certFile: /etc/maverics/certs/maverics.sonarsystems.co.crt
keyFile: /etc/maverics/certs/maverics.sonarsystems.co.key
http:
address: :443
tls: maverics
session:
cookie:
domain: example.com
appgateways:
- name: Sonar
basePath: /
upstream: https://app.sonarsystems.com:8443
tls: sonar-app
unauthorizedPage: https://example.com/sonar/accessdenied
idps:
- name: azure
- name: pingid
headers:
SM_USER: azure.name
firstname: azure.name
lastname: azure.surname
policies:
- location: /sonar/accessdenied
allowUnauthenticated: true
- location: /sonar
unauthorizedPage: https://app.sonarsystems.com:8443/sonar/accessdenied
authentication:
idps:
- azure
mfa:
- pingid:
mapping:
- username: azure.name
connectors:
- name: azure
type: azure
authType: saml
samlConsumerServiceURL: https://example.com/saml
samlLogoutCallbackURL: https://example.com/logout
samlMetadataURL: https://login.microsoftonline.com/<ID>/federationmetadata/2007-06/federationmetadata.xml?appid=<APP_ID>
samlEntityID: https://example.com
- name: pingid
type: pingid
ppmURL: "https://authenticator.pingone.com/pingid/ppm/auth"
secretKey: <example_secret>
idpAccountID: "0aa0000a-a000-000a-00aaa-a0000aa00000"
issuer: "Example"
audience: "pingidauthenticator"
mfaCallbackURL: "https://maverics.example.com/mfa/callback"