Skip to content

Commit 39c7649

Browse files
Merge pull request #226063 from diberry/diberry/keyvault-passwordless-key
Key Vault key - Quickstart JS - passwordless
2 parents d391658 + 0b38e48 commit 39c7649

File tree

1 file changed

+38
-10
lines changed

1 file changed

+38
-10
lines changed

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

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ title: Quickstart - Azure Key Vault key client library for JavaScript (version
33
description: Learn how to create, retrieve, and delete keys 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/02/2023
77
ms.service: key-vault
88
ms.subservice: keys
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 key client library for JavaScript (version 4)
14+
# Quickstart: Azure Key Vault key client library for JavaScript
1515

1616
Get started with the Azure Key Vault key client library for JavaScript. [Azure Key Vault](../general/overview.md) is a cloud service that provides a secure store for cryptographic keys. 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 keys from an Azure key vault using the JavaScript key 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
@@ -68,13 +68,13 @@ Create a Node.js application that uses your key vault.
6868
6969
## Install Key Vault packages
7070
71-
1. Using the terminal, install the Azure Key Vault secrets library, [@azure/keyvault-keys](https://www.npmjs.com/package/@azure/keyvault-keys) for Node.js.
71+
1. Using the terminal, install the Azure Key Vault secrets client library, [@azure/keyvault-keys](https://www.npmjs.com/package/@azure/keyvault-keys) for Node.js.
7272
7373
```terminal
7474
npm install @azure/keyvault-keys
7575
```
7676
77-
1. Install the Azure Identity library, [@azure/identity](https://www.npmjs.com/package/@azure/identity) package to authenticate to a Key Vault.
77+
1. Install the Azure Identity client library, [@azure/identity](https://www.npmjs.com/package/@azure/identity) package to authenticate to a Key Vault.
7878
7979
```terminal
8080
npm install @azure/identity
@@ -86,31 +86,58 @@ Create a Node.js application that uses your key vault.
8686
Create an access policy for your key vault that grants key permissions to your user account
8787
8888
```azurecli
89-
az keyvault set-policy --name <YourKeyVaultName> --upn [email protected] --key-permissions delete get list create purge
89+
az keyvault set-policy --name <YourKeyVaultName> --upn [email protected] --key-permissions delete get list create update purge
9090
```
9191

9292
## Set environment variables
9393

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

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

106-
macOS or Linux
109+
### [macOS or Linux](#tab/linux)
110+
107111
```cmd
108112
export KEY_VAULT_NAME=<your-key-vault-name>
109113
```
114+
---
115+
116+
## Authenticate and create a client
117+
118+
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.
119+
120+
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).
121+
122+
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).
110123

111124
## Code example
112125

113-
This code sample demonstrates how to create a client, set a key, retrieve a key, and delete a key.
126+
The code samples below will show you how to create a client, set a secret, retrieve a secret, and delete a secret.
127+
128+
This code uses the following [Key Vault Secret classes and methods](/javascript/api/overview/azure/keyvault-keys-readme):
129+
130+
* [DefaultAzureCredential class](/javascript/api/@azure/identity/#@azure-identity-getdefaultazurecredential)
131+
* [KeyClient class](/javascript/api/@azure/keyvault-keys/keyclient)
132+
* [createKey](/javascript/api/@azure/keyvault-keys/keyclient#@azure-keyvault-keys-keyclient-createkey)
133+
* [createEcKey](/javascript/api/@azure/keyvault-keys/keyclient#@azure-keyvault-keys-keyclient-createeckey)
134+
* [createRsaKey](/javascript/api/@azure/keyvault-keys/keyclient#@azure-keyvault-keys-keyclient-creatersakey)
135+
* [getKey](/javascript/api/@azure/keyvault-keys/keyclient#@azure-keyvault-keys-keyclient-getkey)
136+
* [listPropertiesOfKeys](/javascript/api/@azure/keyvault-keys/keyclient#@azure-keyvault-keys-keyclient-listpropertiesofkeys)
137+
* [updateKeyProperties](/javascript/api/@azure/keyvault-keys/keyclient#@azure-keyvault-keys-keyclient-updatekeyproperties)
138+
* [beginDeleteKey](/javascript/api/@azure/keyvault-keys/keyclient#@azure-keyvault-keys-keyclient-begindeletekey)
139+
* [getDeletedKey](/javascript/api/@azure/keyvault-keys/keyclient#@azure-keyvault-keys-keyclient-getdeletedkey)
140+
* [purgeDeletedKey](/javascript/api/@azure/keyvault-keys/keyclient#@azure-keyvault-keys-keyclient-purgedeletedkey)
114141

115142
### Set up the app framework
116143

@@ -129,6 +156,7 @@ This code sample demonstrates how to create a client, set a key, retrieve a key,
129156
const credential = new DefaultAzureCredential();
130157

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

134162
const client = new KeyClient(url, credential);

0 commit comments

Comments
 (0)