29 apr 2019

Hur du installerar RavenDB på en virtuell maskin i Azure (steg för steg - del 3)

RavenDB-del3-sv.jpg

Det här en guide i tre delar för dig som, likt rubriken säger, vill installera RavenDB på en virtuell maskin i Azure. Låter det klurigt? Då kanske du har missat ta dig del 1 och del 2 av guiden.

Logga in till RavenDB från din utvecklingsmaskin

Låt oss nu prova öppna RavenDB studio från vår lokala utvecklingsmaskin. Det första vi gör är att skriva in följande adress i vår browser (där IP-adressen är den publika IP-adressen för vår RavenDB server):

image15.png

Men vi ser följande fel, varför?

image12.png

Problemet är att vi nu och framöver alltid måste skriva hela domänens namn, hur ska browsern annars veta att vi pratar med rätt server? Skriv hela RavenDB-domännamnet istället:

image11.png

Nu slapp vi det felet, men får istället ett annat felmeddelande:

image7.png

Vad nu?

För att autentisera en användare använder vi inte ett traditionellt användarnamn/lösenord som man skulle kunna tro, istället använder vi client-side certificates. Låter det skrämmande? Kopiera administratör-certifikatet som genererades på servern till din lokala maskin och packa upp det. Du kommer se följande filer:

image28.png

För att installera certifikatet lokalt på din maskin, dubbelklicka på Personal Information Exchange filen (.pfx) och klicka Next på alla installationssteg. Försök inte importera .crt-filen!

När importen är klar stäng alla instanser av Chrome och starta den sedan igen. Navigera till din RavenDB-instans, i detta fallet:

image4.png

Om certifikatet har blivit importerat korrekt kommer du se denna dialog:

image14.png

Klicka OK så kommer du in!

Exempeldatabas

För att klara av vår uppgift behöver vi såklart lite data att fråga efter. Utvecklarna av RavenDB har fantastiskt nog lagt in ett verktyg som populerar vår databas med data från den ökända Northwind-databasen från Microsoft.

I RavenDB Studio skapar vi först en ny databas och döper den till Northwind.

image29.png

Klicka på Create gå sedan till Settings-menyn där det finns en möjlighet att Create Sample Data.

prinscreen-1-1-1.jpg

När genereringen är klar kan du gå till Documents view för att se all nyskapade dokument:

prinscreen-2.jpg


Skapa en användare

Innan vi börjar nyttja databasen från .NET behöver vi skapa en användare. Vi vill absolut inte köra som administratör i klienten! Det vore en dålig idé och också en stor säkerhetsrisk.

Så, vi navigerar till Manage Server -> Certificates-sidan i RavenDB Studio.

prinscreen-3.jpg

Sedan klickar vi på “Generate client certificate”-valet under Client certificate-droplistan:

printscreen-14.jpg

Vi fyller i formuläret och väljer Northwind-databasen och för denna databas väljer vi Admin som rättigheter. Vi behöver ha administratörsrättigheter i Northwind-databasen för att vi kanske vill skapa våra egna indexes från klienten. Du kan läsa mer om databas-rättigheter här.

image2.png

(Vi skriver edument som certifikatets passphrase)

Klicka på Generate och efter några sekunder har ett nytt certifikat genererats och laddats ner av din browser. Flytta den nedladdade filen till en mer permanent plats, i mitt fall väljer jag att lägga alla mina certifikat i c:\Edument\Certificates

Packa upp .ZIP-filen och du bör se följande filer:

image17.png


Azure key vault och RavenDB certifikat
Om du försöker importera certifikat som genererats av RavenDB in till Azure Key Vault så kan du stöta på problem i portalen. Då kan du försöka att använda ett namn på certifikatet med bara små bokstäver och/eller inte använda en certificate passphrase

Anropa databasen från .NET Core

Skapa en ny .NET Core console-applikation i Visual Studio och lägg till RavenDB.Client NuGet-paketet:

image16.png

Därefter behöver vi lägga till de Northwind C#-klasser som representerar dokumenten i databasen, dessa kan hittas på samma sida i RavenDB studio där du genererade exempeldatan.

prinscreen-4.jpg

(Kopiera bara filerna till ditt projekt)

Lägg därefter till följande kod i din Main-metod:

kod-blogg-ravendb.png

Om du kör applikationen nu bör du se en lista över de 100 första företagen i databasen, sorterade på deras namn:

image3.png

Det var allt! Vi har lyckats installera RavenDB och på ett säkert sätt kopplat upp mot databasen från en .NET Core-applikation. Uppdraget slutfört!

Har du några frågor eller fundering? Kom du på något smart som jag inte har tänkt på vid installationen? Hör i så fall gärna av dig på tore@edument.se så kan vi diskutera det vidare.

Om författaren

Tore Nestenius har passion för arkitektur, .NET och Webbsäkerhet. Enligt Tore “går det inte att förklara något för någon annan utan att förstå det själv först”. Han är ena grundaren till Edument och han är ofta på resande fot både i Sverige och utomland för att hålla utbildningar.

Relaterade kurser

  • C# Master Class

    Denna kursen lär dig att bemästra och ger dig en djupare förståelse i C# och .NET. Fokus ligger på moderna mönster och tekniker, ren funktionell kod och fokus på verkliga situationer. Du får praktiska färdigheter som låter dig mer effektivt skapa bättre program.

    Kursområde: .Net
    Omfattning: 3 dagar
    Kostnad: 25 900 SEK
  • Mjukvaruarkitektur

    Kursen ger grunden till hur du kan utforma dina system så att de kan hantera nya utmaningar och förändringar; hur du får en systemarkitektur som är testbar, skalbar, och säker, och hur du kan undvika att systemet blir en enda stor röra.

    Kursområde: Systemarkitektur
    Omfattning: 2 dagar
    Kostnad: 21 500 SEK
  • Webbsäkerhet för utvecklare

    Utmaningarna att göra en säker webbplats är väldigt stora idag. Dagens utvecklare känner inte alltid till säkerhetsaspekterna för säker utveckling. Problemet är också att hänga med i den snabba utvecklingen. Fler säkerhetshål uppstår också i och med trenden att vi lägger alltmer funktionalitet i webbläsarna. 

    Kursområde: Webbutveckling
    Omfattning: 2 dagar
    Kostnad: 21 500 SEK
  • Beginning ASP.NET Core

    Denna kurs ger din ASP.NET Core utveckling en god start i rätt riktning!

    Kursområde: .Net
    Omfattning: 3 dagar
    Kostnad: 25 900 SEK