PHPackages                             sitmpcz/oidc - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. sitmpcz/oidc

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

sitmpcz/oidc
============

Integration oidc client to Nette

v1.1.2(1w ago)0752↓38.6%1GPL-3.0-or-laterPHPPHP &gt;=8.1

Since Feb 20Pushed 1w agoCompare

[ Source](https://github.com/sitmpcz/oidc)[ Packagist](https://packagist.org/packages/sitmpcz/oidc)[ RSS](/packages/sitmpcz-oidc/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (5)Dependencies (20)Versions (7)Used By (0)

sitmpcz/oidc
============

[](#sitmpczoidc)

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

Knihovna integruje [`facile-it/php-openid-client`](https://github.com/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
---------

[](#požadavky)

- PHP 8.1 nebo vyšší
- Nette Framework 3.1+
- OpenID Connect provider (např. Keycloak)

Instalace
---------

[](#instalace)

```
composer require sitmpcz/oidc
```

Konfigurace
-----------

[](#konfigurace)

Zaregistrujte extension v `config.neon`:

```
extensions:
    openid: Sitmpcz\oidc\DI\OpenIDExtension

openid:
    issuerUrl: %env.ISSUER_URL%              # URL OIDC providera
    clientId: %env.CLIENT_ID%                # Client ID z OIDC providera
    clientSecret: %env.CLIENT_SECRET%        # Client Secret z OIDC providera
    redirectUri: "/sign/callback"            # volitelné
    postLogoutRedirectUri: "/"               # volitelné
    backchannelLogoutUri: "/sign/out-slo"    # volitelné
    scopes: [openid, profile, email]         # volitelné
```

### Parametry konfigurace

[](#parametry-konfigurace)

ParametrPovinnýPopis`issuerUrl`AnoURL vašeho OIDC providera (např. `https://keycloak.example.com/realms/myrealm`)`clientId`AnoClient ID z konfigurace OIDC providera`clientSecret`AnoClient Secret z konfigurace OIDC providera`redirectUri`NeURI pro callback po přihlášení. Pokud neuvedete, použije se aktuální URL z requestu`postLogoutRedirectUri`NeURI pro přesměrování po odhlášení. Výchozí: `/``backchannelLogoutUri`NeURI endpoint pro backchannel logout (Single Sign-Out)`scopes`NeOIDC 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

[](#podpora-reverse-proxy)

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

- `X-Forwarded-Proto` - pro detekci HTTPS
- `X-Forwarded-Host` - pro správný hostname
- `X-Forwarded-Port` - pro správný port

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

**Příklad pro nginx:**

```
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
```

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

Použití v presenteru
--------------------

[](#použití-v-presenteru)

```
