The following section aims to outline the necessary configuration files required for seamless operation and customization of Inji Web and Mimoto:
inji-config repo contains all the necessary configurations for the Inji Stack.
Below property files define the configurations for default properties which are consumed by Inji Web.
inji-default.properties - Default Configuration for Inji Web App is provided here
credential-template.html - PDF Template for Inji Web Credential Download is available here
Mimoto acts as a BFF layer for both Web and the Wallet. Below mentioned property files define the configurations of default properties which are consumed by Mimoto.
mimoto-default.properties - Contains default Configuration for Mimoto
mimoto-issuers-config.json - Issuers related configuration are provided here.
Mimoto
eSignet
Mimoto serves as a Backend for Frontend (BFF) for Inji Web, handling retrieval of default configurations and downloading VCs. It offers essential APIs to Inji Web, facilitates validations, and forwards requests to relevant services.
To support credential issuance from any issuer compatible with the OpenID4VCI protocol, Mimoto must be onboarded as an OIDC client. Refer here for more details on how to onboard Mimoto (BFF) as an OIDC client.
Detailed API documentation for Mimoto is accessible here.
Configuration details to set up a new provider that can issue VC, can be found in the mimoto-issuers-config.json
property file. Refer to mimoto-issuers-config.json of Collab environment.
In mimoto-issuers-config.json
, new providers can be added as per the well-known schema.
Fetch Issuers:
Fetch Issuer's Configuration:
Download PDF:
Fetch Issuer Credentials:
This API fetches the list of Credential Types offered by the issuer, sourced from the well-known configuration of the issuer. Users can filter credentials based on search parameter.
https://api.collab.mosip.net/v1/mimoto/issuers/{issuer-id}/.well-known
Method Type: GET
Parameter:
issuerid: ID of the issuer in string type.
Response
Response code 200
eSignet provides a user-friendly and efficient method for individuals to authenticate themselves and a access online services. Serving as a dependable identity provider for relying party applications, it grants access to services without requiring additional login credentials. eSignet also provides a secure means of verifying an individual's identity against trusted identity providers, such as national identity databases, driver's license systems, passport systems, or other trusted sources. The level of assurance here is determined by the authentication factor employed. To know more about eSignet, click here.
Let's explore how eSignet integrates with Inji Web and provides authentication solutions for the download workflow as follows:
The User navigates to the Home page of the Inji web application
and selects an issuer and credential type
Next, the authentication page is displayed which is the interface provided by eSignet.
The user enters the required information, such as Policy Number, Name, and Date of Birth. Subsequently, the system gets redirected back to Mimoto to add a client_id and generate a key pair, initiating the request to download the credential
Once Mimoto provides the response with the client_id and key, the credential endpoint of the issuer is invoked to get the credentials
Once the access token is received via the token endpoint from eSignet, Mimoto invokes this endpoint to obtain the Verifiable Credential.
Note: The endpoint attribute is present in the issuer's well-known configuration.
Once the access token is received via the token endpoint, Wallet should invoke this endpoint to get the verifiable credential.
Format of the Credential to be issued.
JSON object containing proof of possession of the key material the issued Credential shall be bound to.
The proof object MUST contain a proof_type claim of type JSON string denoting the concrete proof type.
When proof_type is jwt, a proof object MUST include a jwt claim
When proof_type is cwt, a proof object MUST include a cwt claim
JSON object containing (and isolating) the detailed description of the credential type. * This object MUST be processed using full JSON-LD processing. * It consists of the following sub claims: * @context: REQUIRED. JSON array * types: REQUIRED. JSON array. This claim contains the type values the Wallet shall request * in the subsequent Credential Request.
OK
JSON string denoting the format of the issued Credential.
Contains issued Credential. MUST be present when acceptance_token is not returned. MAY be a JSON string or a JSON object, depending on the Credential format.
This API provides data with search capability to populate the list of supported issuers in Inji Web, which is then displayed under the List of Issuers
OK
This API provides the complete configuration details for the specific issuers passed in the path variable
OK
This API is responsible for generating PDFs for the received VC content. It fetches display properties from the well-known configuration of the issuer and incorporates them into the predefined template of the PDF file.
OK