Zabezpečení API klíče

Zabezpečení API klíče snižuje riziko jeho zneužití . Omezuje, odkud a za jakým účelem smí být tento API klíč volán.

Pokud je klient veřejně dostupný, například běží ve webovém prohlížeči, potenciální útočník může snadno odpozorovat komunikaci a získaný API klíč použít jinde. Žádné zabezpečení sice není stoprocentně neprůstřelné, ale správná konfigurace výrazně ztěžuje jeho zneužití a minimalizuje riziko neoprávněného přístupu.

Nabízíme následující možnosti zabezpečení:

  • Omezení podle HTTP refererů – povolení pouze pro určité domény nebo subdomény
  • Omezení podle IP adres – přístup pouze z definovaných IP adres nebo rozsahů
  • Omezení podle User-Agent – volání pouze s konkrétní identifikací klienta
  • Omezení podle vybraných služeb – povolení pouze pro konkrétní API služby

Produkční API klíče doporučujeme vždy zabezpečit, aby bylo minimalizováno riziko jejich zneužití.

Zabezpečení můžete nastavit v portále Můj účet a to v nastavení jednotlivých API klíčů.

Zabezpečení pomocí vybrání služeb

Omezte využití API klíče pouze na konkrétní služby, které skutečně používáte.

Výchozí nastavení:

  • API klíč má přístup ke všem běžným službám (REST API endpointy).

Jak nastavit omezení?

  1. Přejděte do sekce Přístup na služby.
  2. Zvolte možnost „Jen vybrané služby“.
  3. Vyberte služby, které API klíč smí používat.
  4. Uložte nastavení.

Toto omezení můžete kombinovat s dalšími pravidly, například povolením jen pro určité HTTP referery nebo IP adresy.

Pozor, změna zabezpečení se neprojeví hned, ale postupně během cca 15 minut.

Zabezpečení pomocí http refererů

Specifikujte seznam http refererů (domén/subdomén) platných pro volání s tímto API klíčem.

  • Validuje se pouze host a port část z referera. Ignoruje se protokol. cesta, get parametry.
  • Podmínka tedy nemůže obsahovat /.
  • podmínka může obsahovat znak * ,který znamená libovolný alfanumerický znak + pomlčku (v podstatě to co může obsahovat doménové jméno) např.. *.mapy.cz. Hvězdička se aplikuje jen na jednu část hostname (mezi tečkami) takže pro *.mapy.cz projde frame.mapy.cz ale neprojde mapy.cz ani cs.frame.mapy.cz
  • Podmínka může být:
    • host name test.example.com
    • host name s portem test.example.com:8080
    • ipv4 adresa 192.168.10.10
    • ipv4 adresa s portem 192.168.10.10:8080
    • ipv6 adresa [2001:db8::1]
    • ipv6 adresa s portem [2001:db8::1]:8080

Příklady obvyklého nastavení:

domena.cz
www.domena.cz
subdomena.domena.cz
*.domena.cz
localhost:*

Zabezpečení pomocí IP adres

Specifikujte seznam IP adres nebo jejich rozsahů platných pro volání s tímto API klíčem.

  • IP adresy se zadávají dle CIDR notace

Příklady obvyklého nastavení:

Jedna adresa:
172.30.2.3/32
172.30.2.3

Síť/Podsíť
172.30.2.0/24

Zabezpečení pomocí user-agent

Specifikujte seznam user agentů platných pro volání s tímto API klíčem.

  • Zde není možné používat zástupné znaky, kontrolujeme přesnou shodu.

Příklady obvyklého nastavení:

cortex/1.0
LibreOffice
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36