---
product: Chilkat
product_version: 11.7.0
language: ckruby
language_label: Ruby
class: AuthAzureSAS
class_name: CkAuthAzureSAS
license: bundle
deprecated: false
reference_html: https://www.chilkatsoft.com/refdoc/rubyCkAuthAzureSASRef.html
---
# Chilkat AuthAzureSAS — Ruby — v11.7.0

> Chilkat 11.7.0 · language=ckruby · class=AuthAzureSAS (CkAuthAzureSAS)
> Other versions: replace `11.7.0` in this URL. Other languages: `https://www.chilkatsoft.com/ai-docs/v/11.7.0/<lang>/classes/AuthAzureSAS.md`.
> Language-wide rules (install, unlock, error model, strings/bytes): `https://www.chilkatsoft.com/ai-docs/v/11.7.0/ckruby/guide.md`.

## Purpose

**Create Azure Shared Access Signature tokens for signed Azure Storage requests.**

`Chilkat.AuthAzureSAS` creates Azure Shared Access Signature authentication tokens. It defines the SAS string-to-sign, supplies the Azure Storage account access key used to compute the signature, and controls which parameters are included in the generated SAS token query string. The resulting token can be used with `Chilkat.Rest`, `Chilkat.Http`, or other request-building code that needs time-limited, permission-scoped access to Azure Storage resources.

**SAS token generation**

Generate a signed query-string token that authorizes limited access to an Azure Storage resource.

**String-to-sign control**

Provide the exact Azure SAS string-to-sign required for the storage service and resource being accessed.

**Account key signing**

Use the Azure Storage account access key to compute the signature placed in the generated SAS token.

**Token parameters**

Add signed SAS parameters such as permissions, expiry, resource type, API version, protocol, or IP restrictions.

**Non-token parameters**

Add query parameters that should accompany the request but should not be included as part of the SAS token itself.

**REST integration**

Use the generated SAS query string with Azure Storage requests built using `Chilkat.Rest` or other Chilkat HTTP workflows.

**Common pattern:** Create an `AuthAzureSAS` object, set the Azure Storage `AccessKey`, provide the required `StringToSign`, add SAS token parameters with `SetTokenParam`, add any extra query parameters with `SetNonTokenParam`, then call `GenerateToken`. Use `AuthAzureSAS` when you need a SAS query token; use `Chilkat.AuthAzureStorage` when you need Shared Key authorization headers instead.

For an extended overview, see [AuthAzureSAS Class Overview](https://www.chilkatsoft.com/authazuresas_class_overview.asp).

## Object creation, unlocking and error handling

**Object Creation**

```ruby
obj = Chilkat::CkAuthAzureSAS.new()
```

Call `Global.UnlockBundle` once at the start of the program, before using this or any other Chilkat class. Any string unlocks a fully functional 30-day trial; a purchased unlock code is used in production. See `guide.md` for the exact code in Ruby.

How failure is reported depends on the method's return type and is stated in the note under each method below. In every case the diagnostic text is in the `LastErrorText` property of the object whose method was called.

## Members common to every Chilkat class

Documented once per language in `common-members.md`; listed here so this page is self-contained.

| Property | Signature | Access | Meaning |
|---|---|---|---|
| `DebugLogFilePath` | `# strVal is a string # ckStr is a CkString authAzureSAS.get_DebugLogFilePath(ckStr); strVal = authAzureSAS.debugLogFilePath(); authAzureSAS.put_DebugLogFilePath(strVal);` | read/write | If set to a file path, this property logs the LastErrorText of each Chilkat method or property call to the specified file. |
| `LastErrorHtml` | `# strVal is a string # ckStr is a CkString authAzureSAS.get_LastErrorHtml(ckStr); strVal = authAzureSAS.lastErrorHtml();` | read-only | Provides HTML-formatted information about the last called method or property. |
| `LastErrorText` | `# strVal is a string # ckStr is a CkString authAzureSAS.get_LastErrorText(ckStr); strVal = authAzureSAS.lastErrorText();` | read-only | Provides plain text information about the last called method or property. |
| `LastErrorXml` | `# strVal is a string # ckStr is a CkString authAzureSAS.get_LastErrorXml(ckStr); strVal = authAzureSAS.lastErrorXml();` | read-only | Provides XML-formatted information about the last called method or property. |
| `LastMethodSuccess` | `# boolVal is a boolean boolVal = authAzureSAS.get_LastMethodSuccess(); authAzureSAS.put_LastMethodSuccess(boolVal);` | read/write | Indicates the success or failure of the most recent method call: `true` means success, `false` means failure. |
| `Utf8` | `# boolVal is a boolean boolVal = authAzureSAS.get_Utf8(); authAzureSAS.put_Utf8(boolVal);` | read/write | When set to `true`, all `string` arguments and return values are interpreted as UTF-8 strings. |
| `VerboseLogging` | `# boolVal is a boolean boolVal = authAzureSAS.get_VerboseLogging(); authAzureSAS.put_VerboseLogging(boolVal);` | read/write | If set to `true`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. |
| `Version` | `# strVal is a string # ckStr is a CkString authAzureSAS.get_Version(ckStr); strVal = authAzureSAS.version();` | read-only | Version of the component/library, such as "10.1.0" |

## Member index

| Member | Kind | Signature |
|---|---|---|
| `AccessKey` | property, read/write | `# strVal is a string # ckStr is a CkString authAzureSAS.get_AccessKey(ckStr); strVal = authAzureSAS.accessKey(); authAzureSAS.put_AccessKey(strVal);` |
| `StringToSign` | property, read/write | `# strVal is a string # ckStr is a CkString authAzureSAS.get_StringToSign(ckStr); strVal = authAzureSAS.stringToSign(); authAzureSAS.put_StringToSign(strVal);` |
| `Clear` | method | `status = authAzureSAS.Clear();` |
| `GenerateToken` | method | `# outStr is a CkString (output) status = authAzureSAS.GenerateToken(outStr); retStr = authAzureSAS.generateToken();` |
| `SetNonTokenParam` | method | `# name is a string # value is a string status = authAzureSAS.SetNonTokenParam(name, value);` |
| `SetTokenParam` | method | `# name is a string # authParamName is a string # value is a string status = authAzureSAS.SetTokenParam(name, authParamName, value);` |

## Properties

### AuthAzureSAS.AccessKey

`Chilkat 11.7.0 · ckruby · AuthAzureSAS · AccessKey · property · read/write · since 9.5.0.65`

```ruby
# strVal is a string

# ckStr is a CkString

authAzureSAS.get_AccessKey(ckStr);

strVal = authAzureSAS.accessKey();

authAzureSAS.put_AccessKey(strVal);
```

This is the signing key (access key) that must be kept private. It is a base64 string such as `abdTvCZFFoWUyre6erlNN+IOb9qhXgDsyhrxmZvpmxqFDwpl9oD0X9Fy0hIQa6L5UohznRLmkCtUYySO4Y2eaw==`

### AuthAzureSAS.StringToSign

`Chilkat 11.7.0 · ckruby · AuthAzureSAS · StringToSign · property · read/write · since 9.5.0.65`

```ruby
# strVal is a string

# ckStr is a CkString

authAzureSAS.get_StringToSign(ckStr);

strVal = authAzureSAS.stringToSign();

authAzureSAS.put_StringToSign(strVal);
```

**Full documentation for this property (same in every language):** [Explaining Azure SAS Tokens](https://www.chilkatsoft.com/ai-docs/v/11.7.0/articles/azure_sas_tokens_for_authentication.md)

Defines the format of the string to sign.

The format is specified as a comma-separated list of names. For example:

```
signedpermissions,signedstart,signedexpiry,canonicalizedresource,signedidentifier,signedIP,signedProtocol,signedversion,rscc,rscd,rsce,rscl,rsct
```

This will result in an actual string-to-sign that is composed of the values for each name separated by newline (LF) chars. For example:

```
signedpermissions + \n +  
signedstart + \n +  
signedexpiry + \n +  
canonicalizedresource + \n +  
signedidentifier + \n +  
signedIP + \n +  
signedProtocol + \n +  
signedversion + \n +  
rscc + \n +  
rscd + \n +  
rsce + \n +  
rscl + \n +  
rsct
```

## Methods

### AuthAzureSAS.Clear

`Chilkat 11.7.0 · ckruby · AuthAzureSAS · Clear · method · since 9.5.0.65`

```ruby
status = authAzureSAS.Clear();
```

Clears all params set by the methods SetNonTokenParam and SetTokenParam.

### AuthAzureSAS.GenerateToken

`Chilkat 11.7.0 · ckruby · AuthAzureSAS · GenerateToken · method · since 9.5.0.65`

```ruby
# outStr is a CkString (output)

status = authAzureSAS.GenerateToken(outStr);

retStr = authAzureSAS.generateToken();
```

**Full documentation for this method (same in every language):** [Explaining Azure SAS Tokens](https://www.chilkatsoft.com/ai-docs/v/11.7.0/articles/azure_sas_tokens_for_authentication.md)

Generates and returns the SAS token based on the defined `StringToSign` and params.

Returns true for success, false for failure.

### AuthAzureSAS.SetNonTokenParam

`Chilkat 11.7.0 · ckruby · AuthAzureSAS · SetNonTokenParam · method · since 9.5.0.65`

```ruby
# name is a string

# value is a string

status = authAzureSAS.SetNonTokenParam(name, value);
```

Adds a non-token parameter name/value. This is a value that is included in the string to sign, but is NOT included in the token query params.

Returns true for success, false for failure.

### AuthAzureSAS.SetTokenParam

`Chilkat 11.7.0 · ckruby · AuthAzureSAS · SetTokenParam · method · since 9.5.0.65`

```ruby
# name is a string

# authParamName is a string

# value is a string

status = authAzureSAS.SetTokenParam(name, authParamName, value);
```

Adds a token parameter name/value. This is a value that is included in the string to sign, and is also included in the token query params.

Returns true for success, false for failure.

