Microsoft Entra Verified ID を使ってみた（④証明書カスタマイズ編）

前回の記事では、Microsoft Entra Verified IDを使った証明書の発行や検証を行いました。

今回は証明書のデザインに注目し、色や文字などのカスタマイズを行っていきます。


### 証明書のカスタマイズ
Microsoft Entra管理ページの検証済みID > 資格情報 > 作成した資格情報名（「VerifiedCredentialExpert」など） > プロパティにアクセスし証明書のカスタマイズを行います。

プロパティにアクセスすると、このようなJSONが編集できます。

![1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/962964/c300635a-623b-2962-d65c-43151bdf3531.png)


今回は、下記ドキュメントを参考にこのJSONの`card`部分を編集していきます。

https://learn.microsoft.com/ja-jp/azure/active-directory/verifiable-credentials/credential-design


```json
{
  "card": {
    "backgroundColor": "#333c5e",
    "description": "Use your verified credential to prove to anyone that you know all about verifiable credentials.",
    "issuedBy": "VerifiedIDSample",
    "textColor": "#ffffff",
    "title": "Verified ID Sample"
  },
  ...
}
```


#### タイトル
証明書のタイトルは、証明書の右上に表示されます。`title`項目で編集します。

![2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/962964/d7e47d00-0337-bce9-240f-5c5b9422dae9.png)

```json
{
  "card": {
    "title": "Verified Employee",
  },
  ...
}
```


#### 発行者
証明書の発行者は、証明書の左下に表示されます。`issuedBy`項目で編集します。

![3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/962964/a8f8612b-30b4-26d8-d7cf-9caaf31154b9.png)

```json
{
  "card": {
    "issuedBy": "Woodgroove"
  },
  ...
}
```

##### 文字色
タイトルや発行者に適用する文字色は`textColor`で編集します。

色は`#ffffff`などのように16進数で表現します。

```json
{
  "card": {
    "title": "Verified Employee",
    "issuedBy": "Woodgroove",
    "textColor": "#d3d3d3",
  },
  ...
}
```

#### 背景色
証明書の背景色は`backgroundColor`項目で編集します。

文字色と同様に、16進数で表現します。

![4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/962964/48bb493f-e0a2-bd6d-73b1-ca978f08096d.png)

```json
{
  "card": {
    "backgroundColor": "#44A828",
  },
  ...
}
```


#### ロゴ
証明書の左上には、ロゴを表示させることができます。

編集の方法は2通りあり、`url`項目でURLを指定するか、`image`項目でBase64形式で指定するかを選べます。

例えば、Azure BLOB StorageにアップロードしたBLOBのURIを`uri`に指定することができます。

![5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/962964/9e67ac33-427e-6019-8fd5-ee224dd82c28.png)

```json
{
  "card": {
    "logo": {
      "description": "Default VC logo",
      "uri": "https://example.com/logo.png"
    },
  },
  ...
}
```

参考：https://learn.microsoft.com/ja-jp/azure/active-directory/verifiable-credentials/rules-and-display-definitions-model#displaycredentiallogo-type

#### 定義の更新
JSONの編集が完了したらプロパティの「更新」ボタンを選択します。

更新後の定義の例は下記の通りです。

```json
{
  "card": {
    "backgroundColor": "#44A828",
    "description": "Use your verified credential to prove to anyone that you know all about verifiable credentials.",
    "issuedBy": "Woodgroove",
    "textColor": "#F1FBEE",
    "title": "Verified Employee",
    "logo": {
      "description": "Default VC logo",
      "uri": "https://example.com/logo.png"
    }
  },
  ...
}
```


#### プレビュー
資格情報の詳細画面に戻ると、証明書デザインのプレビューを確認することができます。

もちろん、この状態で証明書の発行を行うことで最新デザインの証明書を利用することができます。

![6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/962964/07e0865b-3c65-7c6c-f4b1-74731569ecfd.png)

※ロゴ部分に表示している画像は下記サイトの素材を使用しています。
* [ICOON MONO](https://icooon-mono.com)

## デザイン更新前に発行済みの証明書について
例えば証明書のデザイン更新以前に発行済みの古い証明書を持つユーザーがいるとします。

仮に証明書のデザインが更新された場合、そういったユーザーは古い証明書が使えなくなってしまうのか？ということが気になり調査してみました。

結論としては、古いデザインの証明書のままでも証明書の検証に影響は無いものの、検証後も古いデザインの証明書のままでした。

## まとめ
今回は、Veridied IDで発行する証明書の見た目をカスタマイズする方法をご紹介しました。

主な利用シーンとしては証明書に企業名やロゴ、コーポレートカラーなどを表示するようカスタマイズするといった場面が多いかと思います。

## 関連記事
* 前回の記事
  * [Microsoft Entra Verified ID を使ってみた（①環境構築編）](https://qiita.com/AsukaSeki/items/cccc944244cd9deaeab9)
  * [Microsoft Entra Verified ID を使ってみた（②発行編）](https://qiita.com/ToshihiroNozaki/items/ab493131998bcac837c6)
  * [Microsoft Entra Verified ID を使ってみた（③検証編）](https://qiita.com/AsukaSeki/items/95586c685d1d0db4f6ce)
  
## 参考資料
* [Customize your verifiable credentials](https://learn.microsoft.com/en-us/azure/active-directory/verifiable-credentials/credential-design)
* [Rules and Display Definition Reference](https://learn.microsoft.com/en-us/azure/active-directory/verifiable-credentials/rules-and-display-definitions-model)