OpenID4VCI ve OpenID4VP: Bir AB Cüzdanının Konuştuğu İki Protokol
Birini bugün üretimde çalıştırıyoruz, farklı bir Solidus ürününde. Diğerini hiçbir yerde gerçekleştirmiyoruz.
Bunun Avrupa cüzdan uyumluluğuna eşit olup olmadığı, ayrı yanıtı olan ayrı bir sorudur, ve şurada. Bu sayfa protokoller hakkında.
İki protokolün ne yaptığı
Onlar teldir, yük değil. Kimlik bilgisi biçimi farklı bir katmandır, ve ikisi düzenli olarak birbirine karıştırılıyor.
- OpenID4VCI, verme. Bir cüzdanın bir verenden nasıl kimlik bilgisi isteyip aldığı. OAuth'u yeniden kullanıyor: bir yetkilendirme adımı, bir jeton, sonra bir kimlik bilgisi uç noktasına bir çağrı. Veren, makine tarafından okunabilir üstveri yayımlıyor, böylece bir cüzdan, bir insanın belge okumasına gerek kalmadan neyin sunulduğunu keşfedebiliyor.
- OpenID4VP, sunma. Bir doğrulayıcının bir cüzdandan belirli iddiaları nasıl isteyip doğrulanabilir bir yanıt aldığı. İsteğin nasıl ifade edildiğini, yanıtın nasıl geri geldiğini, ve yeniden oynatılamaması için o isteğe nasıl bağlandığını tanımlıyor.
İkisi de yeni bir taşıma icat etmek yerine OAuth 2 ve OpenID Connect üzerine kurulmuştur, ki mevcut altyapının ve kütüphanelerin ağırlığın çoğunu taşımasının sebebi budur.
Gerçekte ne çalıştırdığımız: bir yadsıma değil, bir kapsam beyanı
İçerik planımız bu sayfaya, Solidus'un ikisini de gerçekleştirmediğini söylemesini söyledi. Bu yanlıştır, ve onu yayımlamak kendi işimizi olduğundan az gösterirdi.
OpenID4VCI gerçekleştirilmiştir ve canlıdır. Üstveriyi kendiniz getirin:
$ curl -s https://verify.solidus.network/.well-known/openid-credential-issuer
Bir kimlik bilgisi uç noktası, bir jeton uç noktası, ve sunulan yapılandırmaları döndürüyor. Aynı
yol bu ürünün sunucusunda 404 döndürüyor, ve veren sunucudaki uydurma bir .well-known yolu da 404
döndürüyor, dolayısıyla 200 gerçek bir uç noktadır, bir yakala-hepsini değil.
Bu oturumda çalıştırıldı, ileri sürülmedi: üstveri iki kimlik bilgisi yapılandırmasıyla geri geldi, ve aynı şeyi herhangi bir makineden, hesapsız ve kimlik bilgisiz doğrulayabilirsiniz.
Ve kaynakta, ileri sürülmüş değil ölçülmüş hâliyle: protokol adları bu ürünün arka ucunda sıfır
dosyayla eşleşiyor, kontrol olarak aynı ağaçta credential 22 dosyayla eşleşirken, ve veren üründe
59 dosya.
Yani doğru cümle şudur: bu ürün iki protokolü de gerçekleştirmiyor; farklı bir Solidus ürünü verme protokolünü gerçekleştiriyor ve canlı üstveri sunuyor. Bu, bir yokluk değil ürünler arasında bir sınırdır, ve bunu "Solidus ikisini de gerçekleştirmiyor"a düzleştiren bir sayfa, kendi konumumuz hakkında yanlış olurdu.
OpenID4VP: gerçekleştirilmemiş, ve onun yerine ne olduğu
Hiçbir yerde bir sunma protokolü gerçekleştirimi bulamadık. Yokladığımız sunucularda doğrulayıcı üstverisi yok.
Var olan şey kendimize ait bir sunum akışıdır. Bir doğrulayıcının isteği bir bağlantı olarak
geliyor, açıklama tarayıcıda kuruluyor, ve doğrulayıcının kendi uç noktasına geri gönderiliyor, geri
çağrı isteyenin alan adına bağlanmış hâlde: https artı tam bir sunucu adı eşleşmesi, istek
ayrıştırılırken ve gönderme anında yeniden denetleniyor. Yanındaki yoruma güvenmek yerine
gerçekleştirimi okuduk.
Bu sağlam bir tasarımdır ve OpenID4VP değildir. Ona benzeyen, kendimize özgü bir akıştır. Belirtime karşı yazılmış bir cüzdan onu konuşmayacak, ve ona OID4VP uyumlu demek yanlış olurdu.
Bütünleştirmeden önce bilmeye değer iki ayrıntı
1. Canlı üstverimiz standart olmayan bir biçim duyuruyor. İki kimlik bilgisi yapılandırmasından
biri vc+sd-jwt, diğeri solidus-bbs-v2, bizimki. Solidus'a karşı yazılmamış hiçbir cüzdan
ikincisiyle ne yapacağını bilmeyecek. Mesele birlikte çalışabilirlikse standart olanı kullanın.
2. proof_types_supported, proofPurpose değildir. Birincisi, OpenID4VCI'nin cüzdanın bir
anahtar tuttuğuna dair kanıtıdır; ikincisi tamamen farklı bir belirtim ailesine aittir. Benzer
sözcükler, ilgisiz düzenekler, ve tam olarak bu karışıklık sınıfı hakkında bir sayfamız
var.

