Sample code for 30+ languages & platforms
DataFlex

Azure Key Vault - Setup Bootstrap Secret in Memory

See more Secrets Examples

Accessing a cloud-based secrets manager requires authentication credentials, which cannot be stored within the secrets manager itself.

This example shows how to set up an in-memory bootstrap secret with authentication credentials which will be used in other examples to access Azure Key Vault.

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

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoBootstrap
    Variant vJson
    Handle hoJson
    Variant vJsonSecret
    Handle hoJsonSecret
    String sTemp1

    Move False To iSuccess

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

    Get Create (RefClass(cComChilkatSecrets)) To hoBootstrap
    If (Not(IsComObjectCreated(hoBootstrap))) Begin
        Send CreateComObject of hoBootstrap
    End

    // This secret will reside in memory.
    Set ComLocation Of hoBootstrap To "memory"

    // 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.
    Get Create (RefClass(cComChilkatJsonObject)) To hoJson
    If (Not(IsComObjectCreated(hoJson))) Begin
        Send CreateComObject of hoJson
    End
    Get ComUpdateString Of hoJson "appName" "azure_bs" To iSuccess
    Get ComUpdateString Of hoJson "service" "Example" To iSuccess
    Get ComUpdateString Of hoJson "username" "Joe" To iSuccess

    // The bootstrap secret for the Azure Key Vault will contain
    // the tenant_id, client_id, and client_secret, like this:
    Get Create (RefClass(cComChilkatJsonObject)) To hoJsonSecret
    If (Not(IsComObjectCreated(hoJsonSecret))) Begin
        Send CreateComObject of hoJsonSecret
    End
    // Modify to your values.
    Get ComUpdateString Of hoJsonSecret "tenant_id" "YOUR_TENANT_ID" To iSuccess
    Get ComUpdateString Of hoJsonSecret "client_id" "YOUR_CLIENT_ID" To iSuccess
    Get ComUpdateString Of hoJsonSecret "client_secret" "YOUR_CLIENT_SECRET" To iSuccess

    // Create or update the bootstrap secret (in memory).
    // The secret is stored encrypted in memory, and is available to be used
    // regardless of the lifetime of the "bootstrap" object.
    Get pvComObject of hoJson to vJson
    Get pvComObject of hoJsonSecret to vJsonSecret
    Get ComUpdateSecretJson Of hoBootstrap vJson vJsonSecret To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoBootstrap To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Showln "The Azure bootstrap secret has been stored in memory."


End_Procedure