MspsSSO

updateMspSso

PUT
/api/v1/msps/{msp_id}/ssos/{sso_id}

Update an MSP SSO identity provider configuration, such as IdP URLs, certificates, issuer, NameID format, and unmatched-role handling.

Authorization

Authorization<token>

Preferred authentication method for automation and integrations. Send the API token in the HTTP Authorization header.

Format: Authorization: Token {apitoken}

Notes:

  • An API token generated for a specific admin has the same privileges as that admin
  • An API token is automatically removed if it is not used for more than 90 days
  • SSO admins cannot generate admin API tokens. Use organization API tokens when scoped Org/Site privileges are needed.

In: header

Path Parameters

msp_id*string
Formatuuid
sso_id*string
Formatuuid

Request Body

application/json

Request Body

Single sign-on identity provider configuration

custom_logout_url?string

If idp_type==saml, a URL we will redirect the user after user logout from Mist (for some IdP which supports a custom logout URL that is different from SP-initiated SLO process)

default_role?string

If idp_type==saml, default role to assign if there’s no match. By default, an assertion is treated as invalid when there’s no role matched

group_filter?string

Required if ldap_type==custom, LDAP filter that will identify the type of group

idp_cert?string

If idp_type==saml. IDP Cert (used to verify the signed response)

idp_sign_algo?sso_idp_sign_algo

SAML assertion signing algorithm. Required if idp_type==saml. enum: sha1, sha256, sha384, sha512.

Value in

  • "sha1"
  • "sha256"
  • "sha384"
  • "sha512"
idp_sso_url?string

Required if idp_type==saml, IDP Single-Sign-On URL

idp_type?sso_idp_type

Identity provider type for this SSO configuration. enum: ldap, mxedge_proxy, oauth, saml, openroaming.

Default"saml"

Value in

  • "ldap"
  • "mxedge_proxy"
  • "oauth"
  • "saml"
  • "openroaming"
ignore_unmatched_roles?boolean

If idp_type==saml, ignore any unmatched roles provided in assertion. By default, an assertion is treated as invalid for any unmatched role

issuer?string

If idp_type==saml. IDP issuer URL

ldap_base_dn?string

Required if idp_type==ldap, whole domain or a specific organization unit (container) in Search base to specify where users and groups are found in the LDAP tree

ldap_bind_dn?string

Required if idp_type==ldap, the account used to authenticate against the LDAP

ldap_bind_password?string

Required if idp_type==ldap, the password used to authenticate against the LDAP

ldap_cacerts?array<string>

CA certificates used to validate LDAP or LDAPS server certificates. Required if idp_type==ldap

ldap_client_cert?string

If idp_type==ldap, LDAPS Client certificate

ldap_client_key?string

If idp_type==ldap, Key for the ldap_client_cert

ldap_group_attr?string

Group attribute used to resolve LDAP memberships. If ldap_type==custom

Default"memberOf"
ldap_group_dn?string

Group search base used for custom LDAP group lookup. If ldap_type==custom

Default"base_dn"
ldap_resolve_groups?boolean

If idp_type==ldap, whether to recursively resolve LDAP groups

Defaultfalse
ldap_server_hosts?array<string>

Server hostnames or IP addresses for LDAP or LDAPS when idp_type==ldap

ldap_type?sso_ldap_type

Provider template for LDAP SSO when idp_type==ldap. enum: azure, custom, google, okta.

Default"azure"

Value in

  • "azure"
  • "custom"
  • "google"
  • "okta"
ldap_user_filter?string

Required if ldap_type==custom, LDAP filter that will identify the type of user

member_filter?string

Required if ldap_type==custom,LDAP filter that will identify the type of member

mxedge_proxy?

Mist Edge proxy settings used when idp_type==mxedge_proxy

name*string

Display name of the SSO configuration

nameid_format?sso_nameid_format

SAML NameID format used when idp_type==saml. enum: email, unspecified.

Default"email"

Value in

  • "email"
  • "unspecified"
oauth_cc_client_id?string

Required if idp_type==oauth, Client Credentials

oauth_cc_client_secret?string

Required if idp_type==oauth, oauth_cc_client_secret is RSA private key, of the form "-----BEGIN RSA PRIVATE KEY--...."

Formatpassword
oauth_discovery_url?string

OAuth discovery document URL used when idp_type==oauth

oauth_ping_identity_region?oauth_ping_identity_region

Ping Identity region for OAuth SSO when oauth_type==ping_identity. enum: asia, au, ca, eu, us.

Default"us"

Value in

  • "asia"
  • "au"
  • "ca"
  • "eu"
  • "us"
oauth_provider_domain?oauth_provider_domain

Provider domain for Okta OAuth SSO when oauth_type==okta. enum: okta.com, oktapreview.com, okta-emea.com, okta-gov.com, okta.mil, mtls.okta.com.

Default"okta.com"

Value in

  • "okta.com"
  • "oktapreview.com"
  • "okta-emea.com"
  • "okta-gov.com"
  • "okta.mil"
  • "mtls.okta.com"
oauth_ropc_client_id?string

If idp_type==oauth, ropc = Resource Owner Password Credentials

oauth_ropc_client_secret?string

If oauth_type==azure or oauth_type==azure-gov. oauth_ropc_client_secret can be empty

Formatpassword
oauth_tenant_id?string

Required if idp_type==oauth, oauth_tenant_id

oauth_type?sso_oauth_type

Provider type for OAuth SSO when idp_type==oauth. enum: azure, azure-gov, okta, ping_identity.

Default"azure"

Value in

  • "azure"
  • "azure-gov"
  • "okta"
  • "ping_identity"
openroaming_ssids?array<string>

SSIDs that support OpenRoaming, used when idp_type==openroaming

openroaming_wba_client_cert?string

Optional WBA-issued client certificate for OpenRoaming. If not provided, the default WBA-issued certificate for Juniper will be used.

Formatpassword
openroaming_wba_client_key?string

Optional WBA-issued client private key for OpenRoaming. If not provided, the default WBA-issued key for Juniper will be used.

Formatpassword
role_attr_extraction?string

If idp_type==saml, custom role attribute parsing scheme. Supported Role Parsing Schemes NameSchemecnThe expected role attribute format in SAML Assertion is "CN=cn,OU=ou1,OU=ou2,…"CN (the key) is case-insensitive and exactly 1 CN is expected (or the entire entry will be ignored)E.g. if role attribute is "CN=cn,OU=ou1,OU=ou2" then parsed role value is "cn"

role_attr_from?string

If idp_type==saml, name of the attribute in SAML Assertion to extract role from

Default"Role"
scim_enabled?boolean

If idp_type==oauth, indicates if SCIM provisioning is enabled for the OAuth IDP

Defaultfalse
scim_secret_token?string

If idp_type==oauth, scim_secret_token (auto-generated when not provided by caller and scim_enabled==true, empty string when scim_enabled==false) is used as the Bearer token in the Authorization header of SCIM provisioning requests by the IDP

Formatpassword
Default""

Response Body

curl -X PUT "https://example.com/api/v1/msps/000000ab-00ab-00ab-00ab-0000000000ab/ssos/000000ab-00ab-00ab-00ab-0000000000ab" \  -H "Content-Type: application/json" \  -d '{    "custom_logout_url": "string",    "idp_cert": "string",    "idp_sign_algo": "sha256",    "idp_sso_url": "string",    "ignore_unmatched_roles": true,    "issuer": "string",    "name": "string",    "nameid_format": "email"  }'
{  "created_time": 0,  "custom_logout_url": "string",  "default_role": "string",  "domain": "string",  "id": "b069b358-4c97-5319-1f8c-7c5ca64d6ab1",  "idp_cert": "string",  "idp_sign_algo": "sha256",  "idp_sso_url": "string",  "ignore_unmatched_roles": true,  "issuer": "string",  "modified_time": 0,  "msp_id": "b069b358-4c97-5319-1f8c-7c5ca64d6ab1",  "name": "string",  "nameid_format": "email",  "org_id": "b069b358-4c97-5319-1f8c-7c5ca64d6ab1",  "site_id": "b069b358-4c97-5319-1f8c-7c5ca64d6ab1",  "type": "string"}