Ajan Kimliği SDK Hızlı Başlangıcı, Bir Hızlı Başlangıcın Genellikle Gizlediği Üç Şeyle

Kurulum

npm i @solidus-network/agent-identity @solidus-network/agent-identity-verify

İkisi de açık sicilde 0.1.4'te. Depo 0.1.0 bildiriyor, dolayısıyla paket yerine kaynağımızı okuyan biri, kurduğundan farklı bir şey okuyor. Bu sayfa kurulu pakete karşı yazıldı.

Bir: saklama varsayılanı anahtarı bize veriyor

createAgent yönetilen saklamayı varsayıyor, hem API'de hem bağdaştırıcı çekirdeğinde. Yönetilen, ajanın imzalama anahtarını bizim üretip şifrelediğimiz ve sakladığımız demektir ve onu sonradan dışa aktarmak, bizim kopyamızı silmeden anahtarı döndürüyor.

Anahtarı siz tutmak istiyorsanız bunu söyleyin ve açık yarısını geçirin:

const agent = await solidus.createAgent({ custody: 'byo', publicKey: myPublicKeyHex })

Bu, ajanı imzanız için sahnelenmiş hâlde döndürüyor, bir tek kullanımlık sayı ve bir ağ adıyla. Sonra tanımlayıcı oluşturma işlemini kendiniz imzalayıp gönderiyorsunuz ve zincir, imzalayanın kaydettiğiniz anahtarla eşleşmesini dayatıyor.

Çerçeve bağdaştırıcıları bunu yapamıyor. Paylaşılan seçenekleri bir ajan tanımlayıcısı ile bir yetenek listesi taşıyor ve zaten denetlediğiniz bir imzalayan için bir alan taşımıyor, dolayısıyla her bağdaştırıcı yolu yönetilen saklamadır. Önce ajanı açıkça oluşturun, sonra tanımlayıcısını bağdaştırıcıya geçirin.

Bir yetenek kimlik bilgisi verin

const issued = await solidus.issueCapability(agent.id, { scopes: ['reports:read'] })

O kapsam dizgileri hiçbir kelime dağarcığına hesap vermiyor. Hiçbir şey izin verilen bir küme tanımlamıyor, dolayısıyla onları kontrol eden kim olursa olsun, sizin ve onun bant dışında anlaşmanız gereken bir teamüle karşı dizgi karşılaştırması yapıyor.

İki: demet bir kez geri geliyor ve hamiline yazılı bir kimlik bilgisi

Yanıt bir demet taşıyor: bir imza, bir açık anahtar, kodlanmış iletiler ve bir sürüm. Başka hiçbir çağrı onu döndürmüyor. Kaybederseniz yeniden verirsiniz.

Ve her iki pakette de hiçbir yerde tutucu anahtar bağlaması yok. Demete sahip olmak kimlik bilgisini sunmaya yetiyor. Onu bir makbuz saklar gibi değil, özel bir anahtar saklar gibi saklayın.

Sunun

const header = await buildAgentAuthHeader(bundle, { method: 'GET', path: '/reports' }, {
  discloseClaims: ['scopes'],
  status: { uri: issued.credential.statusListUri, index: issued.credential.statusListIdx },
  credentialId: issued.credential.l1CredentialId,
})

Kanıt çevrimdışı türetiliyor, istek başına taze, ve yönteme, yola ve bir zaman damgasına bağlanıyor.

Durum referansını geçirin. Biçimde isteğe bağlıdır ve sonraki bölüm, onu dışarıda bırakmanın neden göründüğünden önemli olduğudur.

Üç: hoşgörülü bir doğrulayıcı iptal edilmiş kimlik bilgilerini kabul ediyor

Zarfta durum referansı yoksa, doğrulama geçerli bir hüküm ve kontrol edilmemiş bir iptal durumu döndürüyor. Referansı sunan taraf sağlıyor, dolayısıyla yalnızca manşet alanı okuyan bir doğrulayıcı, kontrol edilip edilmeyeceğine kontrol edilen tarafın karar vermesine izin veriyor.

Onun yerine bunu yapın:

const verifier = createVerifier({ statusIssuerPublicKey: ISSUER_STATUS_KEY })
const result = await verifier.verify({ ...envelope, status: envelope.status })
if (!result.valid || result.revoked !== false) reject()

Önemli olan ikinci koşuldur. Kontrol edilmemiş bir iptal durumu iyi haber değildir ve doğrulayıcı sayfası geri kalanını kapsıyor, her iki yoldan gelen bir iptal hükmünün neden iptal sayılması gerektiği dahil.

Temiz oda kontrolünün gerçekte kanıtladığı ve kanıtlamadığı şey

Kanıtladı: her iki paket de açık sicilden, monorepo olmadan ve kimlik bilgisi olmadan boş bir dizine kuruluyor, dışa aktarımlar çözümleniyor ve yukarıdaki üç açıklama yalnızca kaynağımız için değil yayımlanmış dosyalar için doğrudur.

Kanıtlamadı: bu parçacıkların uçtan uca çalıştığını. Bu, bir işletmeci kimlik bilgisi ve canlı bir çalışma alanı gerektiriyor ve bu sayfa onları yürüttüğünü iddia etmiyor.

Hangisinin hangisi olduğunu söylemek, doğrulanmış bir hızlı başlangıç ile makul görünen bir hızlı başlangıç arasındaki farktır.

Bu SDK'nın size vermeyeceği şey

Mutabakat değil. Hiçbir yönde üzerimizden değer geçmiyor. Bir ödeme yetkilendirme yüzeyi dışa aktarılıyor ve kasten burada gösterilmiyor.

Kimlik kontrolü değil. Bu yüzey başka yerde verilmiş bir kimlik bilgisini alıyor ve hiçbir zaman kendisi bir kontrol yürütmüyor.

Okumaya devam edin

Ajan Kimliği SDK Hızlı Başlangıcı, Bir Hızlı Başlangıcın Genellikle Gizlediği Üç Şeyle · Solidus · Solidus Agents