Megosztás a következőn keresztül:


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:

  1. Lépjen az Azure Cosmos DB-fiókjához. Nyissa meg a CORS lapot.

  2. 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.

    Forrásközi erőforrásmegosztás engedélyezése az Azure Portallal

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: