Download the PHP package sitmpcz/oidc without Composer

On this page you can find all versions of the php package sitmpcz/oidc. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package oidc

sitmpcz/oidc

OpenID Connect (OIDC) extension pro Nette Framework s podporou Keycloak a dalších OIDC providerů.

Knihovna integruje facile-it/php-openid-client do Nette aplikací a poskytuje jednoduché API pro autentizaci přes OpenID Connect, včetně podpory pro backchannel logout (Single Sign-Out).

Požadavky

Instalace

Konfigurace

Zaregistrujte extension v config.neon:

Parametry konfigurace

Parametr Povinný Popis
issuerUrl Ano URL vašeho OIDC providera (např. https://keycloak.example.com/realms/myrealm)
clientId Ano Client ID z konfigurace OIDC providera
clientSecret Ano Client Secret z konfigurace OIDC providera
redirectUri Ne URI pro callback po přihlášení. Pokud neuvedete, použije se aktuální URL z requestu
postLogoutRedirectUri Ne URI pro přesměrování po odhlášení. Výchozí: /
backchannelLogoutUri Ne URI endpoint pro backchannel logout (Single Sign-Out)
scopes Ne OIDC scopes. Výchozí: [openid, profile, email]

Relativní vs. Absolutní URL: Všechny URI parametry podporují relativní cesty (např. /sign/callback). Knihovna automaticky doplní schéma, doménu a port z aktuálního HTTP requestu. Můžete také používat absolutní URL.

Podpora Reverse Proxy

Pokud běžíte za reverse proxy (nginx, Apache) nebo v Kubernetes Ingress, knihovna automaticky detekuje:

Ujistěte se, že vaše proxy tyto hlavičky správně nastavuje.

Příklad pro nginx:

Příklad pro Kubernetes Ingress: Většina Ingress controllers (nginx-ingress, Traefik) nastavuje tyto hlavičky automaticky.

Použití v presenteru

Použití s Redis sessions (contributte/redis)

Pokud používáte Redis pro ukládání sessions, backchannel logout vyžaduje speciální přístup, protože Keycloak nemá přímý přístup k vaší aktivní session - musíte vyhledat session v Redis podle sid (session ID) z logout tokenu.

Konfigurace Redis

config/redis.neon:

config/common.neon:

Presenter s Redis backchannel logout

Důležité poznámky pro Redis

  1. Oddělené databáze: Používejte samostatnou Redis databázi pro sessions (např. databáze 1) oddělenou od cache (databáze 0)

  2. Backchannel logout vyžaduje vyhledávání: Na rozdíl od standardních Nette sessions, kde je aktivní session dostupná v kontextu requestu, u backchannel logout musíte:

    • Projít všechny session klíče v Redis
    • Deserializovat session data
    • Najít ID token v sekci oidc
    • Porovnat sid nebo sub z logout tokenu s ID tokenem v session
    • Smazat odpovídající session z Redis
  3. Výkon: Pro velký počet aktivních sessions může být vyhledávání pomalé. Zvažte:

    • Index sessions podle sid v samostatné Redis struktuře
    • TTL pro Redis session klíče odpovídající session expiraci
    • Monitoring počtu aktivních sessions
  4. Bezpečnost: Backchannel endpoint neověřuje JWT logout token - v produkčním prostředí zvažte přidání validace tokenu pomocí OpenIDClientService::handleBackchannelLogout() před vyhledáváním v Redis.

Dostupné metody

getAuthorizationUrl(): string

Vrací URL pro přesměrování na přihlašovací stránku OIDC providera.

handleCallback(): array

Zpracuje callback z OIDC providera a vrátí informace o uživateli.

refreshToken(): bool

Obnoví access token pomocí refresh tokenu. Vrací true při úspěchu, false při selhání.

getLogoutUrl(?string $idToken = null): string

Vrací URL pro odhlášení z OIDC providera. Při zadání ID tokenu poskytuje lepší single sign-out.

logout(): void

Vyčistí lokální session (userInfo, refreshToken, idToken).

getIdToken(): ?string

Vrací uložený ID token ze session, pokud existuje.

handleBackchannelLogout(string $logoutToken): bool

Zpracuje backchannel logout požadavek z OIDC providera (např. Keycloak). Validuje JWT logout token a odhlásí lokální session, pokud token odpovídá aktuálnímu uživateli. Vrací true pokud byla session odhlášena.

Backchannel Logout (Single Sign-Out)

Backchannel logout umožňuje OIDC provideru automaticky odhlásit uživatele z vaší aplikace, když se odhlásí z jiné aplikace připojené ke stejnému provideru.

Konfigurace v Keycloak

  1. V Keycloak administraci přejděte na Client Settings vašeho klienta
  2. Nastavte Backchannel Logout URL: https://vase-domena.cz/sign/out-slo
  3. Zapněte Backchannel Logout Session Required

Tip: V config.neon stačí uvést relativní cestu (backchannelLogoutUri: "/sign/out-slo"), knihovna automaticky sestaví plnou URL.

Jak to funguje

  1. Uživatel se odhlásí z aplikace A připojené ke Keycloak
  2. Keycloak pošle POST požadavek na backchannel logout endpoint aplikace B
  3. Aplikace B validuje JWT logout_token a odhlásí uživatele
  4. Uživatel je nyní odhlášen ze všech aplikací (Single Sign-Out)

Token je validován podle OIDC Back-Channel Logout specifikace a session je spárována podle sid (session ID) nebo sub (subject/user ID).

Klíčové vlastnosti

Licence

MIT


All versions of oidc with dependencies

PHP Build Version
Package Version
Requires php Version >=8.1
nette/di Version ^3.1
nette/http Version ^3.1
facile-it/php-openid-client Version ^0.3.5
web-token/jwt-framework Version ^3.4
contributte/psr7-http-message Version ^0.10.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package sitmpcz/oidc contains the following files

Loading the files please wait ...