分布式身份 颁发毕业证

近年来,职业培训的需求与日俱增,而职业培训通常以技能证书作为培训证明,因此,证书管理的规模也不断扩大。2021年底,人社部、教育部等部门联合发布了《“十四五”职业技能培训规划》,这是我国首次编制的国家级职业技能培训五年专项规划,代表我国对职业培训及其成果的重视。

相关产品
分布式身份 产品页,含版本规格、价格与购买入口。

一、业务场景

除职业培训领域证书数量的增长外,高校毕业生人数(学历证书)也是屡创新高,据国家统计局数据显示,2022年全国高校毕业生将达到1076万,成为历史之最。如何完成毕业生证书的有效颁发和验证,成为了用人单位与求职毕业生之间的关键环节。

对个人而言,在应聘、考评等情况下,需对学历或毕业证书(学位证书)的真实性、合法性予以验证,避免假学历。对于企业,在项目投标、资质获取等情况下,也需对企业营业执照、能力证书、各种资质证书等进行鉴别,杜绝假资质。

因此,这篇说说如何快速实现一个基于 TDID 的颁发毕业证场景的区块链应用,以解决上述所提出的问题。这篇以高校毕业证的颁发和验证为例,请结合你的业务场景参考相应的应用设计方法。

·毕业证场景

·颁发毕业证

·验证毕业证

二、应用设计

以下为毕业季时毕业证书颁发和验证所涉及的角色和业务流程。

其中主要角色包括:

·监管部门: 例如 XX 省教育局

·某大学院校:例如 XX 大学

·用人单位:例如 XX 公司

·某毕业生:例如 XX 大学 2022 年的某毕业生

主要业务流程包括:

·部署应用:监管部门使用 TDID 控制台部署一个 DID 应用。

·注册 DID:大学院校和毕业生,分别注册 DID 标识。

·认证权威机构:监管部门将大学院校的 DID 标识认证为有教育资质的权威机构。

·创建毕业证书模板:监管部门使用 TDID 控制台创建毕业证书模板。

·签发凭证:权威机构为毕业生签发毕业证书凭证。

·验证凭证:用人单位验证毕业证书凭证的有效性。

三、毕业证场景

业务流程:

1. 注册 DID:某大学院校(机构)和某毕业生注册 DID 标识。

2. 认证机构:监管者(DID 应用部署方)有权限把某大学院校认证为有教育资质的权威机构。

3. 签发凭证:某大学院校给某毕业生签发毕业凭证,凭证中包含毕业生 DID,凭证内容由其私钥签名。

4. 验证凭证:某毕业生出示毕业凭证,用人单位验证毕业生和机构 DID 以及数字签名。

四、颁发毕业证

1. 注册 DID

·学生通过 DAPP 注册身份,尽可能减少暴露学生信息。

·学校通过 DAPP 注册身份,尽可能公开学校信息。

涉及接口:CreateTDidByHost,CreateTDidByPubKey

2. 认证机构

·监管方认证学校资质,用应用部署方的账号在 DID 平台把学校设置为权威机构。

·监管方在 DID 平台注册毕业证的凭证模板,模板定义了毕业证的有效字段。

3. 颁发毕业证

·学校获取学生的 DID 文档,验证学生身份。

·学校获取毕业凭证模板,根据模板签发毕业证。

涉及接口:GetTDidDocument,QueryCPT,IssueCredential

五、验证毕业证

1. 学生出示毕业证

·学生为了减少信息泄露如不暴露身份证号,可以用原始凭证生成选择性批露凭证。

·使用选择性批露凭证出示给用户单位。

涉及接口:CreateDisclosedCredential

2. 用人单位验证毕业证

·用人单位获取凭证声明的学生 DID 并解析,验证学生信息。

·用人单位获取凭证颁发机构的 DID 并解析,验证机构信息。

·用人单位获取凭证颁发机构 DID 的权威机构信息,验证机构资质。

·用人单位验证毕业凭证是否符合模板和声明内容,验证凭证是否符合要求。

·用人单位验证毕业凭证的签名,验证凭证是否由有相应资质的学校颁发。

涉及接口:GetTDidDocument,QueryCPT,VerifyCredentials

六、代码实践

以下将结合代码,详细介绍如何完成上述应用场景的开发。

七、步骤 1:部署应用

1. 登录 TDID 控制台,在左侧导航中选择应用管理。

2. 单击新增应用。

3. 在配置网络中,选择 WeCert 公共区块链网络。如下:

4. 在配置应用中,填写机构名称为 “XX 省教育局”以及应用名称为“高校毕业证书”,并部署应用。如下:

5. 单击部署。待部署成功后,将可以在应用列表看到该应用,及其应用 ID,系统将自动为 “XX 省教育局”注册一个 DID 标识,并默认认证为权威机构。如下:

八、步骤 2:注册 DID

1. 单击 tdid-diploma-demo.zip 下载最新 demo 代码。

2. 从 访问管理控制台 获取用户的 SecretId 和 SecretKey、SDK 的访问域名以及上述的应用 ID,并配置到 demo 代码中。

3. 为 XX 大学注册 DID,并将其学校名称作为自定义属性写到 DID 文档中,注册成功则可获得相应的 DID 标识。

4. 为 XX 毕业生注册 DID,并将姓名和学号作为自定义属性写到 DID 文档中,注册成功则可获得相应的 DID 标识。

九、步骤 3:认证权威机构

在 TDID 控制台将 XX 大学的 DID 标识,认证为权威机构 XX 大学。

十、步骤 4:创建毕业证书模板

毕业证书需要遵循一定的格式要求,在本应用中,将通过创建毕业证书模板,来规定毕业证书的格式,在后续验证凭证时,将会校验毕业证书凭证是否满足模板的要求。

在 TDID 控制台,新建毕业证书模板,规定毕业证书必须包括:高校名称(universityName)、毕业生姓名(studentName)、毕业生学号(studentId)、毕业生 DID 标识(studentDid)四个字段。创建成功,则可获得该凭证模板的 Id,即下图中的 模板(CPT)ID,这篇示例为1000。

十一、步骤 5:签发毕业凭证

在毕业证书模板创建之后, XX 大学则可为每一个毕业生颁发毕业证书凭证,具体如下所示。其中 XX 大学的 DID 标识作为颁发者,1000 作为使用的凭证模板 Id,凭证的声明内容包括高校名称(universityName)、毕业生姓名(studentName)、毕业生学号(studentId)、毕业生 DID 标识(studentDid)四个字段,以确保格式符合毕业凭证模板要求。

毕业凭证的具体内容如下所示:

{ "cptId": 1000, "issuer": "did:tdid:c117:0x0c1c75493fd114a3fce7567f192653ff45dd08cc", "expirationDate": "2050-12-01T10:00:00+08:00", "issuanceDate": "2023-06-27T15:22:16+08:00", "context": "https://github.com/TencentCloud-Blockchain/TDID/blob/main/context/v1", "id": "266ab6d51f0e27fdb702c620f79d7d43", "type": ["VerifiableCredential"], "credentialSubject": { "studentDid": "did:tdid:c117:0xe456a62a5cf71bab70558d06971c3ee847a03941", "studentId": "20220001", "studentName": "张三", "universityName": "XX大学" }, "proof": { "created": "2023-06-27T15:22:16+08:00", "creator": "did:tdid:c117:0x0c1c75493fd114a3fce7567f192653ff45dd08cc#keys-0", "signatureValue": "MEQCIEh4uNJMWyHgSInRaTjNvgiYlFd01xxOCsiMCimXtP0MAiAVwd/R2CJ0imrJRuhvl0Tfqwb60SJ7HOjG3EwFmPonLA==", "type": "Secp256r1", "metaDigest": "12cff20ba5132a1d8e7ddfc5173959b2fa50b3ca70ce2cd2b7cfd81172e73cd9", "vcDigest": "a7162f47a0daa58ac79ec3bc706c17626669787853875e5458ad5ef7f37dd6dd", "privacy": "Public", "salt": { "studentDid": "l9o7Y", "studentId": "H2KVI", "studentName": "24zSu", "universityName": "D8eqW" } }}

十二、步骤 6:验证毕业凭证

在 XX 毕业生在拿到由 XX 大学颁发的毕业证书凭证之后,则可以交给用人单位,由用人单位使用以下代码进行验证。验证环节首先从凭证内容中取出颁发者 DID 标识,查询该 DID 标识是否已经注册为权威机构,之后再调用 VerifyCredentials 接口,验证凭证的有效性(是否由 XX 大学签发)。

验证结果如下所示:其中 VerifyCode 为 0,且 VerifyMessage 为 success,则说明验证成功。

赞 (0)
上一篇 4天前
下一篇 4天前