POST /api/v1/idps

Creates a new identity provider (IdP) integration.

SAML 2.0 IdP

You must first add the IdP's signature certificate to the IdP key store before you can add a SAML 2.0 IdP with a kid credential reference.

Don't use fromURI to automatically redirect a user to a particular app after successfully authenticating with a third-party IdP. Instead, use SAML deep links. Using fromURI isn't tested or supported. For more information about using deep links when signing users in using an SP-initiated flow, see Understanding SP-Initiated Login flow.

Use SAML deep links to automatically redirect the user to an app after successfully authenticating with a third-party IdP. To use deep links, assemble these three parts into a URL:

The deep link for the above three parts is:
https://${yourOktaDomain}/sso/saml2/:idpId/app/:app-location/:appId/sso/saml?RelayState=:anyUrlEncodedValue

Smart Card X509 IdP

You must first add the IdP's server certificate to the IdP key store before you can add a Smart Card X509 IdP with a kid credential reference. You need to upload the whole trust chain as a single key using the Key Store API. Depending on the information stored in the smart card, select the proper template idpuser.subjectAltNameEmail or idpuser.subjectAltNameUpn.

Identity verification vendors as identity providers

Identity verification (IDV) vendors work like IdPs, with a few key differences. IDV vendors verify your user's identities by requiring them to submit a proof of identity. There are many ways to verify user identities. For example, a proof of identity can be a selfie to determine liveliness or it can be requiring users to submit a photo of their driver's license and matching that information with a database.

There are three IDV vendors (Persona, CLEAR Verified, and Incode) with specific configuration settings and another IDV vendor type (Custom IDV) that lets you create a custom IDV vendor, using a standardized IDV process. You can configure each of the IDV vendors as IdPs in your org by creating an account with the vendor, and then creating an IdP integration. Control how the IDVs verify your users by using Okta account management policy rules.

Servers

Request headers

Name Type Required Description
Content-Type String Yes The media type of the request body.

Default value: "application/json"

Request body fields

Name Type Required Description
id String No

Unique key for the IdP

_links Object No

Specifies link relations (see Web Linking) available using the JSON Hypertext Application Language specification. This object is used for dynamic discovery of related resources and lifecycle operations.

created String No

Timestamp when the object was created

issuerMode String No

Indicates whether Okta uses the original Okta org domain URL or a custom domain URL in the request to the social IdP

Valid values:

  • "CUSTOM_URL"
  • "DYNAMIC"
  • "ORG_URL"

Default value: "DYNAMIC"

name String No

Unique name for the IdP

properties Object No

The properties in the IdP properties object vary depending on the IdP type

properties.aalValue String No

The authentication assurance level (AAL) value for the Login.gov IdP. See Add a Login.gov IdP. Applies to LOGINGOV and LOGINGOV_SANDBOX IdP types.

properties.additionalAmr[] Array No

The additional Assurance Methods References (AMR) values for Smart Card IdPs. Applies to X509 IdP type.

properties.inquiryTemplateId String Yes

The ID of the inquiry template from your Persona dashboard. The inquiry template always starts with itmpl. Applies to the IDV_PERSONA IdP type.

properties.ialValue String No

The type of identity verification (IAL) value for the Login.gov IdP. See Add a Login.gov IdP. Applies to LOGINGOV and LOGINGOV_SANDBOX IdP types.

properties.idvMetadata Object No

Metadata about the IDV vendor. Available only for IDV_STANDARD IdPs.

properties.idvMetadata.privacyPolicy String No

A URL that links to the privacy policy for the IDV vendor

properties.idvMetadata.termsOfUse String No

A URL that links to the terms of use for the IDV vendor

properties.idvMetadata.vendorDisplayName String No

The display name of the IDV vendor

protocol No

IdP-specific protocol settings for endpoints, bindings, and algorithms used to connect with the IdP and validate messages

type String No

The IdP object's type property identifies the social or enterprise IdP used for authentication. Each IdP uses a specific protocol, therefore the protocol object must correspond with the IdP type. If the protocol is OAuth 2.0-based, the protocol object's scopes property must also correspond with the scopes supported by the IdP type. For policy actions supported by each IdP type, see IdP type policy actions.

TypeDescriptionCorresponding protocolCorresponding protocol scopes
AMAZONAmazon as the IdPOpenID Connectprofile, profile:user_id
APPLEApple as the IdPOpenID Connectnames, email, openid
DISCORDDiscord as the IdPOAuth 2.0identify, email
FACEBOOKFacebook as the IdPOAuth 2.0public_profile, email
GITHUBGitHub as the IdPOAuth 2.0user
GITLABGitLab as the IdPOpenID Connectopenid, read_user, profile, email
GOOGLEGoogle as the IdPOpenID Connectopenid, email, profile
IDV_PERSONAPersona as the IDV IdPID verification
IDV_CLEARCLEAR Verified as the IDV IdPID verificationopenid, profile, identity_assurance
IDV_INCODEIncode as the IDV IdPID verificationopenid, profile, identity_assurance
IDV_STANDARDCustom IDV as the IDV IdPID verificationopenid, profile, identity_assurance
LINKEDINLinkedIn as the IdPOAuth 2.0r_emailaddress, r_liteprofile
LOGINGOVLogin.gov as the IdPOpenID Connectemail, profile, profile:name
LOGINGOV_SANDBOXLogin.gov's identity sandbox as the IdPOpenID Connectemail, profile, profile:name
MICROSOFTMicrosoft Enterprise SSO as the IdPOpenID Connectopenid, email, profile, https://graph.microsoft.com/User.Read
OIDCIdP that supports OpenID ConnectOpenID Connectopenid, email, profile
PAYPALPaypal as the IdPOpenID Connectopenid, email, profile
PAYPAL_SANDBOXPaypal Sandbox as the IdPOpenID Connectopenid, email, profile
SALESFORCESalesForce as the IdPOAuth 2.0id, email, profile
SAML2Enterprise IdP that supports the SAML 2.0 Web Browser SSO ProfileSAML 2.0
SPOTIFYSpotify as the IdPOpenID Connectuser-read-email, user-read-private
X509Smart Card IdPMutual TLS
XEROXero as the IdPOpenID Connectopenid, profile, email
YAHOOYahoo as the IdPOpenID Connectopenid, profile, email
YAHOOJPYahoo Japan as the IdPOpenID Connectopenid, profile, email
OKTA_INTEGRATIONIdP that supports the OpenID Connect Org2Org IdPOpenID Connectopenid, email, profile

Valid values:

  • "APPLE"
  • "PAYPAL_SANDBOX"
  • "OIDC"
  • "YAHOO"
  • "FACEBOOK"
  • "SAML2"
  • "LINKEDIN"
  • "MICROSOFT"
  • "LOGINGOV_SANDBOX"
  • "GITHUB"
  • "IDV_STANDARD"
  • "XERO"
  • "GOOGLE"
  • "IDV_CLEAR"
  • "X509"
  • "SPOTIFY"
  • "YAHOOJP"
  • "GITLAB"
  • "IDV_PERSONA"
  • "OKTA_INTEGRATION"
  • "IDV_INCODE"
  • "AMAZON"
  • "LOGINGOV"
  • "PAYPAL"
  • "SALESFORCE"
  • "DISCORD"
status String No

Valid values:

  • "ACTIVE"
  • "INACTIVE"
lastUpdated String No

Timestamp when the object was last updated

How to start integrating

  1. Add HTTP Task to your workflow definition.
  2. Search for the API you want to integrate with and click on the name.
    • This loads the API reference documentation and prepares the Http request settings.
  3. Click Test request to test run your request to the API and see the API's response.