acsystems / keycloak-guard-bundle
Symfony 通过 Keycloak JWT 进行守卫认证
    2.0.1
    2022-09-15 09:24 UTC
Requires
- php: >=7.3
- ext-json: *
- fproject/php-jwt: ^4.0
- symfony/security-bundle: ^5.4
- symfony/yaml: ^5.4
README
此包的目标是提供用于 Symfony 的 Keycloak 令牌认证守卫。
由acsystems/keycloak-authenticator-bundle取代
文档
快速开始
安装
使用 composer 从 Packagist 安装包。
composer require acsystems/keycloak-guard-bundle
添加包。
config/bundles.php
return [
    ACSystems\KeycloakGuardBundle\ACSystemsKeycloakGuardBundle::class => ['all' => true]
];
设置 Symfony 安全性以使用自定义认证器。
config/packages/security.yaml
security:
  providers:
    keycloak:
      id: ACSystems\KeycloakGuardBundle\Security\Provider\KeycloakUserProvider
  firewalls:
    dev:
      pattern: ^/(_(profiler|wdt)|css|images|js)/
      security: false
    main:
      provider: keycloak
      stateless: true
      anonymous: true
      logout: ~
      guard:
        authenticators:
          - ACSystems\KeycloakGuardBundle\Security\KeycloakTokenAuthenticator
  access_control:
    # ...
添加您的 Keycloak 基础 URL 和领域。
config/packages/keycloak_client.yaml
acsystems_keycloak_guard:
  keycloak_guard:
    base_uri: 'https://example.com/'
    realm: 'example-realm'
可配置参数
| 名称 | 类型 | 用途 | 
|---|---|---|
| base_uri | 字符串 | 您的 Keycloak 实例的 URL | 
| realm | 可选字符串 | 领域名称,如果不存在则推导 | 
| client_id | 可选字符串 | 人类可读的 client_id,如果不存在则推导 | 
升级
有关版本迁移说明,请参阅升级说明。
支持的平台
以下平台由本包官方支持。其他版本可能也适用,但不保证。
| 平台 | 版本 | 
|---|---|
| PHP | 7.4 / 8.1 | 
| Symfony | 5.4 | 
- 对于 keycloak >= 17,使用本包的 ^2.0.0 版本
- 对于 Keycloak <= 16,使用本包的 ^1.4.0 版本
- 对于 Symfony >=6,请使用acsystems/keycloak-authenticator-bundle
贡献
在贡献之前,请阅读我们的贡献指南。