가볍게 배우고 깊게 즐기고 오래 남기기

Slack & Azure bot || 슬랙봇과 Azure봇을 연결할 때 체크해야할 파라미터 (x-ms-conversation-id) 본문

Programming & Tip

Slack & Azure bot || 슬랙봇과 Azure봇을 연결할 때 체크해야할 파라미터 (x-ms-conversation-id)

Awesomist 2023. 8. 7. 22:11
728x90

 
보안성 검토.
지금 사내 시스템에 GPT를 적용할 때에 많은 실무자들이 겪고 있거나 겪을 예정인 문제 

AI 윤리강령이 각 회사 사규에 들어가기 시작하면서 이 부분은 더더욱 커지고 있다.
GenAI 덕분에 여러가지로 인해 개발은 빨라졌으나 PoC를 일찍이 마치고도
오픈을 못해 발동동 구르고 있을 조직과 실무자들이 참으로 많을 것으로 예상된다.
 

대기업에 비해 방화벽 이슈가 상대적으로 약한 스타트업이나 개인 활용용으로 슬랙과 단순 GPT봇을 연결할 경우,
기존 단순히 연동하는 데에는 아무 문제가 없다.

그러나 Slack Bot을 통해 사내 비서 서비스하는 GPT봇을 구현하고 있는 나의 경우는,
지정 네트워크나 사내 메신저 환경이아니라 약간의 한계가 있다.
 
 
지금 회사는 이전에 몸담았던 대기업들보다도  정보보안정책이 강한 편인데, 
방화벽 적용이 애매한 Slack의 경우는 이 부분을 제어하기 쉽지 않다.
 
우리는 중간에 보안실험과정에서 Azure bot이라는 Stage를 하나 추가해  
슬랙봇의 input message를 인식할 때 비정상적인 접근을 차단하는 시도를 진행했다.
(이 과정도 할 이야기가 많지만 우선 생략하고 후술하겠다. New Slack은 Azurebot과 연동이 불가 )


결과적으로는 SSO - APIM (APIManagement)을 통해 작업을 진행하면 크게 이슈는 없다.
속도와 유지보수 관점에서 AzureBot을 제외하는 과정에서 조금 애를 먹었다.

 
 
 
Slack API -  Azure Bot (을 비롯한 Azure side service) 연결 시에는
슬랙봇 헤더에
x-ms-conversation-id라는 새로운 Key, Value가 생성된다.
 
Azure Bot을 제거할 때 신규 생성된 "x-ms-conversation-id"가 필수 파라미터로 설정되기 때문에,
이 값을 같이 활용해서 진행해야 한다.

 

 

Send tenant ID and conversation ID to the request headers of the bot - Teams

Learn how to route the bot traffic without unpacking the entire payload using tenant ID and conversation ID present in request headers of the bot in Teams.

learn.microsoft.com

Bot Request시 추가되는 파라미터 :  "x-ms-conversation-id"  "x-ms-tenant-id"


(
2023.08 현재 기준)
Azure Bot로그는 그다지 친절하지 않다.
Slack과 연동하는 과정에서는 명확한 로그 메세지를 제공하지 않는 편이라 

이슈만 찾고 어떤 파라미터인지 안내해주지 않는다거나 하는 에러분석, 예외처리 디테일이 조금 떨어진다.
약간 이마 깨져가며 원인을 찾아나가는 과정이 필요하다.


 
역시, 들어오는 건 쉽지만 나갈 때는 쉽지 않은 글로벌 솔루션답다. 
 
 
 
(참고) Azurebot을 심을 때 보안 관점에서의 애로사항
Slack API -> Azure Bot Catch 구조의 경우는
Slack이 생성하는
다수의 IP를 잡는 프로그램이나 물리적인 요소가 필요하다.



 
 

반응형
Comments