Icecast Server/2.5 Authentication

From XiphWiki
Revision as of 03:46, 11 March 2023 by Phschafft (talk | contribs) (Feature: Added list of current auth backends)
Jump to navigation Jump to search

Icecast 2.5.x Authentication

Overview

Icecast 2.5.x features a new authentication system. This system comes with many improvements and more flexibility. All versions of the Icecast 2.5.x series can read both 2.4.x and 2.5.x style configuration. This includes mixed configuration.

While Icecast 2.4.x used a set of global users and one per-mount authentication backend Icecast 2.5.x features a authentication process that allows a request to pass a number of backends before being matched. This improvements allows more complex setups. For example It is now possible to define common backends and exceptions for specific users on a per-mount point basis. Each such a step where a client is checked using a backend is called a role.

For reach client the roles for each of those elements are tried in order:

  1. Per listen socket roles (effective listen sockets)
  2. Per type normal mount point roles
  3. Per type default mount point roles
  4. Global roles
  5. Client is rejected.

Note: More steps may be added in later versions.

Backends

The following backends are defined:

Backend Description
anonymous This backend matches all clients. Might be renamed in future versions.
static This backend matches one username and checks against a password.
legacy-password Special backend used for ICY sources.
url Forwards the request to a backend server (normally via HTTP or HTTPS).
htpasswd Uses a file based database of users and passwords.
enforce-auth Rejects any clients that does not provide credentials. Returns no-match for any client that does.

Note: More backends may be added in later versions.