- Notifications
You must be signed in to change notification settings - Fork1
Symfony bundle help to authenticate request forwarded by Istio sidecar.
License
php-istio/jwt-authentication-bundle
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
The Symfony bundle provides JWT authentication for request forwarded by Istio sidecar.
To use this bundle, make sure your K8S application pod had injected Istio sidecar and configuredRequestAuthentication CRD, if not your applicationIS NOT SECURE.
The main difference between the awesomeLexik JWT Authentication bundleand this bundle is it'sNOT validate JWT token because Istio sidecar had validated before forward request to your application,so that your application don't need to hold public key and double validate JWT token.
PHP versions:
- PHP 8.0
Symfony versions:
- Symfony 5.3
composer require php-istio/jwt-authentication-bundle
Enablethe authenticator manager setting:
# config/packages/security.yamlsecurity:enable_authenticator_manager:true# ...
Then, configure yourconfig/packages/security.yaml:
security:enable_authenticator_manager:trueaccess_control: -path:^/roles:IS_AUTHENTICATED_FULLYfirewalls:#...main:stateless:trueistio_jwt_authenticator:rules: -issuer:issuer_1# Requireduser_identifier_claim:sub#Default is `sub` claimorigin_token_headers:[authorization]#Required at least once of `origin_token_headers`, `origin_token_query_params` or `base64_headers`. Use this option when your Istio JWTRule CRD using `forwardOriginalToken`.origin_token_query_params:[token]#Use this option when your Istio JWTRule CRD using `forwardOriginalToken` and your JWT token in query param.base64_headers:[x-istio-jwt-payload]# Use this option when your Istio JWTRule CRD using `outputPayloadToHeader`.prefix:"Bearer"#Token prefix of origin token passthrough by default blank ("") if not set.
In case your application have multi issuers:
#....main:stateless:trueistio_jwt_authenticator:rules: -issuer:issuer_1origin_token_headers:[authorization]prefix:"Bearer" -issuer:issuer_2user_identifier_claim:audbase64_headers:[x-istio-jwt-payload]#....
#!/bin/bash#Generate mock JWT token forwarded by Istio sidecarpayload='{"issuer":"issuer_1", "sub": "test"}';base64_payload=$(echo -n$payload| base64 -);origin_token=$(echo"header.$base64_payload.signature");#You can test authenticate origin token with curl:curl -H"Authorization: Bearer$origin_token" http://localhost/#Or authenticate base64 payload header:curl -H"X-Istio-JWT-Payload:$base64_payload" http://localhost/
About
Symfony bundle help to authenticate request forwarded by Istio sidecar.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.