L'identité auto-souverain est une identité portable à vie pour toute personne, organisation ou chose qui ne dépend d'aucune autorité centralisée et ne peut jamais être enlevée. L'identité de soi-même est un modèle relationnel bipartite, sans tiers entre vous et l'organisation, maintenant considéré comme votre «pair».
SSI est possible aujourd'hui avec les DID et les références vérifiables.
Did est un nouveau type d'identifiant mondialement unique (URI) qui ne nécessite pas d'autorité d'enregistrement centralisée car le contrôle de l'identifiant peut être prouvé en utilisant la cryptographie. Vous pouvez y penser comme l'un des identifiants que nous connaissons davantage - un nom de domaine ou un numéro de téléphone - sans un registraire central comme ICANN ou NANP.
Les informations d'identification vérifiable (VC) sont le nouveau format pour les informations d'identification numériques interopérables définies par le groupe de travail W3C Verifiable Revenons. Les informations d'identification vérifiables sont conformes au modèle de données d'identification vérifiable du W3C, et ils facilitent les interactions en utilisant un modèle appelé Triangle de confiance:
Les émetteurs créent des informations d'identification, généralement en faisant signer numériquement les documents JSON de manière spéciale. Les détenteurs les stockent et les vérificateurs demandent une preuve basée sur eux. Les présentations vérifiables que les détenteurs fournissent aux vérificateurs sont des packages de preuves - soit des informations d'identification, soit des données dérivées d'une ou plusieurs informations d'identification - conçues par les détenteurs pour satisfaire les exigences d'un vérificateur. Les vérificateurs apprennent avec certitude que les émetteurs ont attesté quelque chose en vérifiant les signatures numériques par rapport à un registre de données vérifiables (généralement, une blockchain).
React MSDK est construit à l'aide du SDK Mobile Evernym comme un package natif React compatible en Bélier qui permet la construction rapide de portefeuilles numériques personnalisés (complètement sous votre contrôle) représentant un côté support dans le modèle d'identification vérifiable.
Avec React-Native Mobile SDK, votre application peut:
L'application d'identité Wallet permet une myriade de cas d'utilisation, notamment en prouvant que vous avez un âge juridique spécifique sans révéler votre date de naissance exacte, partager des dossiers de santé en privé et en toute sécurité, et en supprimant le concept de nom d'utilisateur et de mots de passe.
Pour les tests de votre portefeuille d'identité, vous pouvez utiliser Verity SDK représentant le côté de communication opposé.
Dans les référentiels Evernym Mobile SDK et Verity SDK, vous pouvez trouver beaucoup d'informations utiles concernant la construction de portefeuilles d'identité et le processus d'échange d'identification vérifiable.
Pour créer un nouveau projet, vous devrez passer par les étapes suivantes.
Créez un nouveau projet Native React. Nous l'appellerons awesomeMsdkProject pour ce guide.
npx react-native init awesomeMsdkProject --version 0.65.1 Remarque : Vous devez utiliser la même version de react-native que celle spécifiée dans la section peerDependencies du fichier package.json pour le evernym React-Native-Sdk. La version réactive native actuellement recommandée est 0.65.1 . En utilisant une version différente, vous prenez un risque d'avoir des problèmes avec le SDK.
Pour inclure le SDK dans votre nouvelle application, vous devez configurer ses dépendances.
Remplacez la section des dépendances en laissant uniquement @evernym/react-native-white-label-app dépendance à votre package.json .
"dependencies" : {
"@evernym/react-native-white-label-app" : " https://gitlab.com/evernym/mobile/react-native-white-label-app.git " ,
}, Les dépendances natives doivent être placées dans les dépendances de l'application (voir le numéro). Ils sont répertoriés comme dépendances par les pairs dans SDK.
Ajoutez toutes les dépendances par les pairs de @evernym/react-native-white-label-app section dans dependencies de votre application package.json .
"dependencies" : {
"@react-native-community/async-storage" : " x " ,
...
"react-native-zip-archive" : " x " ,
"react-native" : " 0.65.1 " ,
"rn-fetch-blob" : " x " ,
...
}, Ajoutez toutes devDependencies de @evernym/react-native-white-label-app dans la section devDependencies de votre package.json d'application.json.
"devDependencies" : {
...
"copyfiles" : " x "
}, Ajoutez la commande suivante à votre section scripts de votre package.json application.json:
"scripts" : {
...
"evernym-sdk:configure" : " yarn --cwd node_modules/@evernym/react-native-white-label-app run configure "
}, Cette commande ajoutera les modules nécessaires pour la future personnalisation des applications via evernym-sdk .
Vous pouvez maintenant installer toutes les dépendances et effectuer la configuration automatique, exécuter les commandes suivantes dans votre répertoire de projet:
yarn
yarn evernym-sdk:configure Cela installera toutes les dépendances et ajoutera des modules requis au répertoire awesomeMsdkProject/app/evernym-sdk .
Supprimer App.js par défaut et mettre ce qui suit dans index.js :
import * as EvernymSdk from '@evernym/react-native-white-label-app' ;
import { name as appName } from './app.json' ;
EvernymSdk . createApp ( appName ) ; Accédez à un fichier app/evernym-sdk/provision.js et définissez l'environnement à utiliser par votre application et votre fonction à appeler pour obtenir des jetons d'approvisionnement.
Notez que l'environnement d'application doit correspondre à l'environnement où le serveur de sponsors est enregistré.
Par exemple, l'application doit utiliserDEMOsi le serveur de sponsor était enregistré sur l'environnementDEMO.
DEFAULT_SERVER_ENVIRONMENT - le nom de l'environnement à utiliser.
Il existe plusieurs environnements prédéfinis:
// use default combination - DEMO for debug and PROD for releases builds
export const DEFAULT_SERVER_ENVIRONMENT = null
// use Demo env
// Agency: `https://agency.pps.evernym.com` and `Sovrin Staging Net`
export const DEFAULT_SERVER_ENVIRONMENT = 'DEMO'
// use Production env
// Agency: `https://agency.evernym.com` and `Sovrin Live Net`
export const DEFAULT_SERVER_ENVIRONMENT = 'PROD'
// use Staging env
// Agency: `https://agency.pstg.evernym.com` and `Sovrin Staging Net`
export const DEFAULT_SERVER_ENVIRONMENT = 'STAGING' Vous pouvez également fournir et utiliser votre environnement personnalisé à l'aide d'une combinaison de variables SERVER_ENVIRONMENTS et DEFAULT_SERVER_ENVIRONMENT :
export const SERVER_ENVIRONMENTS = {
'CUSTOM' : {
agencyUrl : 'ahency_url' ,
agencyDID : 'did' ,
agencyVerificationKey : 'verkey' ,
poolConfig : [ { key : 'staging' , genesis : 'genesis_transactions' } ] ,
}
}
export const DEFAULT_SERVER_ENVIRONMENT = 'CUSTOM' GET_PROVISION_TOKEN_FUNC - La fonction sera appelée afin d'obtenir un jeton d'approvisionnement d'agent pour votre application.
/// example
export const GET_PROVISION_TOKEN_FUNC = async (): [error: string | null, token: string | null] => {
try {
// call your sponsor server endpoint
const response = fetch_api(your_endpoint)
// process response
// return result in format [error, token]
return [null, response.token]
} catch (error) {
return [error.message, null]
}
}
Bravo! Nous avons maintenant une partie JS prête de l'application. En tant qu'étapes suivantes, nous devons configurer la version pour les plates-formes cibles.
Remarque : À ce stade, vous devriez déjà avoir terminé la section de configuration de l'application de base.
Afin de configurer la construction de votre application pour une plate-forme Android, consultez le document.
Remarque : À ce stade, vous devriez déjà avoir terminé la section de configuration de l'application de base.
Afin de configurer la construction de votre application pour une plate-forme iOS, consultez le document.
Voir la documentation pour obtenir un aperçu des options de configuration disponibles.
Cet effort fait partie d'un projet qui a obtenu un financement du programme de recherche et d'innovation de Horizon 2020 de l'Union européenne en vertu de l'accord de subvention n ° 871932 dispensé par notre participation à l'EssIF-Lab, qui vise à faire avancer la large adoption de l'identité de soi-même pour le bénéfice de tous.