¿El cifrado evita cualquier filtración?
Es una capa de protección. Separa la base de datos de los permisos de uso de claves de Azure Key Vault. Una aplicación autorizada comprometida o los datos ya recuperados siguen siendo riesgos.
ADDRESS VAULT / GETTING STARTED
OneNym Address Vault cifra direcciones de entrega y permite referenciarlas mediante un ID proxy. Solo devuelve los campos autorizados a una aplicación autorizada.
El portal de compra y el entorno de evaluación de la API en la nube están pausados. Contáctenos para incorporación, evaluación o reanudación. Las instrucciones siguientes se aplican tras la reanudación.
Contrata el plan DEV, inicia sesión con Microsoft en el portal y vincula la compra. Solicita la preparación; confirma organización, contrato, Vault, aplicaciones, permisos y conservación antes de aprobar y activar. Prueba con datos ficticios. La compra no crea automáticamente el entorno ni concede acceso a datos. Acuerda por separado el uso en producción.
Acuerde con OneNym el contrato, la organización, el tenant del Vault, los IDs de las aplicaciones comercial y de reparto, la finalidad, los campos y la retención. Obtenga el origen HTTPS de la API, API application ID y directory tenant ID. La web y el portal de compra no son la API. La compra requiere configuración y aprobación posteriores.
Use tokens Bearer de aplicación de Microsoft Entra: Managed Identity en Azure o una clave privada de certificado para obtener el token. Esto no es mTLS. El Vault actual confía en un solo directorio Entra; otras organizaciones no se admiten automáticamente. Mantenga las credenciales en el backend.
ONENYM_API_URL=<API HTTPS origin>
ONENYM_API_APPLICATION_ID=<API application ID>
directory tenant ID / merchant client ID / carrier client ID
Authorization: Bearer <application-access-token>
Solicite a OneNym el paquete con el código del SDK y el ejemplo. Extráigalo en una carpeta nueva. Requiere .NET 10 SDK, PowerShell 7 y acceso a NuGet. Los comandos verifican 18 operaciones con datos ficticios sin cuenta Azure. SQLite, claves y autenticación locales son exclusivos del ejemplo, no sustituyen los controles del servicio. Se usa el SDK incluido, sin suponer una publicación en NuGet.
dotnet --version
pwsh --version
pwsh -NoProfile -File ./samples/OneNym.Vault.Pilot/run-local.ps1
RESULT passed=True; steps=18; elapsedMs=…; cleanup=True PASS isolated customer quickstart
Registra la dirección mediante la API autenticada. Vault la cifra y devuelve un ID proxy impredecible. Evita conservar copias en servidores y registros de la aplicación.
Guarda el pedido y el ID proxy en tu base de datos. El ID no es una dirección ni una autorización. La integración no borra las copias existentes: planifica su migración y eliminación.
Vincula pedido, ID proxy, aplicación destinataria, campos y vencimiento. Emite un token con límite de usos. Poseerlo no basta para acceder.
Autentica la aplicación y comprueba organización, pedido, finalidad, campos, vencimiento, usos y contrato. Los campos autorizados se devuelven en texto claro; controla también las copias del destinatario.
POST /v1/addresses
→ proxyId: nym_…
PUT /v1/shipping-orders
proxyId + orderReference + recipientClientId + fields + expiresAt
→ orderId + version
POST /v1/shipping-orders/{orderId}/grants
orderVersion + expiresAt + maxUses
→ token: nrt_…
POST /v1/retrieval-grants/redeem
Authorization: Bearer <application-access-token>
X-OneNym-Retrieval-Token: <retrieval-token>
orderId + orderReference + purpose + fields
→ permitted fields
Estos ejemplos explican el diseño. Los nombres y valores de los campos son ilustrativos, no una referencia de API ejecutable.
La implementación descifra la dirección completa en memoria y devuelve solo los campos permitidos. No es cifrado por campo. Gestione el texto recibido y los registros y almacenamiento anteriores al registro.
Todas las operaciones requieren Bearer de aplicación y permisos. El canje también requiere X-OneNym-Retrieval-Token. Use JSON UTF-8 y finalidad shipping. GET, revocación y DELETE no llevan cuerpo. El fragmento supone clientes merchant y carrier autenticados, persistedKey guardada antes del registro y orderReference sin datos personales. Use el paquete para un programa ejecutable.
| Operación | Método y ruta | Respuesta correcta |
|---|---|---|
| Registrar dirección | POST /v1/addressesRegisterAsync(…) | 201 |
| Obtener campos permitidos | POST /v1/addresses/{proxyId}/retrieveReadAsync(…) | 200 |
| Consultar ID y versión del pedido | GET /v1/shipping-orders/by-reference/{orderReference}FindOrderAsync(…) | 200 |
| Consultar vínculo actual | GET /v1/shipping-orders/by-reference/{orderReference}/bindingInspectOrderAsync(…) | 200 |
| Crear o cambiar vínculo de pedido | PUT /v1/shipping-ordersBindAsync(…) | 200 |
| Emitir token de reparto | POST /v1/shipping-orders/{orderId}/grantsIssueAsync(…) | 201 |
| Canjear token de reparto | POST /v1/retrieval-grants/redeemRedeemAsync(…) | 200 |
| Revocar un token | POST /v1/retrieval-grants/{grantId}/revokeRevokeGrantAsync(…) | 204 |
| Revocar dirección | POST /v1/addresses/{proxyId}/revokeRevokeAsync(…) | 204 |
| Eliminar dirección | DELETE /v1/addresses/{proxyId}DeleteAsync(…) | 204 |
using OneNym.Vault.Client;
var fields = new[] { "recipientName", "postalCode", "addressLine1" };
var registration = await merchant.RegisterAsync(new CreateAddress {
Address = new AddressData {
RecipientName = "Demo Recipient", PostalCode = "000-0000",
CountryCode = "JP", AddressLine1 = "Dummy address",
Locality = "Demo city"
},
RetainUntil = DateTimeOffset.UtcNow.AddDays(1)
}, persistedKey);
var order = await merchant.BindAsync(new BindOrder(
orderReference, registration.ProxyId, carrierClientId, fields,
DateTimeOffset.UtcNow.AddHours(1)));
var grant = await merchant.IssueAsync(
order.OrderId, order.Version, DateTimeOffset.UtcNow.AddMinutes(5));
var address = await carrier.RedeemAsync(
order.OrderId, orderReference, grant.Token, fields);
Se admiten los siete campos indicados. countryCode contiene dos letras mayúsculas; el cuerpo JSON admite 16.384 bytes. La retención inicial máxima es de 30 días, según la configuración. El token vence antes que la dirección y el pedido, y como máximo 15 minutos tras emitirse. La API admite maxUses de 1 a 5; el SDK estándar usa uno. La caducidad usa segundos UTC y excluye el instante límite. No se verifica la existencia ni la entregabilidad de la dirección.
recipientName 1–200
postalCode 1–32
countryCode [A-Z]{2}
addressLine1 1–300
addressLine2 null / 0–300
locality 1–100
region null / 0–100
Registre otra dirección; no se modifica la existente. Consulte el vínculo actual, pase su Version como expectedVersion, cambie el pedido y emita un token para la nueva versión. El cambio bloquea todos los tokens de versiones anteriores. Emitir otro en la misma versión no revoca los anteriores. Compruebe otros pedidos y la retención antes de borrar la dirección antigua. El texto ya recibido no puede recuperarse.
var current = await merchant.InspectOrderAsync(orderReference);
var changed = await merchant.BindAsync(new BindOrder(
orderReference, newRegistration.ProxyId, carrierClientId, fields,
newOrderExpiry, ExpectedVersion: current.Version));
var newGrant = await merchant.IssueAsync(
changed.OrderId, changed.Version, newGrantExpiry);
// BindOrder = complete desired binding, not a partial patch.
// Keep unknown prior outcomes for reconciliation; never blindly retry.
El SDK no reintenta automáticamente. Un timeout, cancelación o 503 puede producirse tras guardar o consumir el token. Confirme el resultado de cada operación antes de repetirla.
Indique estado HTTP, hora y trace ID si dispone de él. No envíe direcciones, Bearer, claves privadas ni tokens de reparto al soporte.
Se implementan registro, consulta limitada por campos, pedidos versionados, emisión, usos, revocación, eliminación y limpieza por caducidad. Las pruebas del SDK, SQL aislado y Azure real con MI, Key Vault, Azure SQL e historial cubren casos normales, denegaciones, concurrencia y recuperación. Quedan la compra y consentimiento reales de otra organización y las notificaciones reales de suspensión/reactivación de Microsoft. No constituyen un SLA ni garantizan todas las capacidades.
Es una capa de protección. Separa la base de datos de los permisos de uso de claves de Azure Key Vault. Una aplicación autorizada comprometida o los datos ya recuperados siguen siendo riesgos.
El ID referencia una dirección; el token limita la recuperación a un pedido, aplicación y campos. Protege ambos. Un token de un solo uso se consume tras una recuperación correcta; no se garantiza repetir la respuesta. Si se pierde, comprueba el estado antes de emitir otro.
Revocar impide nuevas consultas. Eliminar borra el texto cifrado y la clave de datos envuelta del registro activo, no las copias del destinatario ni los backups al instante. Suspender bloquea consultas normales, pero permite la limpieza del propietario. Acuerda conservación y reaplicación de eliminaciones al restaurar.
El producto DEV actual es una API de direcciones en Azure. No incluye envío de correo, imágenes de identidad, OCR ni AWS KMS. Los ejemplos generales de arquitectura no son funciones incluidas. Confirma almacenamiento, operación e integraciones al iniciar.