Forrásközi erőforrás-megosztás konfigurálása (CORS)
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ányban lévő erőforrásokhoz. A webböngészők olyan, azonos eredetű szabályzatként ismert biztonsági korlátozást implementálnak, 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 különböző eredetű erőforrások megosztását (CORS) az "allowedOrigins" fejléc használatával. Miután engedélyezte a CORS-támogatást az Azure Cosmos DB-fiókhoz, csak a hitelesített kérések lesznek kiértékelve annak megállapítására, hogy azokat a megadott szabályok szerint engedélyezi-e a rendszer.
A Forrásközi erőforrás-megosztás (CORS) beállítást a Azure Portal 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ás előnyeit az Á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 hozzáférhetnek az Azure Cosmos DB-hez a JavaScript-kódtáron keresztül vagy közvetlenül a REST API-ból az egyszerű műveletekhez.
Megjegyzés
A CORS-támogatás csak az Azure Cosmos DB for NoSQL esetében alkalmazható és támogatott. Ez 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 Azure Portal
Kövesse az alábbi lépéseket a forrásközi erőforrás-megosztás engedélyezéséhez a 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
. Használhat "*" helyettesítő karaktert is az összes forrás engedélyezéséhez, és válassza a Küldés lehetőséget.Megjegyzé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
Ha Resource Manager sablonnal szeretné engedélyezni a CORS-t, 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
Ma az Azure Cosmos DB JavaScript-kódtár csak a kódtár CommonJS-verzióját szállítja a csomagjával. Ha ezt a kódtárat a böngészőből szeretné használni, egy olyan eszközt kell használnia, mint a Rollup vagy a Webpack, hogy létrehozhasson egy böngészőkompatibilis tárat. Bizonyos Node.js-kódtáraknak böngészőbeli makettekkel kell rendelkezniük. Ez egy példa egy webpack konfigurációs fájlra, amely rendelkezik a szükséges szimulált beá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 Webpackot 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.
Ajánlott eljárásként ne használja az elsődleges kulcsot az Azure Cosmos DB-vel való kommunikációhoz a böngészőből. Ehelyett használjon erőforrás-jogkivonatokat a kommunikációhoz. További információ az erőforrás-jogkivonatokról: Az Azure Cosmos DB-hez való hozzáférés biztonságossá tétele .
Következő lépések
Az Azure Cosmos DB-fiók védelmének egyéb módjairól az alábbi cikkekben olvashat: