Chilkat • HOME • Android™ • AutoIt • C • C# • C++ • Chilkat2-Python • CkPython • Classic ASP • DataFlex • Delphi DLL • Go • Java • Node.js • Objective-C • PHP Extension • Perl • PowerBuilder • PowerShell • PureBasic • Ruby • SQL Server • Swift • Tcl • Unicode C • Unicode C++ • VB.NET • VBScript • Visual Basic 6.0 • Visual FoxPro • Xojo Plugin
(Delphi ActiveX) How to Generate an Azure Service Bus Shared Access Signature (SAS)Demonstrates generating and using an Azure Service Bus Shared Access Signature (SAS). Note: This example requires Chilkat v9.5.0.65 or greater.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB; ... procedure TForm1.Button1Click(Sender: TObject); var authSas: TChilkatAuthAzureSAS; dtExpiry: TCkDateTime; sbResourceUri: TChilkatStringBuilder; sasToken: WideString; fac: TCkFileAccess; begin // Note: Requires Chilkat v9.5.0.65 or greater. // This requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // ------------------------------------------------------------------- // Create a Shared Access Signature (SAS) token for Azure Service Bus. // ------------------------------------------------------------------- authSas := TChilkatAuthAzureSAS.Create(Self); authSas.AccessKey := 'AzureServiceBus_PrimaryKey'; // The SAS token for Service Bus will look like this: // (The order of params will be different. The order does not matter.) // sig=<signature-string>&se=<expiry>&skn=<keyName>&sr=<URL-encoded-resourceURI> // Specify the format of the string to sign. authSas.StringToSign := 'resourceURI,expiry'; // Create an expiry to 30 days in the future. dtExpiry := TCkDateTime.Create(Self); dtExpiry.SetFromCurrentSystemTime(); dtExpiry.AddDays(30); authSas.SetTokenParam('expiry','se',dtExpiry.GetAsUnixTimeStr(1)); // Set the skn (keyname) // This example uses the key "RootManageSharedAccessKey". This give full access. // In a typical scenario, you would create a new Azure key (for the service bus) // in the Azure portal, such that the key has limited permissions. This would // allow you to give the SAS token to others for specific access for some period of time. authSas.SetTokenParam('keyName','skn','RootManageSharedAccessKey'); // Set the URL-encoded-resourceURI sbResourceUri := TChilkatStringBuilder.Create(Self); sbResourceUri.Append('https://<yournamespace>.servicebus.windows.net/'); sbResourceUri.Encode('url','utf-8'); authSas.SetTokenParam('resourceURI','sr',sbResourceUri.GetAsString()); // Generate the SAS token. sasToken := authSas.GenerateToken(); if (authSas.LastMethodSuccess <> 1) then begin Memo1.Lines.Add(authSas.LastErrorText); Exit; end; Memo1.Lines.Add('SAS token: ' + sasToken); // Save the SAS token to a file. // We can then use this pre-generated token for future Service Bus operations. fac := TCkFileAccess.Create(Self); fac.WriteEntireTextFile('qa_data/tokens/serviceBusSas.txt',sasToken,'utf-8',0); end; |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.