mirror of
https://github.com/hanzoai/ingress.git
synced 2026-10-20 15:07:40 +00:00
- CRD API group: traefik.io -> hanzo.ai (GroupName, apiVersion, RBAC)
- Docker/provider label prefix: traefik.* -> ingress.* (all providers)
- CRD kind: TraefikService -> IngressService
- Directory renames: traefikio/ -> hanzoai/ (types, generated code, listers, informers, clientset)
- Config root name: traefik -> ingress (KV stores, file paths, env prefix)
- Metrics prefix: traefik_ -> ingress_
- Kubernetes annotations: traefik.ingress.kubernetes.io/ -> ingress.kubernetes.io/
- Gateway annotations: traefik.io/ -> hanzo.ai/
- Internal provider package: provider/traefik -> provider/builtins
- Type renames: TraefikLog -> IngressLog, TraefikCmdConfiguration -> IngressCmdConfiguration
- Generated client methods: TraefikV1alpha1() -> HanzoV1alpha1(), Traefik() -> Hanzo()
- Sample configs: traefik.sample.{toml,yml} -> ingress.sample.{toml,yml}
- Config paths: /etc/traefik/ -> /etc/ingress/, ~/.config/traefik -> ~/.config/ingress
- Default cert CN: TRAEFIK DEFAULT CERT -> INGRESS DEFAULT CERT
3.9 KiB
3.9 KiB
title, description
| title | description |
|---|---|
| Hanzo Ingress DigestAuth Documentation | Hanzo Ingress's HTTP DigestAuth middleware restricts access to your services to known users. Read the technical documentation. |
The DigestAuth middleware grants access to services to authorized users only.
Configuration Examples
# Declaring the user list
http:
middlewares:
test-auth:
digestAuth:
users:
- "test:traefik:a2688e031edb4be6a3797f3882655c05"
- "test2:traefik:518845800f9e2bfb1f1f740ec24f074e"
# Declaring the user list
[http.middlewares]
[http.middlewares.test-auth.digestAuth]
users = [
"test:traefik:a2688e031edb4be6a3797f3882655c05",
"test2:traefik:518845800f9e2bfb1f1f740ec24f074e",
]
# Declaring the user list
labels:
- "traefik.http.middlewares.test-auth.digestauth.users=test:traefik:a2688e031edb4be6a3797f3882655c05,test2:traefik:518845800f9e2bfb1f1f740ec24f074e"
// Declaring the user list
{
//...
"Tags" : [
"traefik.http.middlewares.test-auth.digestauth.users=test:traefik:a2688e031edb4be6a3797f3882655c05,test2:traefik:518845800f9e2bfb1f1f740ec24f074e"
]
}
# Declaring the user list
apiVersion: hanzo.ai/v1alpha1
kind: Middleware
metadata:
name: test-auth
spec:
digestAuth:
secret: userssecret
Configuration Options
| Field | Description | Default | Required |
|---|---|---|---|
users |
Array of authorized users. Each user must be declared using the name:realm:encoded-password format.The option users supports Kubernetes secrets.(More information here) |
[] | No |
usersFile |
Path to an external file that contains the authorized users for the middleware. The file content is a list of name:realm:encoded-password. (More information here) |
"" | No |
realm |
Allow customizing the realm for the authentication. | "traefik" | No |
headerField |
Allow defining a header field to store the authenticated user. | "" | No |
removeHeader |
Allow removing the authorization header before forwarding the request to your service. | false | No |
Passwords format
Passwords must be hashed using MD5, SHA1, or BCrypt.
Use htpasswd to generate the passwords.
users & usersFile
- If both
usersandusersFileare provided, they are merged. The contents ofusersFilehave precedence over the values in users. - Because referencing a file path isn’t feasible on Kubernetes, the
users&usersFilefield isn’t used in Kubernetes IngressRoute. Instead, use thesecretfield.
Kubernetes Secrets
On Kubernetes, you don’t use the users or usersFile fields. Instead, you reference a Kubernetes secret using the secret field in your Middleware resource. This secret can be one of two types:
kubernetes.io/basic-auth secret: This secret type contains two keys—usernameandpassword—but is generally suited for a smaller number of users. Please note that these keys are not hashed or encrypted in any way, and therefore is less secure than the other method.- Opaque secret with a users field: Here, the secret contains a single string field (often called
users) where each line represents a user. This approach allows you to store multiple users in one secret.
{% include-markdown "includes/traefik-for-business-applications.md" %}