diff --git a/.github/workflows/docker-image-build.yml b/.github/workflows/docker-image-build.yml index c2c573ca79..44f852dbd7 100644 --- a/.github/workflows/docker-image-build.yml +++ b/.github/workflows/docker-image-build.yml @@ -12,16 +12,6 @@ jobs: runs-on: ubuntu-latest steps: - - name: Azure Container Registry Login - uses: Azure/docker-login@v2 - with: - # Container registry username - username: ${{ secrets.SAMPLEAPP_ACR_USERNAME }} - # Container registry password - password: ${{ secrets.SAMPLEAPP_ACR_PASSWORD }} - # Container registry server url - login-server: sampleappaoaichatgpt.azurecr.io - - uses: actions/checkout@v3 - name: Build the Docker image run: diff --git a/app.py b/app.py index 1290987056..84872aa5fd 100644 --- a/app.py +++ b/app.py @@ -207,7 +207,8 @@ def prepare_model_args(request_body, request_headers): user_json = None if (MS_DEFENDER_ENABLED): authenticated_user_details = get_authenticated_user_details(request_headers) - user_json = get_msdefender_user_json(authenticated_user_details, request_headers) + conversation_id = request_body.get("conversation_id", None) + user_json = get_msdefender_user_json(authenticated_user_details, request_headers, conversation_id) model_args = { "messages": messages, diff --git a/backend/security/ms_defender_utils.py b/backend/security/ms_defender_utils.py index 1c62e782b2..8785c253fb 100644 --- a/backend/security/ms_defender_utils.py +++ b/backend/security/ms_defender_utils.py @@ -1,11 +1,14 @@ import json -def get_msdefender_user_json(authenticated_user_details, request_headers): +def get_msdefender_user_json(authenticated_user_details, request_headers, conversation_id): auth_provider = authenticated_user_details.get('auth_provider') - source_ip = request_headers.get('X-Forwarded-For', request_headers.get('Remote-Addr', '')) + source_ip = request_headers.get('Remote-Addr', '') + header_names = ['User-Agent', 'X-Forwarded-For', 'Forwarded', 'X-Real-IP', 'True-Client-IP', 'CF-Connecting-IP'] user_args = { "EndUserId": authenticated_user_details.get('user_principal_id'), "EndUserIdType": "EntraId" if auth_provider == "aad" else auth_provider, "SourceIp": source_ip.split(':')[0], #remove port + "SourceRequestHeaders": {header: request_headers[header] for header in header_names if header in request_headers}, + "ConversationId": conversation_id, } return json.dumps(user_args) \ No newline at end of file