Issuance of National ID as Verifiable Credentials using MOSIP Identity Plugin

Overview

The UIN Issuance capability in Inji Certify 0.14.0 introduces a flexible and extensible approach to credential issuance by decoupling dependency on the traditional IDA system and enabling dynamic data retrieval through a new IDA Data Provider Plugin. This enhancement allows Certify to fetch raw KYC data, transform it into Verifiable Credentials (VCs), and support multiple cryptographic key types and signing algorithms aligned with MOSIP standards.

Instead of relying on a fixed IDA-driven issuance flow, Certify now leverages a plugin-based architecture where external data sources (such as IDA APIs) can be integrated seamlessly. This enables greater control over credential structure, claim mapping, localization, and signing behavior, making the issuance process more adaptable across different country implementations.

Why This Feature Matters

The introduction of the IDA Data Provider Plugin and enhanced issuance flow brings several key benefits:

  • Flexible Data Integration: Allows Certify to fetch raw KYC data directly from IDA APIs, enabling custom credential structures instead of relying on predefined formats.

  • Expanded Cryptographic Support: Supports multiple key types such as RSA, EC R1, ECK1, and ED, overcoming earlier limitations where only RSA-based signing was supported.

  • Improved Customization: Enables dynamic mapping of claims using templates, including support for custom claims and localized attributes (e.g., multi-language names and addresses).

  • Decoupled Architecture: Separates data fetching from credential issuance using plugin models, making the system more modular and extensible.

  • Enhanced Trust & Verification: Supports country-specific signing keys with public key verification via DID URLs, allowing issuers to validate credential authenticity independently.

  • Operational Resilience: Automatically falls back to internal key manager certificates if external signing certificates expire, ensuring uninterrupted issuance.

  • Optimized QR Code Generation: Introduces image compression via the kernel biometric API to efficiently embed photos in QR codes without performance issues.

How It Works – Step-by-Step (Certify Perspective)

The following sequence describes how Inji Certify handles UIN-based credential issuance using the new plugin-driven architecture:

1. Certify Initiates Data Fetch via Plugin

Certify invokes the IDA Data Provider Plugin, which implements the DataProviderPlugin interface. The plugin uses the fetchData method to construct a request containing:

  • Individual ID (UIN/VID)

  • Required claims

This request is sent to the IDA KYC Exchange API.

2. Authentication via OIDC

The plugin retrieves an access token through an OIDC flow:

  • Token is obtained using e-Signet integration

  • Cached authentication context is used to optimize performance

  • Individual ID is retrieved from cache (optionally encrypted based on configuration)

3. KYC Data Retrieval

The IDA API responds with a JSON payload containing KYC attributes such as:

  • Name

  • Gender

  • Address

  • Photo

The plugin forwards this data to Certify for processing.

4. Claim Mapping & Credential Preparation

Certify maps the retrieved KYC data into VC claims using configurable templates:

  • OIDC claims are transformed into VC-compatible structure

  • Localization is applied where available (multi-language fields)

  • Custom claims can be injected via mapping and policy configurations

5. Individual ID Processing

Certify determines the type of identifier:

  • UIN or VID is inferred based on format/length using regex or policy rules

  • Encryption settings are applied based on configuration (secure vs non-secure storage)

6. Credential Signing Configuration

Certify prepares the credential for signing:

  • Selects signing key (country-provided or internal key manager)

  • Supports multiple key types (RSA, EC, ED, etc.)

  • Publishes the public key via DID URL for external verification

7. Credential Issuance

Certify generates the Verifiable Credential:

  • Applies the configured template and claims

  • Signs the credential using the selected key

  • Embeds compressed photo (if required for QR code)

The credential is then returned to the requesting wallet or system.

8. Verification & Key Handling

  • Countries can verify issued credentials using the public key exposed via DID URL

  • If a country-specific certificate expires:

    • Certify automatically switches to internal key manager

    • No issuance disruption occurs

    • Responsibility remains with the country to rotate certificates

Security Considerations

Secure Data Handling: Sensitive identifiers (UIN/VID) can be encrypted based on configuration, though compatibility with e-Signet must be ensured.

OIDC-Based Authentication: All KYC data requests are secured via access tokens obtained through OIDC flows.

Key Transparency & Trust: Public keys published via DID URLs allow independent verification of credential signatures.

Certificate Lifecycle Management: Automatic fallback ensures continuity, but proper monitoring and renewal of certificates is critical.

Limitations

  • Encryption of individual ID may require careful alignment between e-Signet and Certify configurations.

  • Localization support depends on consistency of input data (e.g., language-tagged attributes).

  • Custom claim configuration requires validation of supported mapping properties.

  • Logging and alerting for certificate fallback behavior need further verification.

Supported Capabilities

  • IDA API-based KYC data retrieval via plugin

  • Support for multiple signing algorithms and key types

  • Template-driven VC generation with localization support

  • QR code optimization with compressed images

  • DID-based public key exposure for verification

Last updated

Was this helpful?