Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在node/TypeScript中使用SecretClient时,如何使用用户AD帐户?_Node.js_Typescript_Azure Keyvault - Fatal编程技术网

Node.js 在node/TypeScript中使用SecretClient时,如何使用用户AD帐户?

Node.js 在node/TypeScript中使用SecretClient时,如何使用用户AD帐户?,node.js,typescript,azure-keyvault,Node.js,Typescript,Azure Keyvault,我正在尝试使用Azure Key Vault Secret客户端库(),但在身份验证方面遇到了问题。这些示例都使用服务主体,但我也尝试允许使用AD用户进行访问。这可以通过从运行上下文中获取用户或通过用户名/密码来实现。可以使用这个库吗?如果不是,我需要使用其他库,还是需要直接进行其余调用?根据我的理解,您希望使用用户名和密码获取Azure Key Vault机密。我们可以在SDK@azure/identity中使用UsernamePasswordCredential来实现它。具体步骤如下 注册A

我正在尝试使用Azure Key Vault Secret客户端库(),但在身份验证方面遇到了问题。这些示例都使用服务主体,但我也尝试允许使用AD用户进行访问。这可以通过从运行上下文中获取用户或通过用户名/密码来实现。可以使用这个库吗?如果不是,我需要使用其他库,还是需要直接进行其余调用?

根据我的理解,您希望使用用户名和密码获取Azure Key Vault机密。我们可以在SDK
@azure/identity
中使用
UsernamePasswordCredential
来实现它。具体步骤如下

  • 注册Azure广告应用程序

  • 配置Azure AD应用程序

    • 作为公共客户

    • 配置API权限

  • 样品

    a。安装SDK

    npm install @azure/keyvault-secrets
    npm install @azure/identity
    npm install dotenv
    
    b。创建
    .env
    文件

    AZURE_TENANT_ID=<your tenant id>
    AZURE_CLIENT_ID=<your appid>
    AZURE_USERNAME=<your AzureAD user account>
    AZURE_PASSWORD=<your AzureAD account password>
    
    AZURE\u租户\u ID=
    AZURE\u客户端\u ID=
    AZURE_用户名=
    AZURE_密码=
    
    c。代码

    var keyvault = require('@azure/keyvault-secrets')
    var azure = require('@azure/identity')
    const dotenv = require('dotenv');
    dotenv.config();
    
    async function main() {
     const creds = new  azure.UsernamePasswordCredential(process.env.AZURE_TENANT_ID,process.env.AZURE_CLIENT_ID,process.env.AZURE_USERNAME,process.env.AZURE_PASSWORD)
              const client = new keyvault.SecretClient('<your key vault url>',creds)
              const secret = await client1.getSecret('<your secret name>')
              console.log(secret)
    }
    
    main()
      .then(() => {
        console.log("Successfully executed sample.");
      })
      .catch((err) => {
        console.log(err.message);
      });
    
    var-keyvault=require(“@azure/keyvault-secrets”)
    var azure=require(“@azure/identity”)
    const dotenv=require('dotenv');
    dotenv.config();
    异步函数main(){
    const creds=new azure.UsernamePasswordCredential(process.env.azure\租户\ ID,process.env.azure\客户端\ ID,process.env.azure\用户名,process.env.azure\密码)
    const client=new keyvault.SecretClient(“”,creds)
    const secret=wait client1.getSecret(“”)
    console.log(机密)
    }
    main()
    .然后(()=>{
    log(“成功执行的示例”);
    })
    .catch((错误)=>{
    控制台日志(错误消息);
    });
    

  • 谢谢,但我想知道如何使用广告用户,而不是服务负责人/应用程序registration@ErickT“对广告用户执行此操作”是什么意思?对active directory用户执行此操作,就像您在门户中使用的一样。用户有UsedId和ObjectId,但没有像应用程序注册/服务那样的ClientIdPrincipal@ErickT当我们登录Azure门户时,登录url还将包含AD应用程序的客户端id。但它是由微软创建的,我们不需要这样做。因为当我们访问受Azure AD保护的资源时,我们必须注册Azure AD应用程序,为应用程序配置权限,并在获得访问令牌时提供客户端id。欲知详情,,