added tests and readme for eduroam initial smoketest
This commit is contained in:
89
apps/security/Eduroam Analyzer/README_technical.md
Normal file
89
apps/security/Eduroam Analyzer/README_technical.md
Normal file
@@ -0,0 +1,89 @@
|
||||
# NREN / ASN Detection Service
|
||||
|
||||
Dieses Projekt stellt einen **minimalen Microservice** bereit, um **Hochschul- und Forschungsnetzwerke (NRENs)** anhand der **Autonomous System Number (ASN)** zu erkennen.
|
||||
|
||||
Der Zweck ist es, **Anfragen aus Hochschulnetzen (z. B. eduroam)** zu identifizieren, um **Research-bezogene Services kostenlos oder bevorzugt bereitzustellen**.
|
||||
|
||||
Das System dient ausschließlich der **Netzwerk-Klassifikation** und **ersetzt keine Authentifizierung**.
|
||||
|
||||
---
|
||||
|
||||
## Ziel
|
||||
|
||||
- Erkennen, ob eine Anfrage aus einem **Hochschul- oder Forschungsnetz** stammt
|
||||
- Bereitstellung eines **Header-Hinweises** für nachgelagerte Services
|
||||
- Grundlage für Entscheidungen wie:
|
||||
- kostenfreie Research-Features
|
||||
- angepasste UI-Hinweise
|
||||
- alternative Rate-Limits
|
||||
|
||||
---
|
||||
|
||||
## Funktionsweise (Kurzfassung)
|
||||
|
||||
```
|
||||
Client
|
||||
→ Traefik
|
||||
→ ForwardAuth
|
||||
→ ASN Detection Service
|
||||
→ Header wird ergänzt
|
||||
```
|
||||
|
||||
1. Die Client-IP wird ermittelt
|
||||
2. Die zugehörige ASN wird lokal nachgeschlagen
|
||||
3. Die ASN wird mit einer NREN-ASN-Liste verglichen
|
||||
4. Das Ergebnis wird als HTTP-Header zurückgegeben
|
||||
|
||||
---
|
||||
|
||||
## Datenquellen
|
||||
|
||||
- **GeoLite2 ASN (MaxMind)**
|
||||
- kostenlos
|
||||
- lokal
|
||||
- monatliche Aktualisierung
|
||||
|
||||
- **NREN-ASN-Liste**
|
||||
- abgeleitet aus PeeringDB
|
||||
- Kategorie: `Research and Education`
|
||||
- monatliche Aktualisierung
|
||||
|
||||
---
|
||||
|
||||
## Bereitgestellte Header
|
||||
|
||||
| Header | Beschreibung |
|
||||
|------|-------------|
|
||||
| `X-ASN` | ASN der Client-IP |
|
||||
| `X-ASN-ORG` | Organisation (optional) |
|
||||
| `X-NREN` | `1` wenn ASN zu einem Hochschul-/Forschungsnetz gehört, sonst `0` |
|
||||
|
||||
---
|
||||
|
||||
## Integration
|
||||
|
||||
Der Service wird als **Traefik ForwardAuth Middleware** eingebunden.
|
||||
Die Header werden über `authResponseHeaders` an die eigentliche Anwendung weitergereicht.
|
||||
|
||||
Der Service ist **nicht öffentlich exponiert** und kommuniziert ausschließlich über das interne Docker-Netzwerk.
|
||||
|
||||
---
|
||||
|
||||
## Update-Strategie
|
||||
|
||||
- monatliche Aktualisierung der ASN-Daten
|
||||
- keine externen Requests während der Anfrageverarbeitung
|
||||
|
||||
---
|
||||
|
||||
## Einschränkungen
|
||||
|
||||
- Die Erkennung ist **heuristisch**
|
||||
- Es gibt **keine Garantie**, dass jede Anfrage aus einem Hochschulnetz erkannt wird
|
||||
- Die Information darf **nicht als Authentifizierungsmerkmal** verwendet werden
|
||||
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
||||
Dieses Projekt ermöglicht eine **performante, datenschutzfreundliche Erkennung von Hochschulnetzen**, um **Research-Angebote kontextabhängig bereitzustellen**, ohne Nutzer zu identifizieren oder externe Dienste zur Laufzeit zu kontaktieren.
|
||||
Reference in New Issue
Block a user