Passando Parâmetros Personalizados para um Provedor de Identidades Social

Use a API REST de domínios de identidades para especificar um parâmetro personalizado para configurações do provedor de identidades social (IdP). Para cada IdP social, você pode definir parâmetros personalizados estáticos e dinâmicos, que são passados no estado em que se encontram para o IdP quando enviados em uma solicitação de autorização.

Definição de Parâmetro Personalizado

Você pode definir mapeamentos de parâmetro de retransmissão usando o atributo social relayIdpParamMappings. Este parâmetro armazena pares de chave/valor de mapeamento para um IdP social. Um tipo de parâmetro dinâmico é mapeado para um valor vazio ou nulo. Um tipo de parâmetro estático contém um valor.
  • Se uma chave for definida como um parâmetro estático, mas informada com um valor diferente, no runtime, o valor estático definido na configuração IdP será usado.
  • Se uma variável de parâmetro de retransmissão for informada na autorização e o URL estiver indefinido na configuração IdP, essa variável será ignorada.
"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"
   }

Exemplo de Mapeamentos de Parâmetro de Relé que Estão Sendo Transmitidos para um IdP

Este URL de autorização que é informado para a API REST dos domínios de identidades:

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

O redirecionamento do provedor de identidades se torna:

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

A variável newParam é ignorada porque não foi definida na configuração IdP original. O valor de param2 é estático e não é alterado durante a autorização de runtime. O parâmetro dinâmico brand obtém um valor no runtime, porque ele foi definido inicialmente como um tipo dinâmico durante a configuração IdP.

Criar um Social IdP com Mapeamento de Parâmetro de Relé

cURL: POST /admin/v1/SocialIdentityProviders

Exemplo de Corpo da Solicitação

{
    "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"
    }
]
}

Exemplo de Corpo da Resposta

{
    "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
}

Adicionar um Mapeamento de Parâmetros de Relé a um IdP Existente

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

Exemplo de Corpo da Solicitação

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

Exemplo de Corpo da Resposta

{
    "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
}

Extrair Mapeamentos de Parâmetro de Relé para um IdP Existente

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

Exemplo de Corpo da Solicitação: Não aplicável.

Exemplo de Corpo da Resposta

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

Atualizar um Mapeamento de Parâmetros de Relé para um IdP

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

Exemplo de Corpo da Solicitação

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

Exemplo de Corpo da Resposta

{
    "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
}

Excluir um Mapeamento de Parâmetros de Relé de um IdP

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

Exemplo de Corpo da Solicitação

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

Exemplo de Corpo da Resposta

{
    "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
}

Excluir Todos os Mapeamentos de Parâmetros de Relé de um IdP

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

Exemplo de Corpo da Solicitação


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

Exemplo de Corpo da Resposta

{
    "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
}