#Microsoft Graph
15 편의 글
Teams 봇 입문: Bot Framework와 Graph API의 역할 구분
Teams에서 대화형 봇을 만들 때 필요한 구성 요소를 정리합니다. Graph API만으로 봇을 대신할 수 없는 이유(봇 정체성·앱 권한 제약), Azure Bot 리소스와 메시징 엔드포인트로 이루어진 봇의 동작 구조, 사용자가 먼저 말을 걸지 않아도 메시지를 보내는 선제 메시지와 대화 참조·선제 설치 우회, 멘션 없이 채널 메시지를 읽는 RSC 권한, 어댑티브 카드까지, 알림 봇에서 대화형 봇으로 가는 길을 다룹니다.
Power Automate vs Graph API: 업무 자동화, 언제 무엇을 쓰나
Microsoft 365 자동화의 두 경로를 비교합니다. 커넥터를 조립하는 로우코드 도구 Power Automate와 코드로 직접 호출하는 Graph API가 각각 잘하는 것, 트리거·승인 흐름·시민 개발이라는 Power Automate의 강점과 볼륨·복잡도·버전 관리에서 드러나는 한계, 프리미엄 커넥터와 라이선스라는 숨은 변수, 그리고 두 도구를 섞어 쓰는 실무 분업 기준까지 다룹니다.
Microsoft Graph로 Excel 리포트 자동화: 세션, 테이블, 차트 이미지
Excel 파일을 열지 않고 코드로 읽고 쓰는 Graph의 workbook API를 정리합니다. 매 호출 파일을 다시 여는 비효율을 없애는 세션의 세 가지 모드와 persistChanges의 의미, usedRange와 테이블로 데이터를 읽고 행을 추가하는 법, 차트를 만들고 이미지로 뽑아 리포트에 넣는 법, 위임 권한 중심이라는 Excel API 특유의 권한 제약과 실무 우회, 만료·재시도 같은 운영 주의점까지 다룹니다.
Entra ID 자동화 #5 PIM과 감사: 상시 관리자 없애기, 로그와 액세스 리뷰
트랙 마지막 편으로 권한과 감사를 다룹니다. 상시 관리자 권한을 자격 부여와 시간제 활성화로 바꾸는 PIM의 구조, Graph의 roleEligibilityScheduleRequests와 셀프 활성화 API, 역할 할당 가능 그룹과 조합하는 패턴, 감사 로그와 로그인 로그를 API로 수집해 이상 징후에 알림을 거는 법, 접근 권한의 정기 재검토를 자동화하는 액세스 리뷰, 그리고 트랙 전체의 도입 순서 정리까지 다룹니다.
Entra ID 자동화 #4 조건부 액세스: 정책을 코드로 관리하기
로그인 순간의 방어선인 조건부 액세스를 자동화 관점에서 다룹니다. 신호·결정·적용이라는 정책의 if-then 구조, Graph API의 conditionalAccess 엔드포인트로 정책을 CRUD하는 법, 정책을 소스 관리와 리뷰를 거쳐 배포하는 policy-as-code 흐름, 새 정책을 반드시 report-only로 먼저 돌려야 하는 이유, 비상 계정을 모든 정책에서 제외하는 원칙, 실수로 지운 정책의 30일 복원까지 다룹니다.
Entra ID 자동화 #3 그룹 설계: 동적 그룹, 그룹 기반 라이선스, 액세스 패키지
접근 관리의 단위인 그룹을 자동화 관점에서 설계합니다. 보안 그룹과 Microsoft 365 그룹의 용도 구분, 속성 기반 규칙으로 멤버십이 자동 계산되는 동적 그룹과 P1 라이선스 요건, 규칙 문법과 처리 지연이라는 운영 특성, 그룹에 라이선스를 붙여 입퇴장을 자동화하는 그룹 기반 라이선스, 역할 할당 가능 그룹의 보안 경계, 그리고 셀프서비스 접근 요청을 제품화한 액세스 패키지까지 다룹니다.
Entra ID 자동화 #2 사용자 수명 주기: 생성, 비활성화, 그리고 수명 주기 워크플로
입사·이동·퇴사를 코드로 처리하는 방법을 다룹니다. Graph API로 사용자를 만들 때 속성을 표준화해야 하는 이유, 초기 자격 증명을 임시 액세스 패스로 전달하는 법, 퇴사 처리에서 삭제보다 비활성화가 먼저인 이유와 30일 소프트 삭제, 라이선스는 개인 할당보다 그룹 기반이 기본인 이유, 그리고 이 흐름 전체를 제품 기능으로 제공하는 Entra 수명 주기 워크플로와 HR 연동 프로비저닝까지 다룹니다.
Entra ID 자동화 #1 전체 그림: 테넌트, 디렉터리 객체, JML 수명 주기
Microsoft Entra ID 관리 업무를 코드로 자동화하는 시리즈의 첫 편입니다. Azure AD에서 이름이 바뀐 Entra ID의 위치, 테넌트와 사용자·그룹·앱·디바이스라는 디렉터리 객체의 구조, 계정 관리 자동화의 뼈대가 되는 입사·이동·퇴사(JML) 모델, Graph API·PowerShell·IaC라는 도구 지형, Free·P1·P2·Governance로 갈리는 라이선스와 기능의 관계까지 다룹니다.
Microsoft Graph 실무 입문 #7 운영: 스로틀링, 페이지네이션, delta 쿼리, 변경 알림
Graph 자동화를 운영 수준으로 끌어올립니다. 429와 Retry-After를 존중하는 재시도, 놓치면 데이터가 잘리는 페이지네이션(@odata.nextLink), 폴링을 대체하는 delta 쿼리(deltaLink 상태 관리), 변경 알림 구독(검증 핸드셰이크·갱신·lifecycleNotificationUrl), JSON 배칭까지 시리즈를 마무리합니다.
Microsoft Graph 실무 입문 #6 Teams 연동: 메시지 읽기와 알림 보내기의 세 가지 경로
Graph의 Teams 연동에서 가장 많이 부딪히는 벽을 정면으로 다룹니다. 팀·채널·메시지 읽기, 그리고 "서버가 채널에 알림을 보내는" 시나리오에서 application 권한이 막혀 있는 이유(마이그레이션 전용), 대안이 되는 세 가지 경로(delegated 자동화 계정, Workflows 수신 웹훅, 봇)의 선택 기준을 정리합니다.
Microsoft Graph 실무 입문 #5 OneDrive와 SharePoint 파일 다루기: 업로드 세션과 공유
Graph로 파일을 자동화합니다. drive와 driveItem이라는 공통 모델, 개인 OneDrive와 SharePoint 사이트 드라이브에 접근하는 경로 차이, 다운로드와 250MB까지의 단순 업로드, 대용량 파일의 업로드 세션(320KiB 배수 청크·재개), 공유 링크 생성, Sites.Selected로 권한 좁히기까지 다룹니다.
Microsoft Graph 실무 입문 #4 메일과 캘린더 자동화: 읽기, 보내기, 일정 생성
Graph로 Outlook 메일과 캘린더를 자동화합니다. 수신함 조회와 필터링, 보고서 메일 발송(sendMail)과 대량 발송 시의 주의점, 첨부 파일 처리, 회의 일정 생성과 참석자 초대, 회의실 가용성 조회(getSchedule), 시간대 처리라는 단골 함정까지 실무 코드로 다룹니다.