다음을 통해 공유

Graph API 의 POST/v1.0/chats 에 문의사항이 있습니다

황윤규 [yoongyu] 20 평판 포인트
2025-12-30T00:34:08.3866667+00:00

안녕하세요. MS Graph 의 엔드포인트 중,

/v1.0/chats에 문의사항이 있습니다.

저희 넥슨코리아는 nexon.co.kr 이메일 도메인을 사용 중이고,

저희의 자회사인 네오플은 neople.co.kr 도메인을 사용 중입니다.

두 회사는 얼마 전, 테넌트를 통합하였습니다.

nexon.co.kr 유저로 Graph API를 호출 하였을 때,

/v1.0/users/{email}을 사용하였을 때는 두 이메일 도메인에 대한 유저 모두 조회가 가능하지만,

/v1.0/chats 를 neople.co.kr 유저와의 채팅방 조회 시도 시, 아래와 같은 에러가 발생합니다.

//요청바디
{
    "members":[
        {
            "******@odata.bind":"https://graph.microsoft.com/v1.0/users('***@nexon.co.kr')",
            "@odata.type":"#microsoft.graph.aadUserConversationMember",
            "roles":["owner"]
        },
        {
            "******@odata.bind":"https://graph.microsoft.com/v1.0/users('***@neople.co.kr')",
            "@odata.type":"#microsoft.graph.aadUserConversationMember",
            "roles":["owner"]
        }
    ],
    "chatType":"oneOnOne"
}


//응답바디
{
    "error": {
        "code": "Forbidden",
        "message": "AclCheckFailed",
        "innerError": {
            "code": "40311",
            "message": "RosterCreationNotAllowed-Create Thread: One or more members cannot be added to the unique roster thread",
            "date": "2025-12-30T00:20:58",
            "request-id": "[운영자 주: 개인 정보는 삭제되었습니다]",
            "client-request-id": "[운영자 주: 개인 정보는 삭제되었습니다]"
        }
    }
}

단 요청바디의 neople.co.kr의 유저를 **이메일이 아닌, **/v1.0/users/{email}에서 획득한 id로 조회 시,

성공합니다.

같은 구성임에도, 이메일일 때와 id일 때 결과가 다른 것인데요, 이 부분 확인 부탁드립니다.

감사합니다.

Microsoft 365 및 Office | 기타
댓글 0개 설명 없음

질문 작성자가 수락한 답변

Michelle-N 17,775 평판 포인트 Microsoft 외부 직원 중재자
2025-12-30T10:56:05.3133333+00:00

저희 포럼은 공개 플랫폼이므로, 질문 설명에 포함된 개인 정보는 가려지도록 수정하겠습니다. 개인정보 보호를 위해 다음번에 오류 또는 기타 정보를 게시하실 때는 개인 정보나 기관 정보를 반드시 가려주시기 바랍니다.

참고: 이 답변은 자동으로 번역되었습니다. 그 결과 문법 오류나 어색한 표현이 포함될 수 있습니다.

안녕하세요 @황윤규 [yoongyu]

Microsoft Q&A 포럼을 통해 연락해 주셔서 감사합니다.

제공해주신 정보를 바탕으로, 현재 테넌트 통합 환경에서 Graph API(/v1.0/chats)를 사용하여 채팅방을 생성할 때, 통합된 도메인(neople.co.kr) 사용자의 이메일(UPN)을 사용하면 오류(403 Forbidden)가 발생하지만, User ID(GUID)를 사용하면 성공하는 문제에 대해 문의하신 것으로 이해했습니다.

커뮤니티 모더레이터로서 관련 문서와 정보를 바탕으로 최대한 도움을 드리겠습니다.

기술 문서에 따르면, 테넌트가 막 통합되었거나 여러 개의 확인된 도메인(Multiple verified domains)을 사용하는 환경에서는, 특히 /v1.0/chats 엔드포인트 사용 시 이메일 주소를 통한 사용자 바인딩(Binding)이 항상 정확하게 보장되지 않을 수 있습니다. Graph API는 AAD의 User ID (GUID)를 사용할 때 가장 확실한 식별을 보장하며 안정적으로 작동합니다.

이에 대한 기술적인 배경은 다음과 같습니다:

테넌트를 통합하거나 다른 테넌트에서 사용자를 가져올 때, Teams의 ACL(액세스 제어 목록)이나 메타데이터가 완전히 동기화되지 않았거나, Teams 시스템이 보조 도메인을 기본 도메인만큼 일관되게 처리하지 못하는 경우가 발생할 수 있습니다. 발생한 AclCheckFailed 또는 RosterCreationNotAllowed 오류는 시스템이 Teams 채팅의 내부 **로스터(Roster)**에 구성원을 확인하거나 추가할 수 없음을 의미합니다. 즉, 이메일만으로는 구성원의 ID가 유일하게 식별(Resolve)되지 않아 로스터 생성이 불가능하므로, Teams가 수락할 수 있는 ID를 사용해야 합니다.

/v1.0/chats를 사용할 때 API는 다음과 같은 추가 확인 절차를 수행할 수 있습니다:

  • 도메인 구성 상태 (Teams/SIP용 DNS 레코드)
  • 페더레이션(Federation) 구성
  • Teams 라이선스 상태 만약 보조 도메인 구성이 완벽하지 않다면 UPN(이메일) 사용은 실패할 수 있습니다. 반면, Object ID를 사용하면 도메인 기반의 조회 과정을 건너뛰기 때문에 성공적으로 작동하는 것입니다.

따라서 이 경우, 현재 가장 안정적인 방법인 Object ID를 계속해서 임시 해결책으로 사용하시는 것을 권장합니다.

그 후, 도메인 및 테넌트 구성을 점검해 보시기 바랍니다. 다음 사항을 확인해 주십시오:

  • 두 도메인 모두 Azure AD (Entra ID)에서 '확인됨(Verified)' 상태여야 합니다.
  • Teams를 위한 DNS 레코드가 완벽하게 설정되어 있어야 합니다.

마지막으로, 테넌트 통합 후 동기화 작업이 완전히 마무리될 때까지 24~48시간 정도 기다려 주시기 바랍니다.


답변이 도움이 된다면 ""답변 수락""을 클릭하고 친절하게 추천해 주세요. 이 답변에 대해 추가 질문이 있으시면 ""댓글""을 클릭해 주세요.

참고: 이 스레드와 관련된 이메일 알림을 받으려면 당사 문서의 안내 절차를 따라 이메일 알림을 활성화해 주시기 바랍니다.

이 대답이 도움이 되었나요?

댓글 0개 설명 없음

0 추가 답변

정렬 기준: 가장 유용함

답변

질문 작성자는 답변을 '승인됨'으로 표시하고, 중재자는 답변을 '추천됨'으로 표시할 수 있습니다. 이를 통해 사용자는 해당 답변이 작성자의 문제를 해결했다는 것을 알 수 있습니다.