2024年3月4日月曜日

VC WalletのVC発行エンドポイントへの対応を見てみる

こんにちは、富士榮です。

日本でも日本以外でもVerifiable Credentialsが流行っていて(私の周りだけ?)、色々な事業者がIssuanceのデモやウォレットのデモを公開しているので定期的に巡回をしているのですが、先日ようやくImplementer's Draft 1に向けて第一歩を踏み出したOpenID for Verifiable Credential IssuanceのBreaking Changesに対応はまだまだ進んでいないのが実情だなぁ、というあたりの雑談です。

今回手元にあったのでウォレットとVC発行サイトとして、

  • Auth0 Lab
  • walt.id
を見てみたいと思います。

Credential発行時のカスタムスキームの変更

その前に、OpenID for Verifiable Credential Issuanceのdraft 9とdraft 10の間で何が起きたのかみていこうと思います。(ちなみにImplementer's draft候補はdraft 13です)
先日も紹介したchange logを見るとこうあります。

-10

  • introduced differentiation between Credential Issuer and Authorization Server
  • relaxed Client identification requirements for Pre-Authorized Code Grant Type
  • renamed issuance initiation endpoint to Credential Offer Endpoint
  • added grants structure to Credential offer
issuance initialtion endpointをCredential Offer Endpointにリネームしたことがわかります。具体的にどうなったのかを今更ながら見てみましょう。
こちらがdraft 9のclient metadataに関する記載です。

11.1. Client Metadata

This specification defines the following new Client Metadata parameter in addition to [RFC7591] for Wallets acting as OAuth client:

  • initiate_issuance_endpoint: OPTIONAL. URL of the issuance initation endpoint of a Wallet.

If the Credential Issuer is unable to perform discovery of the Issuance Initiation Endpoint URL, the following claimed URL is used: openid-initiate-issuance://.

そしてこちらがdraft 10の当該箇所です。

10.1. Client Metadata

This specification defines the following new Client Metadata parameter in addition to [RFC7591] for Wallets acting as OAuth client:

  • credential_offer_endpoint: OPTIONAL. URL of the issuance initation endpoint of a Wallet.

If the Credential Issuer is unable to perform discovery of the Credential Offer Endpoint URL, the following claimed URL is used: openid-credential-offer://.


openid-initiate-issuanceからopenid-credential-offerに変わっていますね。ウォレットはこのカスタムスキームを見て起動してくるのでここが変わると起動できません。
と言うことでAuth0 labsとwalt.idを見てみましょう。

Auth0 labs

以前紹介しましたね。Credential発行時のQRコードをこの辺りのサイトで読み込ませてみて、Auth0がどのようなURLスキームを期待しているのか見てみましょう。

期待しているのは
openid-initiate-issuance://?issuer=https%3A%2F%2Fっxxxx.auth0lab.com&credential_type=Auth0LabMemberCredential
でした。OID4VCIのdraft 9までの実装ですね。

walt.id

こちらは初出かもしれませんが、JFFのPlugfestなどにも出ていたものです。
その時のデモサイトが残っているのでVC発行を体験できます。

こちらが期待しているのは
openid-initiate-issuance://?issuer=https%3A%2F%2Fjff.walt.id%2Fissuer-api%2Fdefault%2Foidc%2F&credential_type=OpenBadgeCredential&pre-authorized_code=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJlN2NlM2M5NS0yMTkwLTQxMGItYmI5MS03MzRkOGY5ZGIzNjIiLCJwcmUtYXV0aG9yaXplZCI6dHJ1ZX0.J7--G169U0x61zOoPSbWUESMDO3_YfBsSvgUiHwT7ZQ&user_pin_required=false
でした。こちらも同じくdraft 9以前ですね。

では、Auth0 labとwalt.idは相互運用できるのか

残念、できませんでした。
Auth0が提供しているWebウォレットでwalt.idの発行要求を読み取っても反応しませんでしたし、逆も然りでした。



Auth0が提供しているWebウォレット



walt.idが提供しているWebウォレット



マイクロソフトAuthenticator?
openid-vc://?request_uri=https://verifiedid.did.msidentity.com/v1.0/tenants/2c62f1a6-ff50-4764-96a9-0196ebb1bfff/verifiableCredentials/issuanceRequests/d75e8cb7-e79c-443e-81fd-590536b96b34
です.......


早く相互運用性が実現するといいですね。

0 件のコメント: