29 lines
740 B
Python
29 lines
740 B
Python
|
import json
|
||
|
import base64
|
||
|
|
||
|
class AzureUser:
|
||
|
display_name: str
|
||
|
id: str
|
||
|
claims: list
|
||
|
|
||
|
def __init__(self, request):
|
||
|
try:
|
||
|
# X-MS-CLIENT-PRINCIPAL-ID
|
||
|
self.id = request.headers["X-MS-CLIENT-PRINCIPAL-ID"]
|
||
|
|
||
|
# X-MS-CLIENT-PRINCIPAL-NAME
|
||
|
self.id = request.headers["X-MS-CLIENT-PRINCIPAL-NAME"]
|
||
|
|
||
|
# X-MS-CLIENT-PRINCIPAL
|
||
|
claims_json = json.loads(base64.decode(request.headers["X-MS-CLIENT-PRINCIPAL"]))
|
||
|
claims = {}
|
||
|
|
||
|
for claim in claims_json["claims"]:
|
||
|
claims[claim["typ"]] = claim["val"]
|
||
|
|
||
|
self.claims = claims
|
||
|
except:
|
||
|
self.display_name = "Anon"
|
||
|
self.id = "anon"
|
||
|
|