Sample code for 30+ languages & platforms
PHP ActiveX

Azure Key Vault - Setup Bootstrap Secret in Local Manager

See more Secrets Examples

Accessing a cloud-based secrets manager requires authentication credentials, which cannot be stored in the manager itself. Instead, they must be securely stored locally.

One solution is to store the authentication credentials as a secret in the Windows Credentials Manager or Apple Keychain. These credentials serve as the "bootstrap secret" for authenticating with the cloud-based secrets manager.

This example demonstrates how to setup a bootstrap secret for the Azure Key Vault.

Note: This example requires Chilkat v10.1.0 or later.

Chilkat PHP ActiveX Downloads

PHP ActiveX
<?php

$success = 0;

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

$bootstrap = new COM("Chilkat.Secrets");

// We're going to store the bootstrap secret in the local manager.
// On Windows, this is the Windows Credentials Manager
// On MacOS/iOS, it is the Apple Keychain
$bootstrap->Location = 'local_manager';

// Specify the name of the bootstrap secret.
// service and username are required.
// appName and domain are optional.
// Note: The values are arbitrary and can be anything you want.
$json = new COM("Chilkat.JsonObject");
$json->UpdateString('appName','azure_bs');
$json->UpdateString('service','Example');
$json->UpdateString('username','Joe');

// The bootstrap secret for the Azure Key Vault will contain
// the tenant_id, client_id, and client_secret, like this:
$jsonSecret = new COM("Chilkat.JsonObject");
// Modify to your values.
$jsonSecret->UpdateString('tenant_id','YOUR_TENANT_ID');
$jsonSecret->UpdateString('client_id','YOUR_CLIENT_ID');
$jsonSecret->UpdateString('client_secret','YOUR_CLIENT_SECRET');

// Create or update the bootstrap secret.
$success = $bootstrap->UpdateSecretJson($json,$jsonSecret);
if ($success == 0) {
    print $bootstrap->LastErrorText . "\n";
    exit;
}

print 'The Azure bootstrap secret has been stored.' . "\n";

?>