Chilkat2-Python
Chilkat2-Python
How to Generate an Azure Service Bus Shared Access Signature (SAS)
See more Azure Service Bus Examples
Demonstrates generating and using an Azure Service Bus Shared Access Signature (SAS).Note: This example requires Chilkat v9.5.0.65 or greater.
Chilkat Chilkat2-Python Downloads
import sys
import chilkat2
# 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 = chilkat2.AuthAzureSAS()
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 = chilkat2.CkDateTime()
dtExpiry.SetFromCurrentSystemTime()
dtExpiry.AddDays(30)
authSas.SetTokenParam("expiry","se",dtExpiry.GetAsUnixTimeStr(True))
# 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 = chilkat2.StringBuilder()
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 != True):
print(authSas.LastErrorText)
sys.exit()
print("SAS token: " + sasToken)
# Save the SAS token to a file.
# We can then use this pre-generated token for future Service Bus operations.
fac = chilkat2.FileAccess()
fac.WriteEntireTextFile("qa_data/tokens/serviceBusSas.txt",sasToken,"utf-8",False)