DocumentDB - Collega account

Quando inizi a programmare con DocumentDB, il primo passo è connettersi. Quindi per connetterti al tuo account DocumentDB avrai bisogno di due cose;

  • Endpoint
  • Chiave di autorizzazione

Endpoint

L'endpoint è l'URL del tuo account DocumentDB ed è costruito combinando il nome del tuo account DocumentDB con .documents.azure.com. Andiamo alla dashboard.

Ora, fai clic sull'account DocumentDB creato. Vedrai i dettagli come mostrato nell'immagine seguente.

Quando selezioni l'opzione "Chiavi", verranno visualizzate informazioni aggiuntive come mostrato nell'immagine seguente. Vedrai anche l'URL del tuo account DocumentDB, che puoi utilizzare come endpoint.

Chiave di autorizzazione

La chiave di autorizzazione contiene le tue credenziali e ci sono due tipi di chiavi. La chiave master consente l'accesso completo a tutte le risorse all'interno dell'account, mentre i token delle risorse consentono l'accesso limitato a risorse specifiche.

Chiavi principali

  • Non c'è niente che non puoi fare con una chiave principale. Puoi spazzare via l'intero database, se lo desideri, utilizzando la chiave principale.

  • Per questo motivo, sicuramente non vuoi condividere la chiave principale o distribuirla agli ambienti client. Come misura di sicurezza aggiuntiva, è una buona idea cambiarla frequentemente.

  • In realtà ci sono due chiavi principali per ogni account di database, la primaria e la secondaria come evidenziato nello screenshot sopra.

Token di risorse

  • Puoi anche utilizzare token risorsa invece di una chiave principale.

  • Le connessioni basate sui token di risorse possono accedere solo alle risorse specificate dai token e non ad altre risorse.

  • I token delle risorse si basano sulle autorizzazioni dell'utente, quindi prima crei uno o più utenti e questi vengono definiti a livello di database.

  • Si creano una o più autorizzazioni per ogni utente, in base alle risorse a cui si desidera consentire a ciascun utente di accedere.

  • Ogni autorizzazione genera un token di risorsa che consente l'accesso in sola lettura o completo a una determinata risorsa e che può essere qualsiasi risorsa utente all'interno del database.

Andiamo all'applicazione console creata nel capitolo 3.

Step 1 - Aggiungere i seguenti riferimenti nel file Program.cs.

using Microsoft.Azure.Documents; 
using Microsoft.Azure.Documents.Client; 
using Microsoft.Azure.Documents.Linq; 
using Newtonsoft.Json;

Step 2- Ora aggiungi l'URL dell'endpoint e la chiave di autorizzazione. In questo esempio useremo la chiave primaria come chiave di autorizzazione.

Tieni presente che nel tuo caso sia l'URL dell'endpoint che la chiave di autorizzazione dovrebbero essere diversi.

private const string EndpointUrl = "https://azuredocdbdemo.documents.azure.com:443/"; 
private const string AuthorizationKey = 
   "BBhjI0gxdVPdDbS4diTjdloJq7Fp4L5RO/StTt6UtEufDM78qM2CtBZWbyVwFPSJIm8AcfDu2O+AfV T+TYUnBQ==";

Step 3 - Crea una nuova istanza di DocumentClient in un'attività asincrona chiamata CreateDocumentClient e crea un'istanza di nuovo DocumentClient.

Step 4 - Chiama la tua attività asincrona dal tuo metodo Main.

Di seguito è riportato il file Program.cs completo finora.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; 
using System.Threading.Tasks;

using Microsoft.Azure.Documents;
using Microsoft.Azure.Documents.Client;
using Microsoft.Azure.Documents.Linq;
using Newtonsoft.Json;

namespace DocumentDBDemo { 

   class Program {
      private const string EndpointUrl = "https://azuredocdbdemo.documents.azure.com:443/";
		
      private const string AuthorizationKey = "BBhjI0gxdVPdDbS4diTjdloJq7Fp4L5RO/
         StTt6UtEufDM78qM2CtBZWbyVwFPSJIm8AcfDu2O+AfV T+TYUnBQ==";
			
      static void Main(string[] args) {
         try {
            CreateDocumentClient().Wait();
         } catch (Exception e) {
            Exception baseException = e.GetBaseException();
            Console.WriteLine("Error: {0}, Message: {1}", e.Message, baseException.Message);
         }
			
         Console.ReadKey();
      }
		
      private static async Task CreateDocumentClient() {
         // Create a new instance of the DocumentClient
         var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey);
      }
		
   }
}

In questo capitolo abbiamo imparato come connetterci a un account DocumentDB e creare un'istanza della classe DocumentClient.