SDK Azure Delphi — IoT Hub, Service Bus, OAuth2 e altro

Un toolkit Pascal nativo per Microsoft Azure: collega dispositivi ad Azure IoT Hub su MQTT o AMQP, invia / ricevi messaggi su Azure Service Bus su AMQP 1.0 con autenticazione CBS, firma richieste con Azure AD OAuth2 e JWT, parla con Azure OpenAI, e genera client fortemente tipizzati per qualsiasi API REST di Azure dalla sua specifica OpenAPI — il tutto da un set coerente di componenti sgcWebSockets.

Componenti Pascal per ogni superficie Azure

Niente runtime .NET, niente Azure CLI, niente bridge PowerShell — solo componenti Delphi che parlano HTTPS, MQTT, AMQP e OAuth2 direttamente con gli endpoint Azure.

Microsoft Azure espone centinaia di API REST e una manciata di protocolli streaming: HTTPS per Resource Manager, Cognitive Services, Storage, Cosmos DB e Azure OpenAI; MQTT 3.1.1 / 5 per il messaging device-to-cloud di IoT Hub; AMQP 1.0 con autenticazione CBS (Claims-Based Security) per code di Service Bus, topic ed Event Hubs. sgcWebSockets fornisce componenti nativi per tutti e tre i trasporti — TsgcWSAPI_AzureIoT per IoT Hub, il client AMQP 1.0 per Service Bus e TsgcHTTPClient con helper OAuth2 + JWT per tutto il resto — più il generatore di codice sgcOpenAPI che emette classi Pascal per qualsiasi API Azure documentata in OpenAPI.

L'autenticazione si mappa pulitamente su Pascal: un tenant ID, un application (client) ID e o un client secret o una chiave privata supportata da certificato pilotano il flusso OAuth2 client-credentials di Azure AD; il token JWT risultante porta uno o più scope https://management.azure.com/.default (o specifici del servizio) e finisce in ogni header Authorization: Bearer. Per Service Bus, l'handshake CBS riutilizza lo stesso token come frame AMQP su uno speciale link $cbs prima che venga aperto un qualunque link dati. La libreria gestisce il ciclo di vita in automatico.

Componenti principali

TsgcWSAPI_AzureIoT, TsgcAMQPClient, TsgcHTTPClient, TsgcOAuth2Client, TsgcJWTClient.

Trasporto

HTTPS / HTTP/2, MQTT 3.1.1 + 5 su TCP / WebSocket, AMQP 1.0 su TCP / WebSocket.

Piattaforme

Windows, macOS, Linux, iOS, Android, .NET.

Generatore di codice

sgcOpenAPI consuma le specifiche REST di Azure ed emette classi client Pascal.

Wrapper di prima classe + SDK generati

Azure IoT Hub

TsgcWSAPI_AzureIoT — MQTT 3.1.1 / 5 con autenticazione SAS-token o TLS mutuo X.509, device twin, metodi diretti, messaggi cloud-to-device, upload di file.

Azure Service Bus (AMQP 1.0)

Il TsgcAMQPClient parla AMQP 1.0 con l'handshake di autenticazione CBS richiesto da Service Bus — code, topic, subscription, sessioni, messaggi schedulati e dead-letter routing.

Azure Event Hubs

Lo stesso client AMQP 1.0 — streaming di eventi partizionato per ingest di telemetria ad alto throughput, con gestione degli offset per consumer-group.

Azure Storage

Blob, Queue e Table storage via HTTPS con autenticazione Shared Key o Azure AD — upload, download, URL SAS e gestione di lease.

Azure OpenAI

TsgcHTTP_API_OpenAI parla con la tua risorsa Azure OpenAI — chat, embeddings, function calling e streaming, con deployment ID al posto dei nomi dei modelli.

Azure Functions

Invocazioni HTTPS POST / GET verso URL di function, con autenticazione function-key, system-key o Azure AD.

Azure Cognitive Services

Speech (STT / TTS), Vision, Language, Translator e Document Intelligence — tutti raggiungibili via HTTPS con autenticazione Bearer o subscription-key.

SDK Azure generati

sgcOpenAPI emette classi client Pascal per qualsiasi API REST di Azure che pubblichi un documento OpenAPI — Resource Manager, Key Vault, Cosmos DB, App Service, Logic Apps e compagnia.

Azure AD OAuth2 + JWT, da capo a fondo

Il modello di identità moderno di Azure è uniforme: registra un'applicazione in Azure AD, concedile i permessi API che servono (es. Service Bus Data Owner, IoT Hub Data Contributor, Cognitive Services User) e autenticati con il flusso OAuth2 client-credentials (servizio-a-servizio) o il flusso authorization-code (dati end-user). TsgcOAuth2Client pilota entrambi; TsgcJWTClient firma l'assertion del client quando preferisci l'autenticazione basata su certificato a uno shared secret. Il bearer token risultante alimenta direttamente ogni chiamata HTTPS e il frame CBS di Service Bus / Event Hubs riutilizza lo stesso JWT — nessuna gestione duplicata delle credenziali.

Invia un messaggio ad Azure Service Bus su AMQP 1.0

Uno snippet di 25 righe che si autentica con una shared-access-signature, apre una connessione AMQP 1.0 con l'handshake CBS e pubblica su una coda.

uses
  sgcAMQP_Client, sgcAMQP_Classes_1_0;

var
  vAMQP: TsgcAMQPClient;
begin
  vAMQP := TsgcAMQPClient.Create(nil);
  try
    vAMQP.Version       := amqp100;
    vAMQP.Host          := 'my-namespace.servicebus.windows.net';
    vAMQP.Port          := 5671;
    vAMQP.TLS           := True;

    // CBS authentication with a SAS token
    vAMQP.Authentication.Mode        := amqpAuthCBS;
    vAMQP.Authentication.User        := 'RootManageSharedAccessKey';
    vAMQP.Authentication.Password    := 'SharedAccessSignature sr=...&sig=...&se=...&skn=RootManageSharedAccessKey';

    vAMQP.Connect;
    try
      vAMQP.SendMessage('orders',
        '{"orderId":1234,"total":42.50}');
    finally
      vAMQP.Disconnect;
    end;
  finally
    vAMQP.Free;
  end;
end;

Client di dispositivo MQTT con SAS token

Azure IoT Hub accetta MQTT 3.1.1 o 5 (con lo schema di topic specifico di IoT Hub) sulla porta TCP 8883 o WebSocket 443. TsgcWSAPI_AzureIoT gestisce la connessione, la firma del SAS-token, la sincronizzazione del device twin, il dispatch dei metodi diretti e il canale dei messaggi cloud-to-device — con lo stesso sorgente su Windows, Linux e sui target mobile.

uses
  sgcWSAPI_AzureIoT;

var
  vIoT: TsgcWSAPI_AzureIoT;
begin
  vIoT := TsgcWSAPI_AzureIoT.Create(nil);
  try
    vIoT.Authentication.SharedAccessKey.HostName := 'my-hub.azure-devices.net';
    vIoT.Authentication.SharedAccessKey.DeviceId := 'device-001';
    vIoT.Authentication.SharedAccessKey.Key      := 'BASE64-DEVICE-KEY==';

    vIoT.OnMQTTConnect           := DoMQTTConnect;
    vIoT.OnMQTTPublish           := DoMQTTPublish;
    vIoT.OnDeviceTwinDesired     := DoDeviceTwinDesired;
    vIoT.OnDirectMethod          := DoDirectMethod;

    vIoT.Active := True;
  finally
    vIoT.Free;
  end;
end;

Tre passi alla tua prima chiamata Azure

1. Installa

Inserisci sgcWebSockets nella tua IDE Delphi o C++Builder — un package per ogni versione di Delphi dalla 7 alla 13. Scarica la trial.

2. Registra una app Azure AD

Crea una app registration, genera un client secret o carica un certificato e concedi i permessi API per i servizi che intendi chiamare.

3. Trascina un componente

Per IoT usa TsgcWSAPI_AzureIoT, per Service Bus / Event Hubs usa il client AMQP 1.0, per qualsiasi REST usa TsgcHTTPClient + TsgcOAuth2Client.

Post del blog correlati

Azure Service Bus + autenticazione CBS su AMQP 1.0

Walk-through passo passo dell'handshake AMQP CBS richiesto da Azure Service Bus ed Event Hubs.

Upload di file su Azure IoT

Usa il flusso di upload blob-storage di IoT Hub per spedire payload di telemetria più grandi del limite del messaggio MQTT.

Azure OpenAI da RAD Studio

Punta TsgcHTTP_API_OpenAI al tuo deployment Azure OpenAI per chat, embeddings e function calling.

Spedisci integrazioni Azure nella tua app Delphi oggi

Scarica la trial — le demo IoT Hub, Service Bus (AMQP 1.0) e Azure OpenAI vengono distribuite pronte da compilare.