CodeBuildingBlocks AWS Authentication Fields Generator

  • We have implemented an ActiveX component for generation of Amazon Web Services (AWS) authentication fields. The authentication fields, "Timestamp" and "Signature", are used in Alexa Web Information and Amazon Mechanical Turk services. Latest version also includes methods for generic signing which you can use to generate signatures for the Amazon S3 service. The component does NOT generate valid signatures for AWSECommerceService.

  • CBB AWSAuth generates valid "Timestamp" and "Signature" fields, thus doing the entire authentication work necessary in order to establish a connection with Amazon Web Services. Trying to develop this functionality by yourself can take several days. However, CBB AWSAuth is a snap (see examples below); the developer doesn't have to perform any cryptographic operations whatsoever. The component implements the Keyed-Hashing for Message Authentication code (HMAC) using SHA-1, which is exactly what you need to work with AWS.

  • Demo - Download a sample application which is using a common engine with the component.

  • Other features include: Base64 encoding, optional URL encoding and caching of the result. There is a significant time window of up to 15 minutes during which your timestamp is valid even though it is not current. CBB AWSAuth will use that to reduce the number of calculations it performs.

  • Read the Technical Paper for detailed explanation of the methods and properties provided.

  • Order - Get this ready-made component which will save you time and money. Order for only USD 26.00!
    Full copies are automatically delivered by our e-commerce provider, "share-it!".

  • We also have some decent experience writing tools to fetch bulk information from Alexa Web Information services and other Amazon Web Services. For example: Per-domains details like: ranking, keywords, contact information, etc'. "Top X" sites and more. If you are interested in an application like this, contact us for a quote.


VBScript example of usage with Alexa Web Info Service

The example bellow executes an authenticated AlexaWebInfo request and prints the result.

option explicit

dim url,access_key,secret_key,domain,prefix

access_key="????????????????????"
secret_key="????????????????????????????????????????"

domain="www.codebuildingblocks.com"
prefix="UrlInfo"

url="http://awis.amazonaws.com?Operation=UrlInfo&AWSAccessKeyId= _
%access_key%&Url=%domain%&ResponseGroup=Rank&Timestamp=%timestamp%& _
Signature=%signature%"
url=replace(url,"%access_key%",access_key)
url=replace(url,"%domain%",domain)

' make url
dim aws_auth
set aws_auth=CreateObject("AWSAuth.AWSAuth")
aws_auth.SecretKey=secret_key
aws_auth.ServiceOperationPrefix=prefix
'aws_auth.DoURLEncode=false ' true is default

dim timestamp, signature
signature=aws_auth.GenAuthentication(timestamp)
url=replace(url,"%timestamp%",timestamp)
url=replace(url,"%signature%",signature)
wscript.echo url

' xml
dim xmldoc
set xmldoc=CreateObject("Msxml2.DOMDocument")
dim b
xmldoc.async = false
b=xmldoc.load(url)

if b=false then
	wscript.echo("Error loading XML, " & domain & ", " & url)
else
	wscript.echo xmldoc.xml
end if

Example of Usage with Amazon S3 (VBScript)

The example bellow calculates a signature for a constant canonical string and prints the result

option explicit

dim url,access_key,secret_key,data

access_key="??"
secret_key="??"
data="GET"&chr(10)&chr(10)&chr(10)&"1141889120"&chr(10)& _
"/quotes/nelson"

' make signature
dim aws_auth
set aws_auth=CreateObject("AWSAuth.AWSAuth")
aws_auth.SecretKey=secret_key
'aws_auth.DoURLEncode=false ' true is default

dim signature
signature=aws_auth.GenAuthenticationEx(data)
wscript.echo signature
wscript.echo "vjbyPxybdZaNmGa%2ByT272YEAiv4%3D - Correct"

Contact us

  • For technical questions and support, contact us.

 

site design by orvatsel