你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

适用于 Java 的 Azure 机密账本客户端库 - 版本 1.0.14

Azure 机密账本提供一项服务,用于记录到不可变、防篡改的账本。 作为 Azure 机密计算 产品组合的一部分,Azure 机密账本在 SGX enclave 中运行。 它基于 Microsoft Research 的 机密联盟框架

源代码 | 包 (Maven) | 产品文档 | 样品

入门

先决条件

包括包

<dependency>
  <groupId>com.azure</groupId>
  <artifactId>azure-security-confidentialledger</artifactId>
  <version>1.0.14</version>
</dependency>

验证客户端

使用 Azure Active Directory

为了与 Azure 机密账本服务交互,客户端必须向服务提供 Azure Active Directory 持有者令牌。

提供持有者令牌的最简单方法是使用 DefaultAzureCredential 身份验证方法,方法是在本入门部分中提供客户端机密凭据,但你可以找到使用 azure-identity 进行身份验证的更多方法。

使用客户端证书

作为 Azure Active Directory 的替代方法,客户端可以选择使用客户端证书通过相互 TLS 进行身份验证。 CertificateCredential 可用于此目的。 对于刚接触该服务的任何人,不建议使用此方法。

使用 Azure Active Directory 凭据创建 LedgerBaseClient

可以使用 Azure 标识库通过 Azure Active Directory 进行身份验证。

若要使用如下所示的 DefaultAzureCredential 提供程序或 Azure SDK 提供的其他凭据提供程序,请包含 包 azure-identity

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>1.5.4</version>
</dependency>

将 AAD 应用程序的客户端 ID、租户 ID 和客户端密码的值设置为环境变量:AZURE_CLIENT_ID、AZURE_TENANT_ID、AZURE_CLIENT_SECRET。

关键概念

账本条目和事务

每次写入 Azure 机密账本都会在服务中生成不可变的账本条目。 写入(也称为事务)由事务 ID 唯一标识,事务 ID 随每次写入而递增。 写入后,可以随时检索账本条目。

Receipts

机密账本的状态更改保存在名为 Merkle 树的数据结构中。 若要以加密方式验证是否已正确保存写入,可以检索任何事务 ID 的 Merkle 证明或收据。

子账本

虽然大多数用例将涉及一个账本,但我们提供子账本功能,以防语义或逻辑上不同的数据组需要存储在同一机密账本中。

账本条目由其子账本标识符检索。 对于在未指定子账本的情况下提交的条目,机密账本始终采用由服务确定的常量子账本 ID。

用户

用户直接使用机密账本进行管理,而不是通过 Azure 进行管理。 用户可能基于 AAD,由其 AAD 对象 ID 标识,或者基于证书,由其 PEM 证书指纹标识。

机密计算

Azure 机密计算 允许在云中处理数据时隔离和保护数据。 Azure 机密账本在 Azure 机密计算虚拟机上运行,从而通过加密正在使用的数据提供更强大的数据保护。

机密联盟框架

Azure 机密账本基于 Microsoft Research 的开源 机密联盟框架 (CCF) 。 根据 CCF,应用程序由成员联盟管理,这些成员能够提交修改和治理应用程序操作的建议。 在 Azure 机密账本中,Microsoft Azure 拥有成员标识,允许其执行治理操作,例如替换机密账本中的不正常节点或升级 enclave 代码。

示例

可以在 示例自述文件中找到示例

疑难解答

启用日志记录

适用于 Java 的 Azure SDK 提供一致的日志记录案例,可帮助排查应用程序错误并加快解决。 生成的日志会在到达终端状态之前捕获应用程序的流,以帮助查找根本问题。 查看 日志记录 Wiki,获取有关启用日志记录的指南。

后续步骤

贡献

本项目欢迎贡献和建议。 大多数贡献要求你同意贡献者许可协议 (CLA),并声明你有权(并且确实有权)授予我们使用你的贡献的权利。

提交拉取请求时,CLA 机器人将自动确定你是否需要提供 CLA,并相应地修饰 PR(例如标签、注释)。 直接按机器人提供的说明操作。 只需使用 CLA 对所有存储库执行一次这样的操作。

此项目采用了 Microsoft 开放源代码行为准则。 有关详细信息,请参阅行为准则常见问题解答,或如果有任何其他问题或意见,请与 联系。

曝光数