authelia/MyNotes.md

3.2 KiB

Ausführen

Um die Anwendung lokal auszuführen, können die folgenden Befehle verwendet werden.

export GOPATH=/tmp
source bootstrap.sh
authelia-scripts suites setup Standalone

Nun sollte der "Haupt-Enpunkt" unter https://home.example.com:8080 und die API unter https://authelia.example.com:9091 erreichbar sein. Achtung: es wird ein selbstsigniertes Zertifikat verwendet! Mithilfe der Hot-Reload kann jetzt gecoded werden.


Nach der Entwicklung kann die Testumgebung durch den folgenden Befehl wieder zurückgesetzt werden.

go run ./cmd/authelia-scripts/ suites teardown Standalone

Benutzerdefinierte Zertifikate

Um ein benutzerdefiniertes Zertifikat für die Ausführung zu verwenden, muss die Datai public.backend.crt und private.bakend.pem unter diesem Verzeichnis abgeändert werden. Um die Gültigkeit zu testen, kann der folgendende Befehl ausgeführt werden.

curl https://auth.rpjosh.de:9091 --connect-to 'auth.rpjosh.de:9091:authelia.example.com:9091'

Externe erreichbarkeit

Im aktuellen Zustand sind die Endpunkte nur unter den Docker internen IP-Adressen erreichbar. Daher muss noch ein NAT Regel angelegt werden.

ip=$(ping -c 1 authelia.example.com | gawk -F'[()]' '/PING/{print $2}')
sudo iptables -t nat -A PREROUTING -p tcp --dport 9091 -d 192.168.0.15 -j DNAT --to-destination 192.168.240.50:9091 -m comment --comment "Authelia-Test"
sudo iptables -t nat -A PREROUTING -p tcp --dport 9092 -d 192.168.0.15 -j DNAT --to-destination 192.168.240.50:9092 -m comment --comment "Authelia-Test"
sudo iptables -t nat -I OUTPUT -p tcp -o lo --dport 9091 -j DNAT --to-destination 192.168.240.50:9091

Customizations

Für das Starten des gRPC Servers müssen die folgenden Abhängigkeiten installiert werden.

go get github.com/envoyproxy/go-control-plane
go get github.com/envoyproxy/go-control-plane/envoy/config/core/v3
go get github.com/gogo/googleapis/google/rpc
go get google.golang.org/grpc

Konfiguration ändern

Wenn die Konfiguration geändert wurde, müssen die Keys zur Validierung wieder erneut gebaut werden.

go run ./cmd/authelia-gen code keys

Mocks abgeändert

Wenn interfaces von den Mocks geändert werden, muss folgendes wieder ausgeführt werden:

export PATH=$PATH:$(go env GOPATH)/bin
go generate ./...

Bauen

Um ein Docker Image für authelia zu bauen, müssen die folgenden Befehle ausgeführt werden.

# Dieser Befehle funktionieren aktuell nicht 
authelia-scripts docker build
authelia-scripts build

# => Manuell bauen
export CC=musl-gcc

authelia-scripts build
cp -r dist/public_html internal/server/
go build -buildmode=pie -ldflags "-linkmode=external -s -w" -trimpath -buildmode=pie -o authelia ./cmd/authelia
mv authelia authelia-linux-amd64-musl
# Build docker image
docker build --tag git.rpjosh.de/rpjosh/authelia/authelia:4.38.0-dev .
docker push git.rpjosh.de/rpjosh/authelia/authelia:4.38.0-dev
# Cleanup
rm -rf internal/server/public_html/ ./authelia-linux-amd64-musl

gRCP

Um einen gRCP Endpunkt nutzen zu können, brauch mein eine .proto Datei. Für Envoy sieht diese wie in dieser Datei folgendermaßen aus.