You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ml-gradle(MarkLogic)项目中访问Azure Key Vault获取密码

在Gradle MarkLogic项目中使用Azure Key Vault存储的密码

步骤1:添加Azure Key Vault相关依赖

在项目的build.gradle(或build.gradle.kts)中引入访问Azure Key Vault所需的Gradle插件和依赖库:

plugins {
    id "com.microsoft.azure.azure-keyvault" version "1.12.0"
}

dependencies {
    implementation "com.azure:azure-security-keyvault-secrets:4.6.0"
    implementation "com.azure:azure-identity:1.12.0"
}

步骤2:配置Key Vault访问权限

  • 本地开发:执行az login登录你的Azure账号,确保该账号拥有目标Key Vault的Secret Reader权限
  • 生产环境:为运行Gradle的服务主体/托管身份分配Key Vault的Secret Reader角色,避免使用账号密码硬编码

步骤3:读取密钥并配置MarkLogic连接

在build.gradle中添加代码,从Key Vault拉取密码,结合已有的username属性完成MarkLogic配置:

import com.azure.identity.DefaultAzureCredentialBuilder
import com.azure.security.keyvault.secrets.SecretClient
import com.azure.security.keyvault.secrets.SecretClientBuilder

// 初始化Key Vault客户端
def keyVaultUrl = "https://你的密钥保管库名称.vault.azure.net/"
def secretClient = new SecretClientBuilder()
    .vaultUrl(keyVaultUrl)
    .credential(new DefaultAzureCredentialBuilder().build())
    .buildClient()

// 获取存储的密码
def mlPassword = secretClient.getSecret("你的密码密钥名称").getValue()

// 配置MarkLogic连接参数
marklogic {
    host = "你的MarkLogic主机地址"
    port = 8000
    username = project.properties["username"] // 复用已配置的username属性
    password = mlPassword
    authType = "DIGEST"
}

步骤4:避免敏感信息泄露

  • 不要硬编码Key Vault地址或密钥名称,改用Gradle属性或环境变量传递:
    def keyVaultUrl = project.findProperty("keyVaultUrl") ?: System.getenv("AZURE_KEY_VAULT_URL")
    def secretName = project.findProperty("mlPasswordSecretName") ?: System.getenv("ML_PASSWORD_SECRET_NAME")
    
  • 在.gitignore中排除包含敏感属性的配置文件,防止提交到版本库

内容的提问来源于stack exchange,提问作者Rashmi Ranjan Acharya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 04:42:44