Transferencia de Parámetros Personalizados a un Proveedor de Identidad Social

Utilice la API de REST de los dominios de identidad para transferir un parámetro personalizado para las configuraciones del proveedor de identidad social (IdP). Para cada IdP social, puede definir parámetros personalizados estáticos y dinámicos, que se transfieren tal cual a IdP cuando se envían en una solicitud de autorización.

Definición de Parámetro Personalizado

Puede definir asignaciones de parámetros de retransmisión mediante el atributo social relayIdpParamMappings. Este parámetro almacena los pares clave-valor de asignación para un IdP social. Un tipo de parámetro dinámico se asigna a un valor vacío o nulo. Un tipo de parámetro estático contiene un valor.
  • Si una clave se define como un parámetro estático, pero se transfiere con un valor diferente, en tiempo de ejecución, se utiliza el valor estático definido en la configuración IdP.
  • Si se transfiere una variable de parámetro de retransmisión en autorización y la URL no está definida en la configuración IdP, esta variable se ignora.
"relayIdpParamMappings": [
   {
    "relayParamKey": "brand",           //dynamic, since string value is empty
    "relayParamValue": ""
   },
   {
    "relayParamKey": "param1"           //dynamic, since value is null (not defined)
   },
   {
    "relayParamKey": "param2",          //static, since value is defined
    "relayParamValue": "value2"
   }

Ejemplo de asignaciones de parámetros de retransmisión que se transfieren a IdP

Esta URL de autorización que se transfiere a la API de REST de dominios de identidad:

https://<domainURL>/oauth2/v1/authorize?response_type=id_token&scope=openid&state=1234&nonce=123&client_id=<test_client>&redirect_uri=https://cloud.oracle.com& brand=abc&newParam=blah&param1=test&param2=newValue

El redireccionamiento del proveedor de identidad se convierte en:

<IDPProvider Authorize URI>?client_id=....redirect_uri=....&brand=abc&param1=test&param2=value2.

La variable newParam se ignora porque no se ha definido en la configuración original de IdP. El valor de param2 es estático y no se cambia durante la autorización de tiempo de ejecución. El parámetro dinámico brand obtiene un valor en tiempo de ejecución, porque se ha definido inicialmente como un tipo dinámico durante la configuración IdP.

Crear una IdP social con asignación de parámetros de retransmisión

cURL: POST /admin/v1/SocialIdentityProviders

Cuerpo de solicitud de ejemplo

{
    "registrationEnabled": true,
    "showOnLogin": true,
    "description": "description",
    "serviceProviderName": "Facebook",
    "enabled": true,
    "accountLinkingEnabled": true,
    "name": "test provider custom param",
    "schemas": 
            [
                "urn:ietf:params:scim:schemas:oracle:idcs:SocialIdentityProvider"
            ],
    "consumerKey": "clientId12345",
    "consumerSecret": "clientSecret12345",
    "relayIdpParamMappings": [
     {
        "relayParamKey": "brand", 
        "relayParamValue": ""
    },
    {
        "relayParamKey": "param1" 
    },
    {
        "relayParamKey": "param2",  
        "relayParamValue": "value2"
    }
]
}

Cuerpo de respuesta de ejemplo

{
    "idcsCreatedBy": {
        "type": "User",
        "display": "admin opc",
        "value": "<user-id>",
        "$ref": "https://<domainURL>/admin/v1/Users/<user-id>"
    },
    "id": "<identity-provider-id>",
    "meta": {
        "created": "2024-03-26T05:09:37.627Z",
        "lastModified": "2024-03-26T05:09:37.627Z",
        "version": "7f3acb03d59644ac956bc1b1a101f08b",
        "resourceType": "IdentityProvider",
        "location": "https://<domainURL>/admin/v1/IdentityProviders/<identity-provider-id>"
    },
    "urn:ietf:params:scim:schemas:oracle:idcs:extension:x509:IdentityProvider": {
        "crlEnabled": true
    },
    "enabled": true,
    "idcsLastModifiedBy": {
        "value": "<user-id>",
        "display": "admin opc",
        "type": "User",
        "$ref": "https://<domainURL>/admin/v1/Users/<user-id>"
    },
    "partnerName": "test provider custom param",
    "shownOnLoginPage": true,
    "description": "description",
    "ocid": "<domain-ocid>,
    "accountLinkingEnabled": true,
    "registrationEnabled": true,
    "serviceProviderName": "Facebook",
    "consumerSecret": "clientSecret12345",
    "idAttribute": "email",
    "consumerKey": "clientId12345",
    "relayIdpParamMappings": [
        {
            "relayParamKey": "brand"
        },
        {
            "relayParamKey": "param1"
        },
        {
            "relayParamKey": "param2",
            "relayParamValue": "value2"
        }
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:oracle:idcs:SocialIdentityProvider"
    ],
    "name": "test provider custom param",
    "showOnLogin": true
}

Agregar una asignación de parámetros de retransmisión a una IdP existente

cURL: PATCH /admin/v1/SocialIdentityProviders/{idpId}

Cuerpo de solicitud de ejemplo

{
  "schemas": [
    "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
    {
      "op": "add",
      "path": "relayIdpParamMappings",
      "value": [
        {
          "relayParamKey": "param3"
        },
        {
          "relayParamKey": "param4",
          "relayParamValue": "value4"
        }
      ]
    }
  ]
}

Cuerpo de respuesta de ejemplo

{
    "idcsCreatedBy": {
        "type": "User",
        "display": "admin opc",
        "value": "<user-id>",
        "$ref": "https://<domainURL>/admin/v1/Users/<user-id>"
    },
    "id": "<identity-provider-id>",
    "meta": {
        "created": "2024-03-26T05:09:37.627Z",
        "lastModified": "2024-03-26T05:15:53.551Z",
        "version": "c5e3dd4485904bc98d73aedb1a994a6e",
        "resourceType": "IdentityProvider",
        "location": "https://<domainURL>/admin/v1/IdentityProviders/<identity-provider-id>"
    },
    "urn:ietf:params:scim:schemas:oracle:idcs:extension:x509:IdentityProvider": {
        "crlEnabled": true
    },
    "enabled": true,
    "idcsLastModifiedBy": {
        "value": "<user-id>",
        "display": "admin opc",
        "type": "User",
        "$ref": "https://<domainURL>/admin/v1/Users/<user-id>"
    },
    "partnerName": "test provider custom param",
    "shownOnLoginPage": true,
    "description": "description",
    "ocid": "<domain-ocid>,
    "accountLinkingEnabled": true,
    "registrationEnabled": true,
    "serviceProviderName": "Facebook",
    "consumerSecret": "clientSecret12345",
    "idAttribute": "email",
    "consumerKey": "clientId12345",
    "relayIdpParamMappings": [
        {
            "relayParamKey": "param3"
        },
        {
            "relayParamKey": "param4",
            "relayParamValue": "value4"
        },
        {
            "relayParamKey": "brand"
        },
        {
            "relayParamKey": "param1"
        },
        {
            "relayParamKey": "param2",
            "relayParamValue": "value2"
        }
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:oracle:idcs:SocialIdentityProvider"
    ],
    "name": "test provider custom param",
    "showOnLogin": true
}

Recuperar asignaciones de parámetros de retransmisión para un IdP existente

cURL: GET /admin/v1/SocialIdentityProviders/{idpId}?attributes=relayIdpParamMappings

Cuerpo de solicitud de ejemplo: no aplicable.

Cuerpo de respuesta de ejemplo

{
    "id": "<identity-provider-id>",
    "relayIdpParamMappings": [
        {
            "relayParamKey": "param3"
        },
        {
            "relayParamKey": "param4",
            "relayParamValue": "value4"
        },
        {
            "relayParamKey": "brand"
        },
        {
            "relayParamKey": "param1"
        },
        {
            "relayParamKey": "param2",
            "relayParamValue": "value2"
        }
    ],
    "name": "test provider custom param"
}

Actualización de una asignación de parámetros de retransmisión para IdP

cURL: PATCH /admin/v1/SocialIdentityProviders/{idpId}

Cuerpo de solicitud de ejemplo

{
  "schemas": [
    "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
    {
      "op": "replace",
      "path": "relayIdpParamMappings[relayParamKey eq \"param2\"]",
      "value":[
        {
          "relayParamKey": "param2",
          "relayParamValue": "blah"
        }
      ]
    }
  ]
}

Cuerpo de respuesta de ejemplo

{
    "idcsCreatedBy": {
        "type": "User",
        "display": "admin opc",
        "value": "<user-id>",
        "$ref": "https://<domainURL>/admin/v1/Users/<user-id>"
    },
    "id": "<identity-provider-id>",
    "meta": {
        "created": "2024-03-26T05:09:37.627Z",
        "lastModified": "2024-03-26T05:17:16.894Z",
        "version": "cff0f9903fcf47fb9e079477565cc7fa",
        "resourceType": "IdentityProvider",
        "location": "https://<domainURL>/admin/v1/IdentityProviders/<identity-provider-id>"
    },
    "urn:ietf:params:scim:schemas:oracle:idcs:extension:x509:IdentityProvider": {
        "crlEnabled": true
    },
    "enabled": true,
    "idcsLastModifiedBy": {
        "value": "<user-id>",
        "display": "admin opc",
        "type": "User",
        "$ref": "https://<domainURL>/admin/v1/Users/<user-id>"
    },
    "partnerName": "test provider custom param",
    "shownOnLoginPage": true,
    "description": "description",
    "ocid": "<domain-ocid>,
    "accountLinkingEnabled": true,
    "registrationEnabled": true,
    "serviceProviderName": "Facebook",
    "consumerSecret": "clientSecret12345",
    "idAttribute": "email",
    "consumerKey": "clientId12345",
    "relayIdpParamMappings": [
        {
            "relayParamKey": "param3"
        },
        {
            "relayParamKey": "param4",
            "relayParamValue": "value4"
        },
        {
            "relayParamKey": "brand"
        },
        {
            "relayParamKey": "param1"
        },
        {
            "relayParamKey": "param2",
            "relayParamValue": "blah"
        }
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:oracle:idcs:SocialIdentityProvider"
    ],
    "name": "test provider custom param",
    "showOnLogin": true
}

Suprimir una asignación de parámetros de retransmisión de IdP

cURL: PATCH /admin/v1/SocialIdentityProviders/{idpId}

Cuerpo de solicitud de ejemplo

{
  "schemas": [
    "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
    {
      "op": "remove",
      "path": "relayIdpParamMappings[relayParamKey eq \"param1\"]"
    }
  ]
}

Cuerpo de respuesta de ejemplo

{
    "idcsCreatedBy": {
        "type": "User",
        "display": "admin opc",
        "value": "<user-id>",
        "$ref": "https://<domainURL>/admin/v1/Users/<user-id>"
    },
    "id": "<identity-provider-id>",
    "meta": {
        "created": "2024-03-26T05:09:37.627Z",
        "lastModified": "2024-03-26T05:18:02.914Z",
        "version": "87dd609f85ee4a51905bc7d5071c487d",
        "resourceType": "IdentityProvider",
        "location": "https://<domainURL>/admin/v1/IdentityProviders/<identity-provider-id>"
    },
    "urn:ietf:params:scim:schemas:oracle:idcs:extension:x509:IdentityProvider": {
        "crlEnabled": true
    },
    "enabled": true,
    "idcsLastModifiedBy": {
        "value": "<user-id>",
        "display": "admin opc",
        "type": "User",
        "$ref": "https://<domainURL>/admin/v1/Users/<user-id>"
    },
    "partnerName": "test provider custom param",
    "shownOnLoginPage": true,
    "description": "description",
    "ocid": "<domain-ocid>,
    "accountLinkingEnabled": true,
    "registrationEnabled": true,
    "serviceProviderName": "Facebook",
    "consumerSecret": "clientSecret12345",
    "idAttribute": "email",
    "consumerKey": "clientId12345",
    "relayIdpParamMappings": [
        {
            "relayParamKey": "param3"
        },
        {
            "relayParamKey": "param4",
            "relayParamValue": "value4"
        },
        {
            "relayParamKey": "brand"
        },
        {
            "relayParamKey": "param2",
            "relayParamValue": "blah"
        }
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:oracle:idcs:SocialIdentityProvider"
    ],
    "name": "test provider custom param",
    "showOnLogin": true
}

Suprimir todas las asignaciones de parámetros de retransmisión de IdP

cURL: PATCH /admin/v1/SocialIdentityProviders/{idpId}

Cuerpo de solicitud de ejemplo


  "schemas": [
    "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
    {
      "op": "remove",
      "path": "relayIdpParamMappings"
    }
  ]
}

Cuerpo de respuesta de ejemplo

{
    "idcsCreatedBy": {
        "type": "User",
        "display": "admin opc",
        "value": "<user-id>",
        "$ref": "https://<domainURL>/admin/v1/Users/<user-id>"
    },
    "id": "<identity-provider-id>",
    "meta": {
        "created": "2024-03-26T05:09:37.627Z",
        "lastModified": "2024-03-26T05:18:39.488Z",
        "version": "b02a6f8463904f4f8567edf59cf1efd5",
        "resourceType": "IdentityProvider",
        "location": "https://<domainURL>/admin/v1/IdentityProviders/<identity-provider-id>"
    },
    "urn:ietf:params:scim:schemas:oracle:idcs:extension:x509:IdentityProvider": {
        "crlEnabled": true
    },
    "enabled": true,
    "idcsLastModifiedBy": {
        "value": "<user-id>",
        "display": "admin opc",
        "type": "User",
        "$ref": "https://<domainURL>/admin/v1/Users/<user-id>"
    },
    "partnerName": "test provider custom param",
    "shownOnLoginPage": true,
    "description": "description",
    "ocid": "<domain-ocid>,
    "accountLinkingEnabled": true,
    "registrationEnabled": true,
    "serviceProviderName": "Facebook",
    "consumerSecret": "clientSecret12345",
    "idAttribute": "email",
    "consumerKey": "clientId12345",
    "schemas": [
        "urn:ietf:params:scim:schemas:oracle:idcs:SocialIdentityProvider"
    ],
    "name": "test provider custom param",
    "showOnLogin": true
}