Skip to content

Commit

Permalink
Add more headers and conversation-id to Defender for AI (#858)
Browse files Browse the repository at this point in the history
  • Loading branch information
slreznit committed Jun 19, 2024
1 parent 7fac325 commit cd03c6a
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 3 deletions.
3 changes: 2 additions & 1 deletion app.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
7 changes: 5 additions & 2 deletions backend/security/ms_defender_utils.py
Original file line number Diff line number Diff line change
@@ -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)

0 comments on commit cd03c6a

Please sign in to comment.