How to verify Verifiable Credentials
Gataca Studio enables you to quickly create customizable verification templates for onboarding and sign-in processes while reducing personal data stored in your infrastructure.
The verification template is the specific configuration of a verification process that defines what data you will require the user to share to enable successful authentication, as well as accepted issuers or trust levels for each credential, the purpose of each request, and other security features.
Once implemented, your users simply scan a QR code on your website, consent only to the required data for identity verification, and they’re in.
Check the video to see the whole flow. Below, you can see the step-by-step tutorial on creating a single-sign-on authentication process based on verifiable credentials.
1. Create a Verification Template
Verification templates are used to define identity verification requirements that can then be integrated with different applications.
A verification template defines a verification process, including:
Which verification credentials are required from a user to share
What additional security requirements are needed from the user to comply with (e.g. 2FA)
When accessing Gataca Studio, you can create a new verification template from the main dashboard or click New verifier in the verification templates section.
Creating an Issuance template involves a 4-step process:
Step 1: Basic configuration
Verification template identifier - Name the verification template
The first step is to select your verification template name.
This name will be associated with the verification process and will serve as the main reference to the process when adding it to API Keys and throughout the platform.
Click on Create app button to define the remaining configuration variables:
Select DID method
You will have to select which DID you want to state as the Verifier.
By default, a DID has already been created for you with the alias name “My DID.” This DID can be selected for your first verification template. You can also decide to create another DID first.
QR Code viewing duration - How much time before the QR code expires?
QR Code viewing duration is the amount of time available for users to scan the QR code in seconds. After this time, the user will need to reload the page to get a new QR code.
Users that scan an expired QR code or a QR code that has been already been scanned will get an error in their wallets
Why do QR codes expire? Each QR code includes a unique session ID to uniquely identify the user’s authentication request. Sessions cannot be reused or used twice for security reasons.
Consent duration - How much time should my company store and process data shared by users?
Amount of time your organization desires to store and process data shared by users in days.
In Europe, according to GDPR, the storage limitation principles state that you should keep personal data for the minimum necessary time to fulfill the service.
When the consent duration has been reached, the user data will be deleted from your Studio account.
Service description - What to include in the service description?
Include briefly all relevant information about the service you provide and for which the user is requesting access.
Step 2: Requested Credentials
What credentials should I request from the user?
In this step, you define which personal information (in the form of verifiable credentials) is necessary for you to verify your user. Users will need to make sure they have these credentials in their wallets before requesting access to your services.
Scroll the list and tick those credentials you want to select or use the search bar on top.
Define required and optional credentials
Required credentials mean that the information is mandatory to comply with your authentication process. Any other nice-to-have information should be marked as optional.
Select those that will be required or will remain optional from the list of credentials you will be requesting.
Step 3: Constraints
Credential trust level - How to determine which credentials are trusted?
In this section, you will determine if the credentials you request from the user for authentication purposes need to be trusted.
Credential data agreement - How to select the credential purpose
In this section, you will determine the reason why you are requesting the previously required credentials from your users. This will be shown to your users.
Security configuration
In this last section, you’ll define the extra security mechanisms, such as 2FA via biometrics, OTPs, or in-app authentication.
The available security methods will depend on your subscription.
Step 4: Successful configuration
Once you finish the configuration of a Verification Template, you’ll see confirmation that the process has been successfully saved. You are now ready to test your Verification Template by adding it to an API Key.
2. Create an API Key
An API Key is a unique identifier and authentication key providing access to specific issuance and/or verification templates to your applications calling the Gataca Studio APIs.
Once you reach the end of creating an issuance template, you can select to add this template to an API Key. If you don’t have an API Key yet, you’ll have to create one to test your Template. The next steps show you how to create a new API Key.
On the left menu, click on API Keys.
Click on New API Key and set the basic configuration:
API Key Name: Choose an identifier for your API Key
DID: Select the DID associated with the new API Key. This will determine which administrators will have access to this API Key (only those with permission to manage the corresponding DID).
SSI Operations: Select the credential issuance template you want to associate with this API Key from the SSI Operations dropdown.
You will be presented with the ID and password of the API Key created.
3. Test it
Step 1: Associate an API Key to your Verification Template
Navigate to Verification templates on the left menu. Find the desired Verification template you would like to test and, click on the three dots, then click Edit.
Once the verification template opens, click on Add to API Key on the top right.
Fill up the API Key information:
Select API Key: Select an API Key you want to associate with the new template created.
Password: Insert the password provided when creating the API Key. If you lost your password, you can regenerate a new password from the API Keys menu.
Callback: This field is optional and not needed for testing purposes. Insert the URL of a service that is notified by a post notification with the session data when the session has been validated.
Step 2: Link your wallet to your Sandbox
You need to link your Wallet with your Sandbox to test your Verification Template. If you have not yet linked your Wallet with your Sandbox, click the Scan Now button to access the QR Code to join your sandbox and scan it with your wallet. The sandbox will allow you to perform private and secure tests of the platform.
Scan the QR code with your Wallet.
You will see confirmation in Wallet if the connexion with your sandbox has been successful.
Step 3: Generate a testing QR
Now click on Generating test and scan the QR code generated to start testing.
Scan the QR code with your Wallet.
Your Wallet will then ask you to share the requested credentials. Click on consent.
You will then be immediately connected to the service because your identity has been verified.
Step 4: Review authenticated users
As a verifier, you will be able to monitor and manage your verified users by clicking on Verified Users in the Verifications section. You can decide to delete a verified user refusing to accept its access to your platform by clicking on the bin icon next to the user.