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
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¶m1=test¶m2=newValue
O redirecionamento do provedor de identidades se torna:
<IDPProvider Authorize URI>?client_id=....redirect_uri=....&brand=abc¶m1=test¶m2=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
}