wakeonweb / kong-oauth2-firewall-bundle
Kong OAuth2 Firewall Bundle
v1.0.0
2018-11-07 10:22 UTC
Requires
- guzzlehttp/guzzle: ~6.3
- symfony/framework-bundle: ^4.1
This package is auto-updated.
Last update: 2024-09-08 07:26:26 UTC
README
注意:当在使用Kong API网关时,此包处理用户身份验证。请确保将您的应用程序与外部世界隔离。Kong将用户凭据转换为一系列用于用户身份验证的头部信息。攻击者可以直接访问您的应用程序来伪造这些头部信息。
配置
/config/packages/security.yaml
security:
providers:
trusted:
id: WakeOnWeb\Bundle\KongOAuth2FirewallBundle\Security\TrustedUserProvider
# OR USE YOUR OWN PROVIDER
# in_memory:
# memory:
# users:
# 66ce7c7d-ef0a-47f9-b952-a7dd44ebc7cc: ~
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
kong:
consumer_ids:
- 8ca2548f-3b97-4a03-847e-9e42c150e644
anonymous_consumer_ids:
- 836b6e33-fd83-43b6-ab77-74390873d7b6
access_control:
- { path: ^/me, roles: IS_AUTHENTICATED_FULLY }
- { path: ^/ping, roles: IS_AUTHENTICATED_ANONYMOUSLY }
身份验证机制使用kong提供的头部信息的组合。已验证用户将拥有以下两个头部:X-Consumer-ID
和X-Authenticated-UserID
。匿名用户将只有头部信息X-Anonymous-Consumer
。
看起来X-Authenticated-UserID
头部信息并不可靠。防火墙只能信任X-Consumer-ID
和X-Anonymous-Consumer
。这就是为什么这两个ID都应该出现在防火墙配置中的原因。
待办事项
- 添加一个HTTP客户端/Guzzle中间件,用于在与其他本地微服务通信时转发kong身份验证头部信息。