Forrásközi erőforrásmegosztás (CORS) konfigurálása
A KÖVETKEZŐRE VONATKOZIK: NoSQL
A forrásközi erőforrás-megosztás (CORS) egy HTTP-funkció, amely lehetővé teszi, hogy az egyik tartományban futó webalkalmazás hozzáférjen egy másik tartomány erőforrásaihoz. A webböngészők olyan, azonos eredetű szabályzatként ismert biztonsági korlátozást vezetnek be, amely megakadályozza, hogy egy weblap más tartományban hívja meg az API-kat. A CORS azonban biztonságos módot biztosít arra, hogy a forrástartomány meghívja az API-kat egy másik tartományban. Az Azure Cosmos DB NoSQL-hez készült API mostantól támogatja a több forrásból származó erőforrás-megosztást (CORS) az "allowedOrigins" fejléc használatával. Miután engedélyezte az Azure Cosmos DB-fiók CORS-támogatását, a rendszer csak a hitelesített kéréseket értékeli ki annak megállapításához, hogy a megadott szabályok szerint engedélyezve vannak-e.
A forrásközi erőforrás-megosztási (CORS) beállítást az Azure Portalról vagy egy Azure Resource Manager-sablonból konfigurálhatja. A NoSQL API-t használó Azure Cosmos DB-fiókok esetében az Azure Cosmos DB támogatja a JavaScript-kódtárat, amely Node.js és böngészőalapú környezetben is működik. Ez a kódtár mostantól kihasználhatja a CORS-támogatást átjáró mód használatakor. A szolgáltatás használatához nincs szükség ügyféloldali konfigurációra. A CORS-támogatással a böngésző erőforrásai közvetlenül a JavaScript-kódtáron keresztül vagy közvetlenül a REST API-ból férhetnek hozzá az Azure Cosmos DB-hez az egyszerű műveletekhez.
Feljegyzés
A CORS-támogatás csak az Azure Cosmos DB for NoSQL-hez használható és támogatott. Nem alkalmazható a Cassandra, a Gremlin vagy a MongoDB Azure Cosmos DB API-jaira, mivel ezek a protokollok nem használnak HTTP-t az ügyfél-kiszolgáló kommunikációhoz.
CORS-támogatás engedélyezése az Azure Portalról
Kövesse az alábbi lépéseket a forrásközi erőforrás-megosztás engedélyezéséhez az Azure Portal használatával:
Lépjen az Azure Cosmos DB-fiókjához. Nyissa meg a CORS lapot.
Adjon meg egy vesszővel tagolt forráslistát, amely keresztirányú hívásokat indíthat az Azure Cosmos DB-fiókba. Például,
https://www.mydomain.com
,https://mydomain.com
.https://api.mydomain.com
A "*" helyettesítő karakterrel is engedélyezheti az összes forrást, és kiválaszthatja a Küldés lehetőséget.Feljegyzés
Jelenleg nem használhat helyettesítő karaktereket a tartománynév részeként. Például
https://*.mydomain.net
a formátum még nem támogatott.
CORS-támogatás engedélyezése Resource Manager-sablonból
A CORS Resource Manager-sablonnal való engedélyezéséhez adja hozzá a "cors" szakaszt az "allowedOrigins" tulajdonsággal bármely meglévő sablonhoz. Ez a JSON egy példa egy sablonra, amely létrehoz egy új Azure Cosmos DB-fiókot, amelyen engedélyezve van a CORS.
{
"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"
}
]
}
}
Az Azure Cosmos DB JavaScript-kódtár használata böngészőből
Az Azure Cosmos DB JavaScript-kódtára jelenleg csak a kódtár CommonJS-verzióját használja a csomagjával együtt. A böngészőből származó kódtár használatához egy olyan eszközt kell használnia, mint a Rollup vagy a Webpack, hogy böngészőkompatibilis kódtárat hozzon létre. Bizonyos Node.js-kódtáraknak böngészőbeli modellekkel kell rendelkezniük. Ez egy példa egy webpack konfigurációs fájlra, amely rendelkezik a szükséges modellbeállításokkal.
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")
}
};
Íme egy kódminta , amely TypeScriptet és Webpacket használ az Azure Cosmos DB JavaScript SDK-kódtárával. A minta létrehoz egy Todo-alkalmazást, amely valós idejű frissítéseket küld új elemek létrehozásakor.
Következő lépések
Az Azure Cosmos DB-fiók védelmének egyéb módjairól az alábbi cikkekben olvashat: