OID4VCIの2つのプロセスについて

ニュース原文:

Understanding OID4VCI flows

Whether you're offering digital ID cards, permits, or proofs of eligibility, you want an experience that feels intuitive for your users and fits neatly int…

OID4VCI とは、OAuth 2.0 や OpenID Connect といった広く採用されているインターネットプロトコルの上に構築されたVCの発行プロセスを指します。開発者にとって親しみやすく、既存のシステムへの統合も容易です。

最新の仕様書に関してはこちらから参照することができます。

https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html

OID4VCIにおける2つのフロー

OID4VCIでは2つのVCの発行プロセスが定義されています。それぞれ、

  • 認可コードフロー
  • 事前認可コードフロー

と呼ばれています。
今回はニュース原文も参考にしながら、それぞれの認証方法、特徴を紹介していきたいと思います。

認可コードフロー

認可コードフローは発行者がユーザーの認証を行った上でVCを発行して受け渡す方式になります。
例えば、「〇〇大学」の卒業証書のVCが欲しい、となった場合、ユーザーはVCを受け取る際に、〇〇大学のシステムで認証(ユーザーログイン)を行ってからVCを受け取るというユーザー体験となります。

これはVCという個人情報を含むVCを配布する場合に、ユーザーの認証を行うことで本人性を担保してVCを渡すことができるという点でセキュアなUXといえます。既存のOAuth2.0のような一般的な仕組みに則ったプロトコルである点も開発難易度を下げています。

事前認可コードフロー

事前認可コードフローは、認可コードフローとは対照的に、すでにユーザーの身元が割れているようなケースで利用されます。発行者はすでにユーザーが発行しようとしているVCの保有者として適格であることを知った上でVCを発行するため、認可コードのようなユーザーログインが発生しません。

弊社の学生証サービスを導入いただいている教育機関様では、自校でユーザーログインのような仕組みは持っていないケースが多いです。その場合、運用上VCを間違いなく生徒に配布できるような仕組みにして、事前認可コードフローでVCを配布する方式をとっています。

事前認可コードフローではピンコードを設定して、メールやSMSを使うことも可能です。ユーザーの認証までは行わないが、必要に応じて知識認証を入れられるような仕組みになっています。

それぞれのユースケースの違い

不特定多数のユーザーにVCを配布し、そのユーザーがVCを発行する時まで特定できないケースの場合は認可コードフローを利用することになります。100%オンラインで取引が行われるようなケースはほとんどこちらに該当するでしょう。(認証済みの会員ページでVCを渡すようなケースは例外になるかもしれませんが)

逆にユーザーが認証済みあるいは、確実に本人であることが運用上担保されているケースでは事前認可コードフローが利用できます。よりスピーディーにVCの配布が行われる点においては使いやすいと言っても良いかもしれません。


★特別なお知らせ★

デジタルアイデンティティの最新トレンドを毎週お届け!
業界の最前線をまとめた「DID/VC Weeklyレポート」を毎週無料で配信中です。こちらから簡単に登録できますので、ぜひ情報収集や新規事業のタネ探しにご活用ください。