Rychlý start: Klientská knihovna tajných klíčů služby Azure Key Vault pro JavaScript
Začínáme s tajnou klientskou knihovnou služby Azure Key Vault pro JavaScript Azure Key Vault je cloudová služba, která poskytuje zabezpečené úložiště tajných kódů. Můžete bezpečně ukládat klíče, hesla, certifikáty a další tajné klíče. Trezory klíčů Azure můžete vytvářet a spravovat přes web Azure Portal. V tomto rychlém startu se naučíte vytvářet, načítat a odstraňovat tajné kódy z trezoru klíčů Azure pomocí klientské knihovny JavaScriptu.
Prostředky klientské knihovny služby Key Vault:
Referenční dokumentace k | rozhraní API – Balíček zdrojového kódu | knihovny (npm)
Další informace o službě Key Vault a tajných kódech najdete tady:
Požadavky
- Předplatné Azure – vytvořte si ho zdarma.
- Aktuální Node.js LTS.
- Azure CLI
- Existující služba Key Vault – můžete ji vytvořit pomocí:
V tomto rychlém startu se předpokládá, že používáte Azure CLI.
Přihlášení k Azure
Spusťte příkaz
login
.az login
Pokud rozhraní příkazového řádku může otevřít výchozí prohlížeč, provede to a načte přihlašovací stránku Azure.
V opačném případě otevřete stránku https://aka.ms/devicelogin prohlížeče a zadejte autorizační kód zobrazený v terminálu.
Přihlaste se pomocí přihlašovacích údajů vašeho účtu v prohlížeči.
Vytvoření nové aplikace Node.js
Vytvořte Node.js aplikaci, která používá váš trezor klíčů.
V terminálu vytvořte složku s názvem
key-vault-node-app
a změňte ji do této složky:mkdir key-vault-node-app && cd key-vault-node-app
Inicializace projektu Node.js:
npm init -y
Instalace balíčků služby Key Vault
Pomocí terminálu nainstalujte klientskou knihovnu tajných kódů služby Azure Key Vault @azure/keyvault-secrets pro Node.js.
npm install @azure/keyvault-secrets
Nainstalujte klientskou knihovnu Azure Identity, @azure/balíček identity pro ověření ve službě Key Vault.
npm install @azure/identity
Udělení přístupu k trezoru klíčů
Pokud chcete aplikaci udělit oprávnění k trezoru klíčů prostřednictvím řízení přístupu na základě role (RBAC), přiřaďte roli pomocí příkazu Azure CLI az role assignment create.
az role assignment create --role "Key Vault Secrets User" --assignee "<app-id>" --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<your-unique-keyvault-name>"
Nahraďte <app-id>
hodnoty <resource-group-name>
<subscription-id>
a <your-unique-keyvault-name>
skutečnými hodnotami. <app-id>
je ID aplikace (klienta) vaší registrované aplikace v Microsoft Entra.
Nastavení proměnných prostředí
Tato aplikace používá název trezoru klíčů jako proměnnou prostředí s názvem KEY_VAULT_NAME
.
set KEY_VAULT_NAME=<your-key-vault-name>
Ověření a vytvoření klienta
Žádosti o aplikace na většinu služeb Azure musí být autorizované. Použití metody DefaultAzureCredential poskytované klientskou knihovnou azure Identity je doporučeným přístupem k implementaci připojení bez hesel ke službám Azure ve vašem kódu. DefaultAzureCredential
podporuje více metod ověřování a určuje, která metoda se má použít za běhu. Tento přístup umožňuje vaší aplikaci používat různé metody ověřování v různých prostředích (místní a produkční) bez implementace kódu specifického pro prostředí.
V tomto rychlém startu DefaultAzureCredential
se ověří v trezoru klíčů pomocí přihlašovacích údajů místního vývojového uživatele přihlášeného k Azure CLI. Když je aplikace nasazená do Azure, může stejný DefaultAzureCredential
kód automaticky zjišťovat a používat spravovanou identitu přiřazenou ke službě App Service, virtuálnímu počítači nebo jiným službám. Další informace najdete v tématu Přehled spravované identity.
V tomto kódu se název trezoru klíčů používá k vytvoření identifikátoru URI trezoru klíčů ve formátu https://<your-key-vault-name>.vault.azure.net
. Další informace o ověřování v trezoru klíčů najdete v příručce pro vývojáře.
Příklad kódu
Následující ukázky kódu vám ukážou, jak vytvořit klienta, nastavit tajný klíč, načíst tajný kód a odstranit tajný kód.
Tento kód používá následující třídy a metody tajných kódů služby Key Vault:
Nastavení architektury aplikace
Vytvořte nový textový soubor a vložte do index.js souboru následující kód.
const { SecretClient } = require("@azure/keyvault-secrets"); const { DefaultAzureCredential } = require("@azure/identity"); async function main() { // If you're using MSI, DefaultAzureCredential should "just work". // Otherwise, DefaultAzureCredential expects the following three environment variables: // - AZURE_TENANT_ID: The tenant ID in Azure Active Directory // - AZURE_CLIENT_ID: The application (client) ID registered in the AAD tenant // - AZURE_CLIENT_SECRET: The client secret for the registered application const credential = new DefaultAzureCredential(); const keyVaultName = process.env["KEY_VAULT_NAME"]; if(!keyVaultName) throw new Error("KEY_VAULT_NAME is empty"); const url = "https://" + keyVaultName + ".vault.azure.net"; const client = new SecretClient(url, credential); // Create a secret // The secret can be a string of any kind. For example, // a multiline text block such as an RSA private key with newline characters, // or a stringified JSON object, like `JSON.stringify({ mySecret: 'MySecretValue'})`. const uniqueString = new Date().getTime(); const secretName = `secret${uniqueString}`; const result = await client.setSecret(secretName, "MySecretValue"); console.log("result: ", result); // Read the secret we created const secret = await client.getSecret(secretName); console.log("secret: ", secret); // Update the secret with different attributes const updatedSecret = await client.updateSecretProperties(secretName, result.properties.version, { enabled: false }); console.log("updated secret: ", updatedSecret); // Delete the secret immediately without ability to restore or purge. await client.beginDeleteSecret(secretName); } main().catch((error) => { console.error("An error occurred:", error); process.exit(1); });
Spuštění ukázkové aplikace
Spuštění aplikace:
node index.js
Metody vytvoření a získání vrátí celý objekt JSON pro tajný kód:
{ "value": "MySecretValue", "name": "secret1637692472606", "properties": { "createdOn": "2021-11-23T18:34:33.000Z", "updatedOn": "2021-11-23T18:34:33.000Z", "enabled": true, "recoverableDays": 90, "recoveryLevel": "Recoverable+Purgeable", "id": "https: //YOUR-KEYVAULT-NAME.vault.azure.net/secrets/secret1637692472606/YOUR-VERSION", "vaultUrl": "https: //YOUR-KEYVAULT-NAME.vault.azure.net", "version": "YOUR-VERSION", "name": "secret1637692472606" } }
Metoda update vrátí páry název/hodnoty vlastností :
"createdOn": "2021-11-23T18:34:33.000Z", "updatedOn": "2021-11-23T18:34:33.000Z", "enabled": true, "recoverableDays": 90, "recoveryLevel": "Recoverable+Purgeable", "id": "https: //YOUR-KEYVAULT-NAME.vault.azure.net/secrets/secret1637692472606/YOUR-VERSION", "vaultUrl": "https: //YOUR-KEYVAULT-NAME.vault.azure.net", "version": "YOUR-VERSION", "name": "secret1637692472606"
Integrace se službou App Configuration
Sada Azure SDK poskytuje pomocnou metodu parseKeyVaultSecretIdentifier, která parsuje dané ID tajného klíče služby Key Vault. To je nezbytné v případě, že použijete odkazy na Službu App Configuration ve službě Key Vault. Konfigurace aplikace ukládá ID tajného klíče služby Key Vault. K analýze ID potřebujete metodu parseKeyVaultSecretIdentifier , abyste získali název tajného kódu. Jakmile budete mít název tajného kódu, můžete z tohoto rychlého startu získat aktuální hodnotu tajného kódu.
Další kroky
V tomto rychlém startu jste vytvořili trezor klíčů, uložili tajný kód a načetli jste tento tajný klíč. Další informace o službě Key Vault a její integraci s vašimi aplikacemi najdete v následujících článcích.
- Přehled služby Azure Key Vault
- Přečtěte si přehled tajných kódů služby Azure Key Vault.
- Zabezpečení přístupu k trezoru klíčů
- Prohlédni si průvodce vývojářem ve službě Azure Key Vault.
- Přehled zabezpečení služby Key Vault
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro