Assignment for Security Engineer position at Parsley Health
For requests from one web application in particular, named senior-parsley, we need to be able to apply certain rules. When the following conditions are met: claim auth-provider == SSO AND claim email contains @parsleyhealth.com as an email suffix. The GraphQL endpoint will return a valid JSON response (you can use any sample schema you choose). If the conditions are NOT met, return a 401 and take any appropriate action.
- A flask app to handle one endpoint "/sso"
- JWT generator to handle test cases
- Simulated client for testing
- Signed JWTs
- Rate limiting
- Expiry
- Not Included: Vault protection for signing keys
Matches parameters for tokenGen() function for test cases
- valid sso request
- user-pass request
- non-parsleyhealth request
- email fuzzing
- expired JWT