Skip to content

Commit f117d62

Browse files
Merge pull request #225989 from diberry/diberry/keyvault-passwordless
Key Vault Certificates - Quickstart JS - passwordless
2 parents 39c7649 + 4f38838 commit f117d62

File tree

1 file changed

+37
-11
lines changed

1 file changed

+37
-11
lines changed

articles/key-vault/certificates/quick-create-node.md

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ title: Quickstart - Azure Key Vault certificate client library for JavaScript (
33
description: Learn how to create, retrieve, and delete certificates from an Azure key vault using the JavaScript client library
44
author: msmbaldwin
55
ms.author: mbaldwin
6-
ms.date: 01/04/2023
6+
ms.date: 02/01/2023
77
ms.service: key-vault
88
ms.subservice: certificates
99
ms.topic: quickstart
1010
ms.devlang: javascript
11-
ms.custom: devx-track-js, mode-api
11+
ms.custom: devx-track-js, mode-api, passwordless-js
1212
---
1313

14-
# Quickstart: Azure Key Vault certificate client library for JavaScript (version 4)
14+
# Quickstart: Azure Key Vault certificate client library for JavaScript
1515

1616
Get started with the Azure Key Vault certificate client library for JavaScript. [Azure Key Vault](../general/overview.md) is a cloud service that provides a secure store for certificates. You can securely store keys, passwords, certificates, and other secrets. Azure key vaults may be created and managed through the Azure portal. In this quickstart, you learn how to create, retrieve, and delete certificates from an Azure key vault using the JavaScript client library
1717

@@ -39,7 +39,7 @@ This quickstart assumes you're running [Azure CLI](/cli/azure/install-azure-cli)
3939

4040
1. Run the `login` command.
4141

42-
```azurecli-interactive
42+
```azurecli
4343
az login
4444
```
4545
@@ -76,42 +76,68 @@ Create a Node.js application that uses your key vault.
7676
npm install @azure/keyvault-certificates
7777
```
7878
79-
1. Install the Azure Identity library, [@azure/identity](https://www.npmjs.com/package/@azure/identity) package to authenticate to a Key Vault.
79+
1. Install the Azure Identity client library, [@azure/identity](https://www.npmjs.com/package/@azure/identity), to authenticate to a Key Vault.
8080
8181
```terminal
8282
npm install @azure/identity
8383
```
8484
8585
## Grant access to your key vault
8686
87-
Create an access policy for your key vault that grants key permissions to your user account
87+
Create a vault access policy for your key vault that grants key permissions to your user account.
8888
8989
```azurecli
90-
az keyvault set-policy --name <YourKeyVaultName> --upn [email protected] --key-permissions delete get list create purge
90+
az keyvault set-policy --name <YourKeyVaultName> --upn [email protected] --certificate-permissions delete get list create purge update
9191
```
9292

9393
## Set environment variables
9494

9595
This application is using key vault name as an environment variable called `KEY_VAULT_NAME`.
9696

97-
Windows
97+
### [Windows](#tab/windows)
98+
9899
```cmd
99100
set KEY_VAULT_NAME=<your-key-vault-name>
100101
````
101102
103+
### [PowerShell](#tab/powershell)
104+
102105
Windows PowerShell
103106
```powershell
104107
$Env:KEY_VAULT_NAME="<your-key-vault-name>"
105108
```
106109

107-
macOS or Linux
110+
### [macOS or Linux](#tab/linux)
111+
108112
```cmd
109113
export KEY_VAULT_NAME=<your-key-vault-name>
110114
```
115+
---
116+
117+
## Authenticate and create a client
118+
119+
Application requests to most Azure services must be authorized. Using the [DefaultAzureCredential](/javascript/api/@azure/identity/#@azure-identity-getdefaultazurecredential) method provided by the [Azure Identity client library](/javascript/api/@azure/identity) is the recommended approach for implementing passwordless connections to Azure services in your code. `DefaultAzureCredential` supports multiple authentication methods and determines which method should be used at runtime. This approach enables your app to use different authentication methods in different environments (local vs. production) without implementing environment-specific code.
120+
121+
In this quickstart, `DefaultAzureCredential` authenticates to key vault using the credentials of the local development user logged into the Azure CLI. When the application is deployed to Azure, the same `DefaultAzureCredential` code can automatically discover and use a managed identity that is assigned to an App Service, Virtual Machine, or other services. For more information, see [Managed Identity Overview](/azure/active-directory/managed-identities-azure-resources/overview).
122+
123+
In this code, the name of your key vault is used to create the key vault URI, in the format `https://<your-key-vault-name>.vault.azure.net`. For more information about authenticating to key vault, see [Developer's Guide](/azure/key-vault/general/developers-guide#authenticate-to-key-vault-in-code).
111124

112125
## Code example
113126

114-
These code samples demonstrate how to create a client, set a certificate, retrieve a certificate, and delete a certificate.
127+
This code uses the following [Key Vault Certificate classes and methods](/javascript/api/overview/azure/keyvault-certificates-readme):
128+
129+
* [DefaultAzureCredential class](/javascript/api/@azure/identity/#@azure-identity-getdefaultazurecredential)
130+
* [CertificateClient class](/javascript/api/@azure/keyvault-certificates/certificateclient)
131+
* [beginCreateCertificate](/javascript/api/@azure/keyvault-certificates/certificateclient#@azure-keyvault-certificates-certificateclient-begincreatecertificate)
132+
* [getCertificate](/javascript/api/@azure/keyvault-certificates/certificateclient#@azure-keyvault-certificates-certificateclient-getcertificate)
133+
* [getCertificateVersion](/javascript/api/@azure/keyvault-certificates/certificateclient#@azure-keyvault-certificates-certificateclient-getcertificateversion)
134+
* [updateCertificateProperties](/javascript/api/@azure/keyvault-certificates/certificateclient#@azure-keyvault-certificates-certificateclient-updatecertificateproperties)
135+
* [updateCertificatePolicy](/javascript/api/@azure/keyvault-certificates/certificateclient#@azure-keyvault-certificates-certificateclient-updatecertificateproperties)
136+
* [beginDeleteCertificate](/javascript/api/@azure/keyvault-certificates/certificateclient#@azure-keyvault-certificates-certificateclient-begindeletecertificate)
137+
* [PollerLike interface](/javascript/api/@azure/core-lro/pollerlike)
138+
* [getResult](/javascript/api/@azure/core-lro/pollerlike#@azure-core-lro-pollerlike-getresult)
139+
* [pollUntilDone](/javascript/api/@azure/core-lro/pollerlike@azure-core-lro-pollerlike-polluntildone)
140+
115141

116142
### Set up the app framework
117143

@@ -127,10 +153,10 @@ These code samples demonstrate how to create a client, set a certificate, retrie
127153
// - AZURE_TENANT_ID: The tenant ID in Azure Active Directory
128154
// - AZURE_CLIENT_ID: The application (client) ID registered in the AAD tenant
129155
// - AZURE_CLIENT_SECRET: The client secret for the registered application
130-
const url = process.env["AZURE_KEY_VAULT_URI"] || "<keyvault-url>";
131156
const credential = new DefaultAzureCredential();
132157

133158
const keyVaultName = process.env["KEY_VAULT_NAME"];
159+
if(!keyVaultName) throw new Error("KEY_VAULT_NAME is empty");
134160
const url = "https://" + keyVaultName + ".vault.azure.net";
135161

136162
const client = new CertificateClient(url, credential);

0 commit comments

Comments
 (0)