Compartir datos

Flujo de consentimiento de recopilación de datos

 

Ficha postal

Para iniciar un viaje es necesario generar un token en el que se debe indicar client_id y client_secret , listados en el menú “Credenciales” del panel de la Aplicación. Verifique la especificación por entorno (Sandbox o Producción).

 

URL de generación de token

https://keycloak.bdc.shared.fsapps.io/auth/realms/consent-management-dev/protocol/openid-connect/token

 

cURL para generación de tokens

curl --key ${PRIVATE_KET_FILE_PATH} --cert ${CERTIFICATE_FILE_PATH} \ --location '${TOKEN_URL}' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'scope=openid' \ --data-urlencode 'client_id=${CLIENT_ID}'

 

Respuesta:

{ "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIySDhCS1U3RWxlaDE2X1JPZjF2NkxlNVBYZXlfWnh6bEFkbjRuWnI4dW5zIn0.eyJleHAiOjE2OTE2OTU0MDQsImlhdCI6MTY5MTY5NTEwNCwianRpIjoiYWE5NmM2ZjUtMWE0Yy00NzU5LTlmMjMtZjI4ODYxMDRjMjJhIiwiaXNzIjoiaHR0cHM6Ly9rZXljbG9hay5iZGMuc2hhcmVkLmZzYXBwcy5pby9hdXRoL3JlYWxtcy9jb25zZW50LW1hbmFnZW1lbnQtZGV2Iiwic3ViIjoiNGQwM2JmMDItNGFkMi00NDRhLTg5ODAtY2VjNmZhZjUzNzZjIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoib3BlbnBsdXNfZmViZDZmYjctMDdjMS00NTA2LTllYmEtNDM3NDkxM2RmZWRiIiwiYWNyIjoiMSIsInNjb3BlIjoib3BlbmlkIGFjY291bnRzX2JhbGFuY2VzOnJlYWQgYWNjb3VudHNfdHJhbnNhY3Rpb25zOnJlYWQgYWNjb3VudHNfb3ZlcmRyYWZ0X2xpbWl0czpyZWFkIGFjY291bnRzOnJlYWQgcmVjZXB0b3IgcHJvZmlsZSIsImNsaWVudEhvc3QiOiIxNzkuMjA5LjQ0LjAiLCJjbGllbnRJZCI6Im9wZW5wbHVzX2ZlYmQ2ZmI3LTA3YzEtNDUwNi05ZWJhLTQzNzQ5MTNkZmVkYiIsInByZWZlcnJlZF91c2VybmFtZSI6InNlcnZpY2UtYWNjb3VudC1vcGVucGx1c19mZWJkNmZiNy0wN2MxLTQ1MDYtOWViYS00Mzc0OTEzZGZlZGIiLCJjbGllbnRBZGRyZXNzIjoiMTc5LjIwOS40NC4wIn0.P_guRCCg6BBevBiKZapVQazzFEqHUaOR4pNA8_gDcdFhXu-qAb1ZKnQ4uRBKTxofUpxeUlBY8HshZWW0apXnj4Rs4Q7e11xosHC7JM-ULsaICqiiBAPRMHJW_3MuMCt4Cw1d1GGZ_cP4pAtvfA71kxP50_6zZ35fvx_1Wq9pBf1JjnrBUbQrGoWh4mSb-XGFqyxmbDpGVRfrJj0kQ0q0yx9Qp0K8q6EPHxdpSAwU88WRHILjBVdup_Xu0e7JtiFwufomRm3ore4_3PQBpbQzq092NyjgaNI2GPTcREJFf3Cab1ihDQ_Ttjrnzg36wjSfwn1bf2yMn4pgZ2uB_A-8hg", "expires_in": 300, "refresh_expires_in": 0, "token_type": "Bearer", "id_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIySDhCS1U3RWxlaDE2X1JPZjF2NkxlNVBYZXlfWnh6bEFkbjRuWnI4dW5zIn0.eyJleHAiOjE2OTE2OTU0MDQsImlhdCI6MTY5MTY5NTEwNCwiYXV0aF90aW1lIjowLCJqdGkiOiIzMmViYWQ4MC1iZTQ3LTQxOTctOWUyZS01MWZkNjZkMjc1ZWQiLCJpc3MiOiJodHRwczovL2tleWNsb2FrLmJkYy5zaGFyZWQuZnNhcHBzLmlvL2F1dGgvcmVhbG1zL2NvbnNlbnQtbWFuYWdlbWVudC1kZXYiLCJhdWQiOiJvcGVucGx1c19mZWJkNmZiNy0wN2MxLTQ1MDYtOWViYS00Mzc0OTEzZGZlZGIiLCJzdWIiOiI0ZDAzYmYwMi00YWQyLTQ0NGEtODk4MC1jZWM2ZmFmNTM3NmMiLCJ0eXAiOiJJRCIsImF6cCI6Im9wZW5wbHVzX2ZlYmQ2ZmI3LTA3YzEtNDUwNi05ZWJhLTQzNzQ5MTNkZmVkYiIsImF0X2hhc2giOiJlbUhXM1dLbVlyYmtyRkpFdm9JNS13IiwiYWNyIjoiMSIsImNsaWVudEhvc3QiOiIxNzkuMjA5LjQ0LjAiLCJjbGllbnRJZCI6Im9wZW5wbHVzX2ZlYmQ2ZmI3LTA3YzEtNDUwNi05ZWJhLTQzNzQ5MTNkZmVkYiIsInByZWZlcnJlZF91c2VybmFtZSI6InNlcnZpY2UtYWNjb3VudC1vcGVucGx1c19mZWJkNmZiNy0wN2MxLTQ1MDYtOWViYS00Mzc0OTEzZGZlZGIiLCJjbGllbnRBZGRyZXNzIjoiMTc5LjIwOS40NC4wIn0.B-OCm-GFOvLhT13wHyA3xDRfDvRjj5Y6SckekpqhFsGRDoMFUFOxjg0lNRJcvnDqwVZAMfIUqzmWAH6CKWbJ6TKlUqnDOBe5pboLmoZ67LaJt6Axn_JaUXiP_WmeXrNwDwTBIetudKCHVxwnjKGnMkbRGQtO5RBYnbIwAWMdCJyRtVmXVKJJ438m2wTifZjG2WViwlUu4gqKDZZmj256OsJIxY3Q08-TdDgKxp_M-d9FSQwyCzMPbNQ_eyrQGkaxDBl1SXTp9UQB6BnQsny3qaBL1fsefZSPtRiQPRcGrvBJmX3nMeBml_-krt1nnhr9QpjxNDOm1f5Howlx5kTpOw", "not-before-policy": 0, "scope": "openid accounts_balances:read accounts_transactions:read accounts_overdraft_limits:read accounts:read receptor profile" }

 

 

POST Crear consentimientos

Con el token generado, es necesario pasarlo en la autorización de llamada /consents , para obtener el consentimiento y la información del usuario, según el modelo siguiente.

 

https://api.opb.bdc.dev.fsapps.io/consent-management/api/v1/consents

 

curl --key ${PRIVATE_KET_FILE_PATH} --cert ${CERTIFICATE_FILE_PATH} \ --location '${CONSENT_MANAGEMENT_BASE_URL}/consent-management/api/v1/consents' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer ${ACCESS_TOKEN}' \ --data '{ "data": { "rut": "10031617" }, "scopes": [ "accounts:read", "accounts_balances:read" ], "expirationDateTime": "2024-06-15T15:14:10Z", "redirectUri": "http://localhost:9090/statusView" }'

 

Respuesta:

{ "id": "64d5393cd3dec500101fb54e", "interactionId": "64d5393cd3dec500101fb54f", "authorizationUrl": "http://localhost:9091?consentId=64d5393cd3dec500101fb54e&interactionId=64d5393cd3dec500101fb54f" }

 

 

Redireccionamiento de Autorización

Una vez creado el consentimiento, es necesario solicitar la autorización del mismo. Es imprescindible redirigir al usuario a la etapa de confirmación en BancoEstado. Para ello realice una redirección a la “authorizationUrl” indicada.

 

URL de devolución de llamada del usuario

{redirectUri}?ticket={ticket}&state={consentId}

 

OBTENER consentimientos

Una vez que el cliente regresa del entorno de BancoEstado, con su consentimiento confirmado, es posible realizar una llamada para obtener los datos consentidos en /consentimientos , según el modelo a continuación.

 

https://api.opb.bdc.dev.fsapps.io/consent-management/api/v1/consents/64d1abbe39b8a000115e2532

 

curl --key ${PRIVATE_KET_FILE_PATH} --cert ${CERTIFICATE_FILE_PATH} \ --location '${CONSENT_MANAGEMENT_BASE_URL}/consent-management/api/v1/consents/${CONSENT_ID}' \ --header 'Authorization: Bearer ${ACCESS_TOKEN}'

 

Respuesta:

{ "_id": "64d1abbe39b8a000115e2532", "resourceId": "e199f262-ed8c-4471-961d-37812a2884af", "resourceName": "b0IdSx1H_FMfSNNIZCT4kxVfcpBwkUsF1ELhhHk1hPU", "requestorClientId": "openplus_febd6fb7-07c1-4506-9eba-4374913dfedb", "requestorSubject": "4d03bf02-4ad2-444a-8980-cec6faf5376c", "requestorClientName": "openplus_febd6fb7-07c1-4506-9eba-4374913dfedb", "scopes": [ "accounts:read", "accounts_balances:read", "accounts_transactions:read" ], "status": "AUTHORISED", "redirectUri": "http://localhost:9000", "creationDateTime": "2023-08-08T02:43:10.744Z", "statusUpdateDateTime": "2023-08-08T02:43:12.635Z", "expirationDateTime": "2024-01-08T02:43:09.204Z", "data": { "rut": "10031617" } }

 

 

Intercambio de entradas postales

Después de recibir el ticket, deberás cambiar este código por un token de acceso, para acceder a los datos consentidos por el cliente.

 

https://keycloak.bdc.shared.fsapps.io/auth/realms/consent-management-dev/protocol/openid-connect/token

 

curl --key ${PRIVATE_KET_FILE_PATH} --cert ${CERTIFICATE_FILE_PATH} \ --location '${TOKEN_URL}' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Authorization: Bearer ${ACCESS_TOKEN}' \ --data-urlencode 'grant_type=urn:ietf:params:oauth:grant-type:uma-ticket' \ --data-urlencode 'ticket=${TICKET}'

 

Respuesta:

{ "upgraded": false, "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIySDhCS1U3RWxlaDE2X1JPZjF2NkxlNVBYZXlfWnh6bEFkbjRuWnI4dW5zIn0.eyJleHAiOjE2OTE2OTYxMjksImlhdCI6MTY5MTY5NTgyOSwianRpIjoiOWY4ZmIxN2QtM2Y1NC00NzI3LWI3NzgtMzQ2ZjUxYzg3MjgwIiwiaXNzIjoiaHR0cHM6Ly9rZXljbG9hay5iZGMuc2hhcmVkLmZzYXBwcy5pby9hdXRoL3JlYWxtcy9jb25zZW50LW1hbmFnZW1lbnQtZGV2IiwiYXVkIjoicmVzb3VyY2UtY2xpIiwic3ViIjoiNGQwM2JmMDItNGFkMi00NDRhLTg5ODAtY2VjNmZhZjUzNzZjIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoib3BlbnBsdXNfZmViZDZmYjctMDdjMS00NTA2LTllYmEtNDM3NDkxM2RmZWRiIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyIqIl0sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJkZWZhdWx0LXJvbGVzLWNvbnNlbnQtbWFuYWdlbWVudC1kZXYiLCJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwiYXV0aG9yaXphdGlvbiI6eyJwZXJtaXNzaW9ucyI6W3sic2NvcGVzIjpbImFjY291bnRzX3RyYW5zYWN0aW9uczpyZWFkIiwiYWNjb3VudHNfYmFsYW5jZXM6cmVhZCIsImFjY291bnRzOnJlYWQiXSwicnNpZCI6ImUxOTlmMjYyLWVkOGMtNDQ3MS05NjFkLTM3ODEyYTI4ODRhZiIsInJzbmFtZSI6ImIwSWRTeDFIX0ZNZlNOTklaQ1Q0a3hWZmNwQndrVXNGMUVMaGhIazFoUFUifV19LCJzY29wZSI6ImFkbWluIGVtYWlsIHByb2ZpbGUiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsInByZWZlcnJlZF91c2VybmFtZSI6InNlcnZpY2UtYWNjb3VudC1vcGVucGx1c19mZWJkNmZiNy0wN2MxLTQ1MDYtOWViYS00Mzc0OTEzZGZlZGIifQ.g6dTcc2yCpbtzlGVMhGaNQWPfUY2K69J-zi8hRVNZvN7KJ5zpLnH4xdO1xw8t369G13IrlAyPoK8zB1lcc2xP-lL9UQxMKIkSS8XMXhJVzM_Hx1yoDUEzVflBR69EQrtqYjAbEQ9mEtzRTsf1WVvao3ZfzL4oODiVYayV6Sr2vBtIrkoO71OjmrYQFsVrBDfeHsm_uxPYugTYPbvydJoOuAbCQ_7zfr8INRi5N4I0ix5yvk_lYdbZlzi55H_PChFj-HF0Ojpm27T894nSywSMBzkorEs9dJQh9k-vsUXxxGy4I9pL8KgyFobitaoIH-I7HeetFGkqmkfeqvu8BoO_Q", "expires_in": 300, "refresh_expires_in": 0, "token_type": "Bearer", "not-before-policy": 0 }

 

 

Token de actualización POST

En el escenario en el que sea necesario acceder a los mismos datos que fueron objeto del consentimiento, en un nuevo horario, después del tiempo de espera de 5 minutos, será necesario realizar un token de actualización.

 

https://api.opb.bdc.dev.fsapps.io/consent-management/api/v1/oauth/token

 

curl --key ${PRIVATE_KET_FILE_PATH} --cert ${CERTIFICATE_FILE_PATH} \ --location '${CONSENT_MANAGEMENT_BASE_URL}/consent-management/api/v1/oauth/token' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer ${ACCESS_TOKEN}' \ --data '{ "grant_type": "refresh_token", "extras": { "consentId": "64d1abbe39b8a000115e2532" } }'

 

Respuesta:

{ "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIySDhCS1U3RWxlaDE2X1JPZjF2NkxlNVBYZXlfWnh6bEFkbjRuWnI4dW5zIn0.eyJleHAiOjE2OTE2OTYyMzEsImlhdCI6MTY5MTY5NTkzMSwianRpIjoiZjhjYmFhOWQtOGZiOC00MDQyLWE3MDEtNmNmNzRlMTBmYjFiIiwiaXNzIjoiaHR0cHM6Ly9rZXljbG9hay5iZGMuc2hhcmVkLmZzYXBwcy5pby9hdXRoL3JlYWxtcy9jb25zZW50LW1hbmFnZW1lbnQtZGV2IiwiYXVkIjoicmVzb3VyY2UtY2xpIiwic3ViIjoiNGQwM2JmMDItNGFkMi00NDRhLTg5ODAtY2VjNmZhZjUzNzZjIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoib3BlbnBsdXNfZmViZDZmYjctMDdjMS00NTA2LTllYmEtNDM3NDkxM2RmZWRiIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyIqIl0sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJkZWZhdWx0LXJvbGVzLWNvbnNlbnQtbWFuYWdlbWVudC1kZXYiLCJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwiYXV0aG9yaXphdGlvbiI6eyJwZXJtaXNzaW9ucyI6W3sic2NvcGVzIjpbImFjY291bnRzX3RyYW5zYWN0aW9uczpyZWFkIiwiYWNjb3VudHNfYmFsYW5jZXM6cmVhZCIsImFjY291bnRzOnJlYWQiXSwicnNpZCI6ImUxOTlmMjYyLWVkOGMtNDQ3MS05NjFkLTM3ODEyYTI4ODRhZiIsInJzbmFtZSI6ImIwSWRTeDFIX0ZNZlNOTklaQ1Q0a3hWZmNwQndrVXNGMUVMaGhIazFoUFUifV19LCJzY29wZSI6ImFkbWluIGVtYWlsIHByb2ZpbGUiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsInByZWZlcnJlZF91c2VybmFtZSI6InNlcnZpY2UtYWNjb3VudC1vcGVucGx1c19mZWJkNmZiNy0wN2MxLTQ1MDYtOWViYS00Mzc0OTEzZGZlZGIifQ.M5yWuEsStimAvhiMWSUQPOf5TCLwelDnaBpdrjg-fHsdWILu1njHua26cs8BbDikElUNOABczc_ZLB9TqIk-CQ-uQSN8wA7qHEkGrCfeXMtmdTIRI-8oRwBMKsu-ueB6kEukka_Vh2TnhSydBEenUkdPCINQaa2ILvKAQ_WgTpEQLreK4HVMOm1KDkCHmIvbPrU9FEFIPQqk-m937XNTF5U59cMN4YARbfA1m1gEu5sbns4q0zB_v9DDtF5cVt-VUnp-1hCYQhhDQO8Ux1vrSiILM-bZHljSy86liEgC7C_GlfvX6BzlmCmySQ1s8sFXeCdc8aRYmRYTn-uisTb_gg", "token_type": "Bearer", "expires_in": 300 }

 

A partir de este momento ya podrás acceder a la API del producto y obtener los datos del cliente que prestó su consentimiento.

 

Related content