Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Condivisione risorse tra le origini (CORS) è una funzionalità HTTP che consente a un'applicazione Web in esecuzione in un dominio di accedere alle risorse in un altro dominio. I Web browser implementano una restrizione di sicurezza nota come criteri di stessa origine che impediscono a una pagina Web di chiamare le API in un dominio diverso. Tuttavia, CORS offre un modo sicuro per consentire al dominio di origine di chiamare le API in un altro dominio. Ora l'API per NoSQL in Azure Cosmos DB supporta la Condivisione delle Risorse tra Origini Diverse (CORS) utilizzando l'intestazione "allowedOrigins". Dopo aver abilitato il supporto CORS per l'account Azure Cosmos DB, vengono valutate solo le richieste autenticate per determinare se sono consentite in base alle regole specificate.
È possibile configurare l'impostazione Condivisione risorse tra le origini (CORS) dal portale di Azure o da un modello di Azure Resource Manager. Per gli account Azure Cosmos DB che usano l'API per NoSQL, Azure Cosmos DB supporta una libreria JavaScript che funziona sia in ambienti Node.js che basati su browser. Questa libreria può ora sfruttare il supporto CORS quando si usa la modalità gateway. Non è necessaria alcuna configurazione lato client per usare questa funzionalità. Con il supporto CORS, le risorse di un browser possono accedere direttamente ad Azure Cosmos DB tramite la libreria JavaScript o direttamente dall'API REST per operazioni semplici.
Annotazioni
Il supporto corS è applicabile e supportato solo per Azure Cosmos DB per NoSQL. Non è applicabile alle API di Azure Cosmos DB per Cassandra, Gremlin o MongoDB, perché questi protocolli non usano HTTP per la comunicazione client-server.
Abilitare il supporto CORS dal portale di Azure
Seguire questa procedura per abilitare la condivisione di risorse tra le origini tramite il portale di Azure:
Naviga nel tuo account Azure Cosmos DB. Aprire la pagina CORS .
Specificare un elenco separato da virgole di origini che potranno effettuare chiamate multiorigine all'account Azure Cosmos DB. Ad esempio
https://www.mydomain.com,https://mydomain.com,https://api.mydomain.com. È anche possibile usare un asterisco "*" per consentire tutte le origini e selezionare Inviare.Annotazioni
Attualmente, non è possibile usare caratteri jolly come parte del nome di dominio. Ad esempio
https://*.mydomain.net, il formato non è ancora supportato.
Abilitare il supporto CORS dal modello di Resource Manager
Per abilitare CORS usando un modello di Resource Manager, aggiungere la sezione "cors" con la proprietà "allowedOrigins" a qualsiasi modello esistente. Questo codice JSON è un esempio di modello che crea un nuovo account Azure Cosmos DB con CORS abilitato.
{
"type": "Microsoft.DocumentDB/databaseAccounts",
"name": "[variables('accountName')]",
"apiVersion": "2019-08-01",
"location": "[parameters('location')]",
"kind": "GlobalDocumentDB",
"properties": {
"consistencyPolicy": "[variables('consistencyPolicy')[parameters('defaultConsistencyLevel')]]",
"locations": "[variables('locations')]",
"databaseAccountOfferType": "Standard",
"cors": [
{
"allowedOrigins": "https://contoso.com"
}
]
}
}
Uso della libreria JavaScript di Azure Cosmos DB da un browser
Attualmente, la libreria JavaScript di Azure Cosmos DB ha solo la versione CommonJS della libreria fornita con il relativo pacchetto. Per usare questa libreria dal browser, è necessario usare uno strumento come Rollup o Webpack per creare una libreria compatibile con il browser. Alcune librerie di Node.js devono avere simulazioni del browser. Questo è un esempio di un file di configurazione webpack con le impostazioni fittizie necessarie.
const path = require("path");
module.exports = {
entry: "./src/index.ts",
devtool: "inline-source-map",
node: {
net: "mock",
tls: "mock"
},
output: {
filename: "bundle.js",
path: path.resolve(__dirname, "dist")
}
};
Ecco un esempio di codice che usa TypeScript e Webpack con la libreria JavaScript SDK di Azure Cosmos DB. L'esempio compila un'app Todo che invia aggiornamenti in tempo reale quando vengono creati nuovi elementi.
Passaggi successivi
Per altre informazioni su altri modi per proteggere l'account Azure Cosmos DB, vedere gli articoli seguenti: