Introduction

Gordon Service è una WebAPI ASP.NET e pertanto utilizza il .NET configuration framework. Pertanto, per configurarlo, è sufficiente modificare il file appsettings.json che si trova nella cartella radice dell’installazione del servizio Gordon.

Attualmente sono supportate le seguenti impostazioni:

  • Impostazioni URL/porta: queste impostazioni sono quelle predefinite per .NET Kestrel WebServer e possono essere utilizzate per configurare la porta e l’indirizzo su cui è in ascolto il servizio Gordon. Potete trovare maggiori dettagli nella documentazione ufficiale. Per impostazione predefinita, il servizio Gordon ascolterà sulla porta 9462 su qualsiasi indirizzo.

  • MaxClientSaturationLevel: A causa di un memory leak introdotta in BC24 con l’uso dei moduli PowerShell 7, dopo un po’ di tempo l’istanza di PowerShell esaurirà le connessioni TCP e le chiamate successive falliranno. Per attenuare questo problema è stato introdotto un livello massimo di saturazione. Ciò significa che ogni connessione al servizio BC può sostenere questo numero massimo di chiamate ai cmdlet di PowerShell. Dopodiché la connessione dal servizio Gordon al servizio BC verrà interrotta e ristabilita. Questo è richiesto solo per BC24.

  • ServiceClientMapPath: il servizio Gordon utilizza il servizio BC di destinazione per decidere quale modulo PowerShell caricare. Con l’avvento di BC24, ora è disponibile anche il supporto per PowerShell 7. Questa impostazione punta a un file di configurazione che consente di specificare quale versione di PowerShell utilizzare per quale versione di BC. Molto probabilmente non avrai mai bisogno di modificarlo.

  • ApiKeys: consente di configurare a quali servizi BC si può accedere tramite quale chiave API di Gordon. Per maggiori dettagli, vedere la sezione sottostante.

API Keys

Gordon Service supporta l’uso di chiavi API per limitare e controllare l’accesso degli utenti ai servizi BC. Questa impostazione si trova nel file appsettings.json nella sezione ApiKeys.

In questa sezione è possibile specificare una o più chiavi API. Se non viene specificata alcuna chiave API, ogni servizio è accessibile con o senza chiave API.

Ogni chiave API è definita in questo modo:

{
  "Key": "<inserisci-la-tua-chiave-qui>",
  "": true,
  "": [
    "...",
    "..."
  ]
}
  • Key: questa è la chiave API che deve essere fornita per le chiamate effettuate al servizio Gordon. Puoi inserire quello che vuoi. Tieni presente che deve essere una stringa sicura
  • Enabled: specifica se la chiave API è attiva. Una chiave API inattiva è come se non esistesse. Questo è un valore booleano e può essere true o false.
  • EnabledServiceRegex: specifica un elenco di espressioni regex che determinano se l’API è valida per un determinato servizio. L’uso di questa chiave API consente l’accesso a qualsiasi servizio BC in cui il nome dell’istanza del servizio corrisponde ad almeno una delle espressioni regex specificate. Se nessuna espressione corrisponde, verrà generata una risposta HTTP 401 Unauthorized. Se questo valore non viene specificato o viene specificato un array vuoto, la chiave API è valida per qualsiasi servizio.

EOS Labs -