API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) · Lektion

Grundläggande autentisering och åtkomstkontroll

Konfigurera grundläggande HTTP-autentisering och IP-baserad åtkomstkontroll för att skydda Nginx-resurser.

Lektion 3 av 411 steg

Grundläggande autentisering och åtkomstkontroll är en gratis lektion i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för API-gateway och reverse proxy (Nginx + Spring Cloud Gateway), och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) innehåller totalt 4 lektioner.

Skydda resurser i Nginx

När Nginx levererar innehåll eller fungerar som proxy är det viktigt att kontrollera vem som får åtkomst till era resurser. Det hjälper till att förhindra obehörig åtkomst och håller era applikationer säkra.

I den här lektionen utforskar vi två grundläggande sätt att skydda Nginx: Basic HTTP Authentication och IP-baserad åtkomstkontroll.

Grundläggande HTTP-autentisering

Basic HTTP Authentication är ett enkelt sätt att skydda webbresurser med användarnamn och lösenord. När en användare försöker komma åt en skyddad resurs uppmanar webbläsaren användaren att ange inloggningsuppgifter.

  • Webbläsaren skickar inloggningsuppgifterna med varje begäran.
  • Nginx verifierar dem mot en lagrad fil.
  • Det är enkelt, men inloggningsuppgifterna skickas som base64-kodad text (inte krypterad), så använd alltid detta tillsammans med HTTPS!

Skapa en lösenordsfil

För att använda grundläggande autentisering behöver Nginx en fil som innehåller användarnamn och krypterade lösenord. Vi använder verktyget htpasswd, som vanligtvis ingår i paketet med Apache-verktyg.

Så här skapar ni en lösenordsfil eller lägger till användare i en befintlig fil:

sudo apt install apache2-utils  # On Debian/Ubuntu
sudo yum install httpd-tools   # On CentOS/RHEL

sudo htpasswd -c /etc/nginx/.htpasswd coddyuser
# -c creates the file if it doesn't exist
# You'll be prompted to enter and confirm password

Konfigurera Basic Auth i Nginx

När ni har en lösenordsfil kan ni konfigurera Nginx så att den använder den. Ni använder två huvuddirektiv:

  • auth_basic: Anger den säkerhetsdomän som visas i inloggningsdialogen.
  • auth_basic_user_file: Anger sökvägen till lösenordsfilen.

Direktiven kan placeras i blocken http, server eller location.

Exempel: Basic Auth med Nginx

Det här Nginx-konfigurationsutdraget skyddar sökvägen /admin och kräver att användarna autentiserar sig med uppgifter från filen .htpasswd.

http {
    # ... other http settings

    server {
        listen 80;
        server_name example.com;

        location / {
            root /var/www/html;
            index index.html;
        }

        location /admin {
            auth_basic "Restricted Area";
            auth_basic_user_file /etc/nginx/.htpasswd;
            root /var/www/admin;
            index index.html;
        }
    }
}

IP-baserad åtkomstkontroll

Ett annat sätt att skydda resurser är att styra åtkomsten utifrån klientens IP-adress. Nginx använder direktiven allow och deny för detta.

  • allow IP_ADDRESS | CIDR | all: Tillåter åtkomst från angivna IP-adresser.
  • deny IP_ADDRESS | CIDR | all: Neka åtkomst från angivna IP-adresser.

Direktiven behandlas i ordning inom ett block. Den första matchande regeln gäller.

Konfigurera IP-åtkomstregler

Du kan ange enskilda IP-adresser, IP-intervall med CIDR-notation (t.ex. 192.168.1.0/24) eller all för att hänvisa till alla IP-adresser. Kom ihåg att ordningen spelar roll!

Om du till exempel vill tillåta en specifik IP-adress och neka alla andra anger du först allow och sedan deny all.

Exempel: IP-åtkomst med Nginx

Den här konfigurationen tillåter åtkomst till /private endast från 192.168.1.100 och alla IP-adresser inom nätverket 10.0.0.0/8, och nekar alla andra.

http {
    # ... other http settings

    server {
        listen 80;
        server_name example.com;

        location / {
            root /var/www/html;
            index index.html;
        }

        location /private {
            allow 192.168.1.100;
            allow 10.0.0.0/8;
            deny all;
            root /var/www/private;
            index index.html;
        }
    }
}

Kombinera åtkomstkontroller

Du kan kombinera både grundläggande autentisering och IP-baserad åtkomstkontroll för ökad säkerhet. Nginx bearbetar reglerna sekventiellt.

  • Först utvärderas de IP-baserade reglerna.
  • Om IP-adressen tillåts kontrolleras därefter den grundläggande autentiseringen.

Det innebär att en begäran måste uppfylla båda regeluppsättningarna för att få åtkomst.

Snabb kontroll: Nginx-säkerhet

Betrakta följande konfigurationsutdrag från Nginx. En användare med IP-adressen 192.168.1.50 försöker få åtkomst till example.com/sensitive. Filen .htpasswd innehåller en giltig post för 'admin'.

Vad händer?

location /sensitive {
    deny 192.168.1.0/24;
    allow 192.168.1.50;
    deny all;
    auth_basic "Secure Area";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

Sammanfattning: åtkomstkontroll i Nginx

I den här lektionen har du lärt dig hur du skyddar dina Nginx-resurser med hjälp av två viktiga metoder:

  • Grundläggande HTTP-autentisering: Använder användarnamn och lösenord som lagras i en .htpasswd-fil och konfigureras med auth_basic och auth_basic_user_file. Bör användas tillsammans med HTTPS.
  • IP-baserad åtkomstkontroll: Filtrerar begäranden baserat på IP-adresser med hjälp av direktiven allow och deny. Regelordningen är avgörande.

Dessa metoder ger grundläggande säkerhet för din Nginx-server och de applikationer som den betjänar.

Gratis att börja

Lär dig API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Grundläggande autentisering och åtkomstkontroll” gratis?

Ja – hela texten till ”Grundläggande autentisering och åtkomstkontroll” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway), kan Ni uppgradera till CoddyKit PRO. Kursen i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) innehåller totalt 4 lektioner.

Vad lär jag mig i ”Grundläggande autentisering och åtkomstkontroll”?

Konfigurera grundläggande HTTP-autentisering och IP-baserad åtkomstkontroll för att skydda Nginx-resurser. Ni övar på API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig API-gateway och reverse proxy (Nginx + Spring Cloud Gateway)?

Du behöver inga förkunskaper. Utbildningen i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Grundläggande autentisering och åtkomstkontroll”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här API-gateway och reverse proxy (Nginx + Spring Cloud Gateway)-lektionen?

Ja. Varje API-gateway och reverse proxy (Nginx + Spring Cloud Gateway)-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Säkra Nginx med SSL/TLS
  2. HTTP/2 och optimering av Nginx
  3. Grundläggande autentisering och åtkomstkontroll
  4. Härda Nginx med säkerhetsheaders
← Tillbaka till API-gateway och reverse proxy (Nginx + Spring Cloud Gateway)