Resolución de Identidad
La Resolución de Identidad es una aplicación que proporciona características para comparar nombres y direcciones suministrados por el usuario con nombres y direcciones conocidos, y proporcionar una respuesta que indique si las comparaciones son coincidentes o no. Típicamente, esto se utiliza en situaciones donde el nombre y la dirección del Acreedor proporcionados por un tercero son comparados por el Banco Acreedor con el nombre y la dirección asociados a la Cuenta del Acreedor citada, aunque puede ser utilizada en cualquier situación donde se necesite una comparación.
Características
Comparación
La comparación es donde podemos tomar dos valores, un valor conocido real y un valor de comparación proporcionado por el usuario, y compararlos. Estos valores pueden ser el nombre de una persona o una dirección, y cada consulta de comparación puede contener una o más comparaciones de cada tipo. Se devuelve una respuesta que indica si la consulta en su conjunto es una coincidencia, conteniendo puntuaciones para cada comparación sobre cuán bien coinciden esos dos elementos.
Esta comparación se logra al llamar a un netowl producto llamado Namematcher. A pesar del nombre, este producto es capaz de comparar data type s más allá de los nombres de las personas, incluyendo direcciones, nombres organizacionales, lugares y más.
Una única consulta de comparación a la Resolución de Identidad puede contener muchas comparaciones, y dependiendo de la NetOwl producto que se está utilizando, esto puede dividirse en muchos NetOwl solicitudes de comparación.
Las consultas de comparación de IPF a Resolución de Identidad se realizarían típicamente utilizando el biblioteca de cliente, pero el transporte es http basado y también podría ser un custom el enfoque proporcionado coincide con la consulta de comparación api especificación.
Las consultas de comparación de Resolución de Identidad a NetOwl Namematcher también son http que habla el NetOwl API.
funcionalidad principal
Se pueden realizar comparaciones en campos de diferentes tipos, por ejemplo, el nombre de una persona o su dirección. Una única consulta de comparación puede incluir cualquier número de comparaciones de cada tipo.
La implementación para la comparación se logra utilizando NetOwl Namematcher, que proporcionará una puntuación (0. 1) para cada campo que se esté comparando.
Se esperan umbrales para cada campo junto con los campos de consulta de comparación, y si alguno de los puntajes de comparación para una única consulta está por debajo del umbral, entonces la coincidencia de comparación es falsa.
Comparaciones Basadas en Tablas
NetOwl admite tablas de datos para el rendimiento, así como para agregar elementos como alias y custom reglas de coincidencia. resolución de identidad API admite tanto la coincidencia basada en tablas como la coincidencia no basada en tablas. Esto se habilita/deshabilita configurando o no configurando los campos _"tableName"_ y _"fieldName"_ como se observa en el xref:#_open-api[Abrir API documentación].
| La Resolución de Identidad no maneja la creación o inserción de datos en NetOwl tablas, esto debe ser gestionado por la implementación del lado del cliente. |
NetOwl Implementación
NetOwl Namematcher nos permite comparar un único campo de un único tipo en una única solicitud, y devuelve una puntuación entre 0 y 1 que indica cuán similares son esos valores, donde 1 es una coincidencia exacta y 0 es ninguna coincidencia.
Licenciamiento Restrictions
La licencia actual restricts nos a NetOwl Namematcher, que solo admite una comparación de campo a la vez, por solicitud, y también restricts nos a comparaciones de texto en latín.
Namematcher soporta la comparación de un único valor contra más de un valor real conocido, lo cual actualmente no utilizamos. Esto es potencialmente útil al soportar comparaciones de nombres para cuentas conjuntas donde solo se ha proporcionado un único nombre para el pago.
Biblioteca del Cliente
El cliente de comparación envía consultas de comparación a través de http a la Resolución de Identidad, y recibe respuestas de comparación, manejando la marshaling/unmarshaling del json cargas útiles.
Los clientes podrían llamar al http puntos finales directamente, pero debe preferir utilizar este cliente ya que abstrae y simplifica gran parte de la configuración requerida.
La biblioteca del cliente es configurable y, como mínimo, debe saber cómo acceder a la Resolución de Identidad para realizar consultas de comparación.
identity-resolution.comparison.http.client {
host = "localhost"
port = 8080
}
TLS
Unidireccional
Si Java cacerts ya existe, solo puede necesitar aplicar la siguiente configuración de cliente de comparación.
identity-resolution.comparison.http.client {
host = null
port = null
endpoint-url = "https://host:port/identity/compare"
}
El host y el puerto deben establecerse en nulo, y la ruta de comparación completa./identity/compare debe estar configurado en endpoint-url
|
Alternativamente, necesitará un almacén de confianza, y no necesitará anular endpoint-url.
identity-resolution.comparison.http.client {
host = "localhost"
port = 8443
ssl {
trust-store-location = "/absolute/path/to/trust-store.p12"
trust-store-password = "password"
trust-store-type = "PKCS12"
}
}
Mutuo
identity-resolution.comparison.http.client {
host = "localhost"
port = 8443
ssl {
trust-store-location = "/absolute/path/to/trust-store.p12"
trust-store-password = "password"
trust-store-type = "PKCS12"
key-store-location = "/absolute/path/to/key-store.p12"
key-store-password = "password"
key-store-type = "PKCS12"
key-password = "password"
}
}
| Resolución de Identidad, o su ingreso también debe ser configurado para aceptar Mutual TLS. |
Métricas
Las siguientes métricas están expuestas para la comparación de identidades.
| Clave | Tipo | Descripción |
|---|---|---|
|
Contador |
Un recuento del número de solicitudes de comparación recibidas a través de la api. No cuenta el número de campos para la comparación, por lo que una comparación de un Nombre y una Dirección se considera una solicitud. |
|
Contador |
Un recuento del número de coincidencias de solicitudes de comparación. Una única solicitud para comparar tanto un Nombre como una Dirección tendría una única respuesta que indica una coincidencia, o ninguna coincidencia. |
Estas métricas están habilitadas en el back-end (resolución de identidad), pero en teoría también podrían funcionar del lado del cliente, cuando el cliente está utilizando el cliente de comparación para las comparaciones. Dependen de com.iconsolutions.ipf.identityresolution:comparison-metrics junto a com.iconsolutions.ipf.identityresolution:comparison-client. La aplicación que utilice este cliente también deberá ser un spring boot aplicación, con micrómetro, y aop habilitado.
NetOwl
Comparación
NetOwl Namematcher se utiliza para cumplir con la funcionalidad de comparación. La configuración mínima requerida para el conector es:
identity-resolution.comparison.netowl {
default.http.client {
host = "localhost"
port = 8080
}
table.http.client {
host = "localhost"
port = 8080
}
}
Se espera que NetOwl Namematcher se desplegaría dentro del mismo pod que la Resolución de Identidad, en cuyo caso la configuración anterior puede no ser necesaria, ya que también es la predeterminada.
Manejo Especial
El netowl API actualmente no maneja comparaciones que solo contengan caracteres especiales. Por ejemplo, la siguiente solicitud fallaría en Netowl:
{
"actual": {
"type": "FULL_ADDRESS",
"value": "10 Downing Street, SW1A 2AA"
},
"comparison": ".",
"minimumScoreToMatch": 0. 75
}
Para manejar esto, filtramos cualquiera de estas comparaciones antes de enviar a Netowl y en su lugar devuelva una puntuación de 0. 0.
Los caracteres especiales se pueden configurar proporcionando una lista de caracteres al identity-resolution.comparison.netowl.exclusion.special-characters parámetro de configuración. La lista predeterminada consiste en caracteres especiales básicos latinos:
identity-resolution.comparison.netowl.exclusion.special-characters =
[
"/", "\\", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "\"", "{", "}", "_", "[", "]","|", "?", "<", ">", ",", "."," "
]
| Para agregar o eliminar elementos de la lista anterior, debe redefinir toda la lista con sus adiciones u omisiones, ya que no hay una forma sencilla de modificar una lista en HOCON. |
TLS
Unidireccional
Si Java cacerts ya existe, solo puede necesitar aplicar lo siguiente NetOwl comparación de configuración del cliente-utilizando el punto final predeterminado como ejemplo.
identity-resolution.comparison.netowl.default.http.client {
host = null
port = null
endpoint-url = "https://host:port/api/v2/_compare"
}
El host y el puerto deben establecerse en nulo, y la ruta de comparación completa /api/v2/_compare debe estar configurado en endpoint-url
|
Alternativamente, necesitará un almacén de confianza, y no necesitará anular endpoint-url.
identity-resolution.comparison.netowl.default.http.client {
host = "localhost"
port = 8443
ssl {
trust-store-location = "/absolute/path/to/trust-store.p12"
trust-store-password = "password"
trust-store-type = "PKCS12"
}
}
Mutuo
identity-resolution.comparison.netowl.default.http.client {
host = "localhost"
port = 8443
ssl {
trust-store-location = "/absolute/path/to/trust-store.p12"
trust-store-password = "password"
trust-store-type = "PKCS12"
key-store-location = "/absolute/path/to/key-store.p12"
key-store-password = "password"
key-store-type = "PKCS12"
key-password = "password"
}
}
| NetOwl Namematcher, o su ingreso, también debe ser configurado para aceptar Mutual TLS. |
Documentación Oficial
Una vez NetOwl se ha iniciado, puede acceder a la documentación del producto visitando el NetOwl url en un navegador.
Por ejemplo, si se despliega localmente (usando local-e2e-test como ejemplo), entonces puede dirigir su navegador a #_netowl_actuator
=== Actuador
El módulo netowl-actuator está incluido en la aplicación de resolución de identidad y añade un spring boot información del actuador, contribuyente e indicador de salud para la aplicación.
Los componentes del actuador funcionan de manera predeterminada, pero como mínimo, la resolución de identidad debe saber dónde encontrar NetOwl. Esta URL probablemente será la misma que la utilizada para el conector de comparación.
| Esta configuración debe ser proporcionada si se habilita la salud y/o la información. |
netowl {
base-url = "http://localhost:8080"
}
| Propiedad | Ejemplo | Descripción |
|---|---|---|
|
La URL base requerida para poder comunicarse con NetOwl. |
Info
El /actuator/info el punto final incluye el NetOwl detalles del producto (nombre y versión) si NetOwl es accesible. También incluye cualquier error con la conectividad a la NetOwl aplicación, incluidos errores específicos de NetOwl, como problemas de licencia y configuración.
El endpoint de información contendrá un netowl sección
{
"netowl": {
"error": "system is unlicensed",
"product": "NameMatcher",
"version": "4. 9. 11. 0"
}
}
Configuración
| Esta es la configuración predeterminada del contribuyente de información; no necesita agregar esta configuración explícitamente a menos que necesite valores diferentes. |
management.info.netowl {
enabled = true
timeout = "2S"
}
| Propiedad | Ejemplo | Descripción |
|---|---|---|
|
|
La información de NetOwl está habilitada por defecto, pero puede ser desactivada con esta propiedad. Cuando está desactivada, la NetOwl los detalles del producto no están incluidos en la información. |
|
|
El tiempo de espera predeterminado es de 2 segundos, que es la duración que esperaremos para NetOwl para responder al verificar los detalles del producto. Si se excede el tiempo de espera, la información incluirá NetOwl nombre del producto y versión, pero estarán marcados como |
Salud
El /actuator/health el punto final incluye la misma información que se proporciona en el contribuyente de información, y también incluye la salud del NetOwl producto utilizado para comparaciones. El estado general de la aplicación indicará como DOWN si NetOwl se considera que DOWN. Para NetOwl a considerar UP debe responder a un /api/v2 solicitud con un estado de 200 y los detalles del producto.
El endpoint de salud contendrá un netowl sección
{
"netowl": {
"details": {
"error": "system is unlicensed",
"product": "NameMatcher",
"version": "4. 9. 11. 0"
},
"status": "DOWN"
}
}
Configuración
| Esta es la configuración predeterminada del indicador de salud, no necesita agregar esta configuración explícitamente a menos que requiera valores diferentes. |
management.health.netowl {
enabled = true
timeout = "2S"
}
| Propiedad | Ejemplo | Descripción |
|---|---|---|
|
|
NetOwl health está habilitado por defecto, pero puede ser deshabilitado con esta propiedad. Cuando está deshabilitado, el estado de NetOwl no se considera, y la salud indicará como |
|
|
El tiempo de espera predeterminado es de 2 segundos, que es la duración que esperaremos para NetOwl para responder al verificar la salud. Si se excede el tiempo de espera,NetOwl se considera que |
Licenciamiento
Las licencias son proporcionadas por NetOwl, y actualmente utilizamos una licencia de desarrollo para NetOwl Namematcher,restricting nos a un único hilo de comparación y tres instancias. La licencia de desarrollo actual se agrupa con el netowl-testcontainer módulo para integration test ing.
{
"product": "NameMatcher",
"type": "Development",
"thread limit": 1,
"*": {
"lifespan": [
"2022-01-01 00:00Z",
"2023-01-01 00:00Z"
],
"features": [
"Latin"
]
},
"verification": 1778757171272520714
}
La licencia debe existir dentro del contenedor en ejecución en /var/local/netowl-data/license.key para NetOwl Namematcher para trabajar, incluida la documentación alojada. Para el testcontainer, se monta directamente en el contenedor desde el classpath, al desplegar con docker componer la licencia puede ser montada desde un volumen del sistema de archivos local. En un kubernetes la implementación, la licencia podría provenir de un mapa de configuración, como se observa en identity-resolution-deployments.
Alternativamente, la licencia puede ser ENVIADA a través de http, por ejemplo:
curl --request POST \
--url http://localhost:8081/api/v2/license-key \
--header 'Content-Type: application/json' \
--data '{
"product": "NameMatcher",
"type": "Development",
"thread limit": 1,
"*": {
"lifespan": [
"2022-01-01 00:00Z",
"2023-01-01 00:00Z"
],
"features": [
"Latin"
]
},
"verification": 1778757171272520714
}'
La licencia podría ser publicada desde un init contenedor, o incluso enviado manualmente utilizando el NetOwl UI.

Después de enviar la licencia, la interfaz de usuario cambiará e incluirá enlaces a la documentación oficial.

Actualizando NetOwl
El Documentación de NetOwl tiene una guía de instalación que incluye una sección sobre la actualización desde versiones anteriores. También hay una página de historial de versiones que enumera los principales cambios en cada versión.
Pasos típicos para absorber una nueva versión de NetOwl Namematcher are:
-
Los binarios y licencias de NetOwl se obtienen de NetOwl, y el binario debe ser cargado manualmente en Nexo.
-
Ejecute el netowl-namematcher Trabajo de Jenkins, que verifica y ejecuta el netowl-namematcher Pipeline de Jenkins. Esto produce un
registry.ipf.iconsolutions.com/netowl-namematcherdocker imágenes etiquetadas conlatesty la versión utilizada para ejecutar el trabajo. -
Actualice el netowl-módulo testcontainer con la versión correcta;integration tests ahora utilizará la última versión y puede ser utilizada para verificar que la Resolución de Identidad funciona con el Namematcher actualizar.
-
Actualice el e2e_functional.yml en local-e2e-test con la versión correcta y ejecute el e2e test para estar realmente seguro de que todo está funcionando correctamente. === NetOwl Aplicación TLS NetOwl Namematcher es una aplicación web basada en Apache Tomcat, por lo tanto, habilitar TLS deberá hacerse antes de construir el docker imagen, o después del hecho al reemplazar el Tomcat
server.xmlarchivo con uno configurado correctamente para TLS. También deberá estar presente un almacén de claves bajo el NetOwl directorio de instalación.
Para más información, consulte el documentación oficial, que tiene una sección sobre TLS.
Agrupe la configuración de TLS en el docker imagen
Antes de construir el NetOwl Namematcher docker imagen, coloque un archivo de almacén de claves en el directorio de instalación bajo /server/. Luego edite el servidor Tomcat.xml en el directorio de instalación, bajo /server/conf/server.xml Necesitará lo siguiente:
<Connector port="8443" keystoreFile="keystore.jks" keystorePass="password"
scheme="https" secure="true" clientAuth="false" maxThreads="150"
SSLEnabled="true" sslProtocol="TLS" protocol="org.apache.coyote.http11. Http11NioProtocol" />
Construya el docker imagen.
Monte la configuración de TLS en el contenedor
Monte el almacén de claves en el NetOwl Namematcher contenedor debajo /usr/local/netowl-inst/server. Luego monte un servidor.xml, reemplazando el que está dentro del contenedor en /usr/local/netowl-inst/server/conf/server.xml, y conteniendo lo siguiente.
| Copia el servidor.xml desde el directorio de instalación para una configuración de referencia |
<Connector port="8443" keystoreFile="keystore.jks" keystorePass="password"
scheme="https" secure="true" clientAuth="false" maxThreads="150"
SSLEnabled="true" sslProtocol="TLS" protocol="org.apache.coyote.http11. Http11NioProtocol" />
En un docker archivo de composición, esto podría verse como:
netowl-namematcher:
image:releases-registry.ipfdev.co.uk/thirdparty/netowl-namematcher:4. 9. 11. 0
container_name: netowl-namematcher
ports:
- "8081:8080"
- "8443:8443"
volumes:
-./config/netowl-namematcher/license.key:/var/local/netowl-data/license.key
-./config/netowl-namematcher/keystore.jks:/usr/local/netowl-inst/server/keystore.jks
-./config/netowl-namematcher/server.xml:/usr/local/netowl-inst/server/conf/server.xml
Aplicación de Resolución de Identidad
La resolución de identidad es una Spring Boot aplicación basada, y se pretende que se implemente junto a Namematcher para satisfacer la función de comparación. Como es un spring boot aplicación,https://docs.spring.io/spring-boot/docs/2. 5. 4/reference/html/application-properties.html#application-properties[se admiten todas las propiedades habituales de la aplicación Spring].
Hocon es la forma principal de configurar la resolución de identidad, aunque también se admiten archivos application.properties.
Para la configuración de NetOwl conectividad, consulte el Sección NetOwl.
Métricas
Prometheus las métricas de aplicación compatibles se exponen bajo `/actuator/prometheus`
Métricas específicas de características e implementación (por ejemplo, comparación o netowl) también pueden estar expuestos bajo este punto final, y están documentados en las secciones relevantes.
Actuador
Los endpoints de salud e información también incluyen el NetOwl dependencia. Consulte el Sección del Actuador NetOwl para más información.
La Resolución de Identidad viene con la siguiente configuración de punto final del actuador predeterminado.
management.endpoints.web.exposure.include = [health, info, prometheus]
Si desea deshabilitar los puntos finales de salud y/o de información, deberá hacerlo explícitamente, cambiando el arreglo de inclusiones en un application.conf.
management.endpoints.web.exposure.include = [prometheus] //Look ma, no health
TLS La resolución de identidad es una Spring Boot aplicación, que acepta un conjunto de docs.spring.io/spring-boot/docs/2. 5. 4/reference/html/application-properties.html#application-properties.server[server.ssl.* propiedades] para configurar TLS.
si el tls del servidor está habilitado, también configure comparación cliente tls