Skip to content

Commit

Permalink
Merge branch 'main' into PSL-US-7771-UT
Browse files Browse the repository at this point in the history
  • Loading branch information
Roopan-Microsoft authored Oct 14, 2024
2 parents 848a990 + f76ca6a commit 45ae3fa
Show file tree
Hide file tree
Showing 12 changed files with 401 additions and 369 deletions.
7 changes: 3 additions & 4 deletions .github/workflows/pylint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pylint
- name: Analysing the code with pylint
run: |
pylint $(git ls-files '*.py')
pip install -r ClientAdvisor/App/requirements.txt
- name: Run flake8
run: flake8 --config=ClientAdvisor/App/.flake8 ClientAdvisor/App
4 changes: 4 additions & 0 deletions ClientAdvisor/App/.flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[flake8]
max-line-length = 88
extend-ignore = E501, E203
exclude = .venv, frontend,
316 changes: 165 additions & 151 deletions ClientAdvisor/App/app.py

Large diffs are not rendered by default.

33 changes: 18 additions & 15 deletions ClientAdvisor/App/backend/auth/auth_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,41 @@
import json
import logging


def get_authenticated_user_details(request_headers):
user_object = {}

## check the headers for the Principal-Id (the guid of the signed in user)
# check the headers for the Principal-Id (the guid of the signed in user)
if "X-Ms-Client-Principal-Id" not in request_headers.keys():
## if it's not, assume we're in development mode and return a default user
# if it's not, assume we're in development mode and return a default user
from . import sample_user

raw_user_object = sample_user.sample_user
else:
## if it is, get the user details from the EasyAuth headers
raw_user_object = {k:v for k,v in request_headers.items()}
# if it is, get the user details from the EasyAuth headers
raw_user_object = {k: v for k, v in request_headers.items()}

user_object['user_principal_id'] = raw_user_object.get('X-Ms-Client-Principal-Id')
user_object['user_name'] = raw_user_object.get('X-Ms-Client-Principal-Name')
user_object['auth_provider'] = raw_user_object.get('X-Ms-Client-Principal-Idp')
user_object['auth_token'] = raw_user_object.get('X-Ms-Token-Aad-Id-Token')
user_object['client_principal_b64'] = raw_user_object.get('X-Ms-Client-Principal')
user_object['aad_id_token'] = raw_user_object.get('X-Ms-Token-Aad-Id-Token')
user_object["user_principal_id"] = raw_user_object.get("X-Ms-Client-Principal-Id")
user_object["user_name"] = raw_user_object.get("X-Ms-Client-Principal-Name")
user_object["auth_provider"] = raw_user_object.get("X-Ms-Client-Principal-Idp")
user_object["auth_token"] = raw_user_object.get("X-Ms-Token-Aad-Id-Token")
user_object["client_principal_b64"] = raw_user_object.get("X-Ms-Client-Principal")
user_object["aad_id_token"] = raw_user_object.get("X-Ms-Token-Aad-Id-Token")

return user_object


def get_tenantid(client_principal_b64):
tenant_id = ''
if client_principal_b64:
tenant_id = ""
if client_principal_b64:
try:
# Decode the base64 header to get the JSON string
decoded_bytes = base64.b64decode(client_principal_b64)
decoded_string = decoded_bytes.decode('utf-8')
decoded_string = decoded_bytes.decode("utf-8")
# Convert the JSON string1into a Python dictionary
user_info = json.loads(decoded_string)
# Extract the tenant ID
tenant_id = user_info.get('tid') # 'tid' typically holds the tenant ID
tenant_id = user_info.get("tid") # 'tid' typically holds the tenant ID
except Exception as ex:
logging.exception(ex)
return tenant_id
return tenant_id
74 changes: 37 additions & 37 deletions ClientAdvisor/App/backend/auth/sample_user.py
Original file line number Diff line number Diff line change
@@ -1,39 +1,39 @@
sample_user = {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "en",
"Client-Ip": "22.222.222.2222:64379",
"Content-Length": "192",
"Content-Type": "application/json",
"Cookie": "AppServiceAuthSession=/AuR5ENU+pmpoN3jnymP8fzpmVBgphx9uPQrYLEWGcxjIITIeh8NZW7r3ePkG8yBcMaItlh1pX4nzg5TFD9o2mxC/5BNDRe/uuu0iDlLEdKecROZcVRY7QsFdHLjn9KB90Z3d9ZeLwfVIf0sZowWJt03BO5zKGB7vZgL+ofv3QY3AaYn1k1GtxSE9HQWJpWar7mOA64b7Lsy62eY3nxwg3AWDsP3/rAta+MnDCzpdlZMFXcJLj+rsCppW+w9OqGhKQ7uCs03BPeon3qZOdmE8cOJW3+i96iYlhneNQDItHyQqEi1CHbBTSkqwpeOwWP4vcwGM22ynxPp7YFyiRw/X361DGYy+YkgYBkXq1AEIDZ44BCBz9EEaEi0NU+m6yUOpNjEaUtrJKhQywcM2odojdT4XAY+HfTEfSqp0WiAkgAuE/ueCu2JDOfvxGjCgJ4DGWCoYdOdXAN1c+MenT4OSvkMO41YuPeah9qk9ixkJI5s80lv8rUu1J26QF6pstdDkYkAJAEra3RQiiO1eAH7UEb3xHXn0HW5lX8ZDX3LWiAFGOt5DIKxBKFymBKJGzbPFPYjfczegu0FD8/NQPLl2exAX3mI9oy/tFnATSyLO2E8DxwP5wnYVminZOQMjB/I4g3Go14betm0MlNXlUbU1fyS6Q6JxoCNLDZywCoU9Y65UzimWZbseKsXlOwYukCEpuQ5QPT55LuEAWhtYier8LSh+fvVUsrkqKS+bg0hzuoX53X6aqUr7YB31t0Z2zt5TT/V3qXpdyD8Xyd884PqysSkJYa553sYx93ETDKSsfDguanVfn2si9nvDpvUWf6/R02FmQgXiaaaykMgYyIuEmE77ptsivjH3hj/MN4VlePFWokcchF4ciqqzonmICmjEHEx5zpjU2Kwa+0y7J5ROzVVygcnO1jH6ZKDy9bGGYL547bXx/iiYBYqSIQzleOAkCeULrGN2KEHwckX5MpuRaqTpoxdZH9RJv0mIWxbDA0kwGsbMICQd0ZODBkPUnE84qhzvXInC+TL7MbutPEnGbzgxBAS1c2Ct4vxkkjykOeOxTPxqAhxoefwUfIwZZax6A9LbeYX2bsBpay0lScHcA==",
"Disguised-Host": "your_app_service.azurewebsites.net",
"Host": "your_app_service.azurewebsites.net",
"Max-Forwards": "10",
"Origin": "https://your_app_service.azurewebsites.net",
"Referer": "https://your_app_service.azurewebsites.net/",
"Sec-Ch-Ua": "\"Microsoft Edge\";v=\"113\", \"Chromium\";v=\"113\", \"Not-A.Brand\";v=\"24\"",
"Sec-Ch-Ua-Mobile": "?0",
"Sec-Ch-Ua-Platform": "\"Windows\"",
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "same-origin",
"Traceparent": "00-24e9a8d1b06f233a3f1714845ef971a9-3fac69f81ca5175c-00",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.42",
"Was-Default-Hostname": "your_app_service.azurewebsites.net",
"X-Appservice-Proto": "https",
"X-Arr-Log-Id": "4102b832-6c88-4c7c-8996-0edad9e4358f",
"X-Arr-Ssl": "2048|256|CN=Microsoft Azure TLS Issuing CA 02, O=Microsoft Corporation, C=US|CN=*.azurewebsites.net, O=Microsoft Corporation, L=Redmond, S=WA, C=US",
"X-Client-Ip": "22.222.222.222",
"X-Client-Port": "64379",
"X-Forwarded-For": "22.222.222.22:64379",
"X-Forwarded-Proto": "https",
"X-Forwarded-Tlsversion": "1.2",
"X-Ms-Client-Principal": "your_base_64_encoded_token",
"X-Ms-Client-Principal-Id": "00000000-0000-0000-0000-000000000000",
"X-Ms-Client-Principal-Idp": "aad",
"X-Ms-Client-Principal-Name": "[email protected]",
"X-Ms-Token-Aad-Id-Token": "your_aad_id_token",
"X-Original-Url": "/chatgpt",
"X-Site-Deployment-Id": "your_app_service",
"X-Waws-Unencoded-Url": "/chatgpt"
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "en",
"Client-Ip": "22.222.222.2222:64379",
"Content-Length": "192",
"Content-Type": "application/json",
"Cookie": "AppServiceAuthSession=/AuR5ENU+pmpoN3jnymP8fzpmVBgphx9uPQrYLEWGcxjIITIeh8NZW7r3ePkG8yBcMaItlh1pX4nzg5TFD9o2mxC/5BNDRe/uuu0iDlLEdKecROZcVRY7QsFdHLjn9KB90Z3d9ZeLwfVIf0sZowWJt03BO5zKGB7vZgL+ofv3QY3AaYn1k1GtxSE9HQWJpWar7mOA64b7Lsy62eY3nxwg3AWDsP3/rAta+MnDCzpdlZMFXcJLj+rsCppW+w9OqGhKQ7uCs03BPeon3qZOdmE8cOJW3+i96iYlhneNQDItHyQqEi1CHbBTSkqwpeOwWP4vcwGM22ynxPp7YFyiRw/X361DGYy+YkgYBkXq1AEIDZ44BCBz9EEaEi0NU+m6yUOpNjEaUtrJKhQywcM2odojdT4XAY+HfTEfSqp0WiAkgAuE/ueCu2JDOfvxGjCgJ4DGWCoYdOdXAN1c+MenT4OSvkMO41YuPeah9qk9ixkJI5s80lv8rUu1J26QF6pstdDkYkAJAEra3RQiiO1eAH7UEb3xHXn0HW5lX8ZDX3LWiAFGOt5DIKxBKFymBKJGzbPFPYjfczegu0FD8/NQPLl2exAX3mI9oy/tFnATSyLO2E8DxwP5wnYVminZOQMjB/I4g3Go14betm0MlNXlUbU1fyS6Q6JxoCNLDZywCoU9Y65UzimWZbseKsXlOwYukCEpuQ5QPT55LuEAWhtYier8LSh+fvVUsrkqKS+bg0hzuoX53X6aqUr7YB31t0Z2zt5TT/V3qXpdyD8Xyd884PqysSkJYa553sYx93ETDKSsfDguanVfn2si9nvDpvUWf6/R02FmQgXiaaaykMgYyIuEmE77ptsivjH3hj/MN4VlePFWokcchF4ciqqzonmICmjEHEx5zpjU2Kwa+0y7J5ROzVVygcnO1jH6ZKDy9bGGYL547bXx/iiYBYqSIQzleOAkCeULrGN2KEHwckX5MpuRaqTpoxdZH9RJv0mIWxbDA0kwGsbMICQd0ZODBkPUnE84qhzvXInC+TL7MbutPEnGbzgxBAS1c2Ct4vxkkjykOeOxTPxqAhxoefwUfIwZZax6A9LbeYX2bsBpay0lScHcA==",
"Disguised-Host": "your_app_service.azurewebsites.net",
"Host": "your_app_service.azurewebsites.net",
"Max-Forwards": "10",
"Origin": "https://your_app_service.azurewebsites.net",
"Referer": "https://your_app_service.azurewebsites.net/",
"Sec-Ch-Ua": '"Microsoft Edge";v="113", "Chromium";v="113", "Not-A.Brand";v="24"',
"Sec-Ch-Ua-Mobile": "?0",
"Sec-Ch-Ua-Platform": '"Windows"',
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "same-origin",
"Traceparent": "00-24e9a8d1b06f233a3f1714845ef971a9-3fac69f81ca5175c-00",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.42",
"Was-Default-Hostname": "your_app_service.azurewebsites.net",
"X-Appservice-Proto": "https",
"X-Arr-Log-Id": "4102b832-6c88-4c7c-8996-0edad9e4358f",
"X-Arr-Ssl": "2048|256|CN=Microsoft Azure TLS Issuing CA 02, O=Microsoft Corporation, C=US|CN=*.azurewebsites.net, O=Microsoft Corporation, L=Redmond, S=WA, C=US",
"X-Client-Ip": "22.222.222.222",
"X-Client-Port": "64379",
"X-Forwarded-For": "22.222.222.22:64379",
"X-Forwarded-Proto": "https",
"X-Forwarded-Tlsversion": "1.2",
"X-Ms-Client-Principal": "your_base_64_encoded_token",
"X-Ms-Client-Principal-Id": "00000000-0000-0000-0000-000000000000",
"X-Ms-Client-Principal-Idp": "aad",
"X-Ms-Client-Principal-Name": "[email protected]",
"X-Ms-Token-Aad-Id-Token": "your_aad_id_token",
"X-Original-Url": "/chatgpt",
"X-Site-Deployment-Id": "your_app_service",
"X-Waws-Unencoded-Url": "/chatgpt",
}
Loading

0 comments on commit 45ae3fa

Please sign in to comment.