Azure ADを活用した分散型ID(DID)の学生証アプリ紹介!Microsoft Build 2020

Azure ADを活用した分散型ID(DID)の学生証アプリ紹介!Microsoft Build 2020

はじめに

Microsoftが主催する開発者向けの年次イベント「Microsoft Build 2020」が、2020年5月19日から2日間にわたってオンラインで開催されました。昨年行われたBuild 2019でもブロックチェーン関連の取り組みは複数発表されており、当メディアでも紹介しています

そして今回、Build 2020内で行われたセッション「Building trust into digital experiences with decentralized identities」では、Decentralized Identity(DID)の概要と「Azure AD」などのAzureサービスを用いたDIDのデモが披露されました。本記事では同セッションの内容を紹介していきます。

分散型ID(DID:Decentralized Identity)とその必要性

Decentralized Identity(DID)とは、文字通り分散型IDのことです。 ISO/IEC 24760-1によると、アイデンティティ(ID)とは、「実体に関する属性情報の集合」(set of attributes related to an entity)と定義されています。

なお、デジタルデバイスやサービス、アプリに限らず、アイデンティティを必要とする場面は多々ありますが、本記事においてはアイデンティティはデジタルIDと読み替えてご覧ください。

中央集権型IDの課題

アイデンティティは、あなたの行動すべて

アイデンティティ(デジタルID)と聞くと、ユーザー名とパスワードの組み合わせで利用でき、購入履歴や職歴、受賞歴や卒業証明書など、様々な個人情報が紐付いたものを想像するかもしれません。

そして、それらの情報は個人のコントロール下にあると考えている方も多いのではないでしょうか?

私たちのアイデンティティは様々なアプリやサービスに撒き散らされている

しかし、企業などから個人情報が漏えいしたというニュースがしばしば報じられるように、中央集権的に管理されたIDは私たちの意思に反して拡散してしまうケースがあります。

個人情報を扱うすべてのアプリやサービスが、私たちのIDを流出させるわけではありませんし、多くの企業は監査やガバナンスに大きな労力を割いています。ところが、こうしたIDの流出は無くなりません。

結果、私たちのアイデンティティは危険に晒されている

ひと度、中央集権的に管理されたIDシステムでインシデントが発生すると、多くの個人情報が流出してしまいます。本質的な課題は中央集権型のIDに私たちの個人情報が紐付いていることです。

より安全で、組織を超えて検証できるデジタルIDが求められています。

Microsoftが整理したIDに関するニーズと要望

個人や企業(組織)、政府という異なるレイヤーにおいて、IDに対して抱えるニーズや要望は異なります。Microsoftは、顧客との対話や彼ら・彼女らからの要望、参画しているプロジェクトでの経験を踏まえて、IDに関するニーズや要望を以下のように整理しました。

個人企業(組織)政府(非政府)
・プライバシー保護、自分のIDとデータのコントロール
・ハッキングからの保護
・情報漏えいからの保護
・信頼と検証(いかにIDを信頼して検証するか)
・すべての他社(他者)との協力
・GDPRやKYC/AMLのリスク削減
・クロスボーダーと政府機関のためのID
・難民のためのデジタルID
・すべての人のための社会的・金融包摂

企業や政府にとって課題となるのが、いかにして特定の人物であることを組織を超えて検証するか?ということです。

Microsoftはこれらの課題を解決しようと、中央集権的な管理ではなく、個人が自分の情報をコントロールできる分散型ID(DID:Decentralized Identity)の開発を進めています。

デモ:分散型の学生証アプリ(Student ID)

さて、今回のセッションでは、DIDベースの学生証アプリが披露されました。

架空の大学「Contoso University」の学生であることを証明するために、大学側が発行した「検証可能な証明書」(Verifiable Credentials)をスマホに登録します。書店などで学割を使いたい場合は、証明書(学生証)を提示すればOKです。また、スマホには別の証明書も登録できます。

さっそくデモアプリを紹介したいところですが、その前に全体の仕組みを紹介しておきましょう。

DIDの仕組み

以下の図が今回のDIDの仕組み概要です。左から、証明書の発行者であるContoso University、学生が使うスマホアプリ、証明書を提示されて検証を行う企業となっています(図ではEmployerとなっていますが、デモでは書店がこの部分に当たります)。

学生の使うスマホアプリは、Microsoftが開発・提供している「Microsoft Authenticator」が採用されています。

Issuer DID
https://didproject.azurewebsites.net/docs/verifiable-credentials.html

まず、大学側の電子署名を検証するための公開鍵は、ブロックチェーン(分散型台帳技術)を用いた分散型の公開鍵基盤(DPKI:Decentralized Public Key Infrastructure)に登録しておきます。そして、大学側は学生に対して、電子署名付きの証明書を発行します。

学生が提示した証明書を検証したい場合は、上図右側の上向き矢印でも示されているように、大学がDPKIに登録した公開鍵を検索・取得して検証すればOKです。

DPKIには2019年5月にMicrosoftが早期プレビュー版を公開していた「Identity Overlay Network」(ION)が採用されています。IONは、既存の分散型台帳でスケーラブルなDPKIネットワークを構築するためのプロトコル「Sidetree」を用いて、Bitcoin上で構築されたネットワークです。

なお、今回のような検証可能な証明書(Verifiable Credentials)と、Verifiable Credentialsを検証するために必要なPKIについては、「W3C」(World Wide Web Consortium)の策定した標準に基づいて開発されています。

▼W3Cの標準仕様はこちら
Verifiable Credentials Data Model 1.0
Decentralized Identifiers (DIDs) v1.0

全体像を紹介したところで、セッションで紹介されたデモを見ていきましょう。

DIDベースの学生証

まず、大学側からQRコード付きのメールを受け取った学生Aliceは、Microsoft AuthenticatorでQRコードを読み取って学生証を登録するための処理を行います。

処理が行われると、Aliceが在籍するContoso Universityのページへのサインインが要求されるのでサインインを行います。なお、ここでは一般的なユーザー名とパスワードが求められます。

そして、生体認証(指紋認証や顔認証など)や暗証番号を用いて承認を行い、学生証(見た目としてはカード)を追加します。これでAliceは、スマホに登録した学生証を用いて、自分がContoso Universityの学生であると、第三者に証明できるようになりました。

なお、学生証の情報や過去のアクティビティはアプリで閲覧できます。これらの情報はすべてAliceのスマホでコントロール可能です。

それではさっそく、書店で学割を使ってみましょう。「Fabrikam Bookstore」のWebサイトを訪問し、自分がContoso Universityに在籍していることを証明します。

Webページ上の「Verify Credentials」を押すと、書店側から証明書の提示をするようにリクエストされます。先程のように生体認証や暗証番号を用いて、リクエストを許可します。

リクエストが許可されると、書店側はAliceの学生証に付与されたContoso Universityの電子署名を検証して、サイトを訪れたユーザーが学割の対象者であることを確認できるのです。

Aliceは無事、学割で本を購入できるようになりました。

また、書店がAliceの学生証を閲覧する権限を取り消すこともできます。アプリのReceiptページの「Revoke access」を選択すれば、書店側がAliceの学生証にアクセスできなくなるのです。

なお、アプリでは複数の証明書を管理することも可能です。

複数の証明書を管理できる

以上がDIDベースの学生証アプリのデモ概要です。使用感としては私たちが使い慣れているアプリと同様だといえるでしょう。

デモアプリのようなDIDのメリット

中央集権型のIDとは異なる重要な点は、Aliceのアイデンティティがすべてスマホのローカルストレージに保管されており、Aliceのコントロール下にあるということです。

学割サービスを提供する書店は、DPKIに登録された公開鍵を使って、Aliceが学生であることを検証できるので、Aliceの個人情報を管理しておく必要がありません。

したがって、Aliceは自分のプライバシーを守りながら、他者に開示する情報を主体的にコントロールすることができます。書店側も情報漏えいのリスクを削減することが可能です。

デモのようなDIDアプリはAzure上で開発可能

今回紹介したようなDIDアプリケーションは、「Azure AD」や「Azure Key Vault」、プレビュー版として公開されている「Verifiable Credentials」などのAzureサービスを用いることで開発可能です。

実際に開発する場合はAzure ADでテナントを作成した後、Verifiable Credentialsのprivate preview版の利用をこちらからリクエストする必要があります。

チュートリアルも公開されているので、興味がある方はぜひ開発してみてはいかがでしょうか?

▼チュートリアルはこちら
https://didproject.azurewebsites.net/docs/issuer-setup.html

参考:DIFの取り組み

なお、セッションの最後には、DIDのオープンなエコシステムと相互運用性を確立するための組織「Decentralized Identity Foundation」(DIF)の最近の取り組みが発表されました。直近ではゼロ知識証明と紛失や機種変更時のDIDのリカバリー方法について研究が進められているようです。

興味がある方はコミュニティに参加して、フィードバックを送ってみてはいかがでしょうか?

まとめ

事業者側にとってDIDは、ユーザーの個人情報管理コストを削減でき、GDPRのような規制に対応する有用な選択肢になる可能性を秘めています。

実際にMicrosoftが、2018年にDIDに関するホワイトペーパーを公開して以降、積極的に開発を進めているほか、多くの企業がDIFに参画しながらDIDを研究しています。

また、ユーザーにとっては、DIDは自分のプライバシーを守るための効果的な選択肢になるはずです。

本記事で紹介したセッションの動画は公開されていますので、全編を観たい方はそちらをご覧ください。本記事は主に前半部分の紹介となっており、後半では今回のデモのコードを解説するパートもあります。

MS Build SK114 Building trust into digital experiences with decentralized identities

活用事例カテゴリの最新記事