Mercurial > code > home > repos > href
annotate get_agent.py @ 42:530650b3bc40 default tip
something changed in pom to break pyjwt. switched to jwskate
author | drewp@bigasterisk.com |
---|---|
date | Wed, 14 Dec 2022 22:07:19 -0800 |
parents | 293a694304b8 |
children |
rev | line source |
---|---|
39 | 1 import logging |
2 | |
3 import bottle | |
4 from rdflib import URIRef | |
42
530650b3bc40
something changed in pom to break pyjwt. switched to jwskate
drewp@bigasterisk.com
parents:
41
diff
changeset
|
5 import requests |
530650b3bc40
something changed in pom to break pyjwt. switched to jwskate
drewp@bigasterisk.com
parents:
41
diff
changeset
|
6 from jwskate import Jwt, JwkSet |
39 | 7 log = logging.getLogger(__name__) |
8 | |
42
530650b3bc40
something changed in pom to break pyjwt. switched to jwskate
drewp@bigasterisk.com
parents:
41
diff
changeset
|
9 jwkset = JwkSet(requests.get('https://authenticate.bigasterisk.com/.well-known/pomerium/jwks.json').json()) |
39 | 10 |
11 def bottleGetAgent() -> URIRef: | |
12 pomAssertion = bottle.request.headers.get('X-Pomerium-Jwt-Assertion', None) | |
42
530650b3bc40
something changed in pom to break pyjwt. switched to jwskate
drewp@bigasterisk.com
parents:
41
diff
changeset
|
13 log.debug('pomAssertion=%r', pomAssertion) |
530650b3bc40
something changed in pom to break pyjwt. switched to jwskate
drewp@bigasterisk.com
parents:
41
diff
changeset
|
14 jwt = Jwt(pomAssertion) |
530650b3bc40
something changed in pom to break pyjwt. switched to jwskate
drewp@bigasterisk.com
parents:
41
diff
changeset
|
15 jwt.validate(jwkset['keys'][0], #?? |
530650b3bc40
something changed in pom to break pyjwt. switched to jwskate
drewp@bigasterisk.com
parents:
41
diff
changeset
|
16 algs=['ES256'], |
530650b3bc40
something changed in pom to break pyjwt. switched to jwskate
drewp@bigasterisk.com
parents:
41
diff
changeset
|
17 issuer='authenticate.bigasterisk.com', |
530650b3bc40
something changed in pom to break pyjwt. switched to jwskate
drewp@bigasterisk.com
parents:
41
diff
changeset
|
18 audience='bigasterisk.com') |
530650b3bc40
something changed in pom to break pyjwt. switched to jwskate
drewp@bigasterisk.com
parents:
41
diff
changeset
|
19 log.debug('claims=%r', jwt.claims) |
39 | 20 foaf = { |
21 'drewpca@gmail.com': 'http://bigasterisk.com/foaf.rdf#drewp', | |
22 'kelsimp@gmail.com': 'http://bigasterisk.com/kelsi/foaf.rdf#kelsi', | |
42
530650b3bc40
something changed in pom to break pyjwt. switched to jwskate
drewp@bigasterisk.com
parents:
41
diff
changeset
|
23 }[jwt.claims['email']] |
39 | 24 return URIRef(foaf) |