Microsoft Graph에 모범 사례 적용
이 단원에서는 Microsoft Graph를 최대한 활용하고 최종 사용자가 애플리케이션의 안정성을 높일 수 있도록 지원할 수 있는 모범 사례를 설명합니다.
인증
Microsoft Graph의 데이터에 액세스하려면 애플리케이션에서 OAuth 2.0 액세스 토큰을 획득하고 다음 메서드 중 하나를 통해 Microsoft Graph에 제공해야 합니다.
- Bearer 토큰으로 HTTP 권한 부여 요청 헤더
- Microsoft Graph 클라이언트 라이브러리를 사용하는 경우 그래프 클라이언트 생성자
Microsoft 인증 라이브러리 API, MSAL을 사용하여 Microsoft Graph에 대한 액세스 토큰을 획득합니다.
동의 및 권한 부여
앱에서 동의 및 권한 부여에 대한 다음 모범 사례를 적용합니다.
최소 권한을 사용합니다. 필요한 권한만 요청하고 필요한 경우에만 권한을 요청합니다. 애플리케이션에서 호출하는 API의 경우 메서드 항목의 권한 섹션을 확인합니다. 예를 들어 사용자 만들기를 참조하고 최소 권한 사용 권한을 선택합니다.
시나리오에 따라 올바른 권한 유형을 사용합니다. 로그인한 사용자가 있는 대화형 애플리케이션을 빌드하는 경우 애플리케이션에서 위임된 권한을 사용해야 합니다. 그러나 애플리케이션이 백그라운드 서비스 또는 디먼과 같은 로그인한 사용자 없이 실행되는 경우 애플리케이션은 애플리케이션 권한을 사용해야 합니다.
주의
대화형 시나리오에 애플리케이션 권한을 사용하면 애플리케이션이 규정 준수 및 보안 위험에 노출될 수 있습니다. 사용자의 권한을 확인하여 정보에 대한 원치 않는 액세스 권한이 없거나 관리자가 구성한 정책을 우회하고 있는지 확인해야 합니다.
최종 사용자 및 관리자 환경을 고려합니다. 최종 사용자 및 관리자 경험에 직접적인 영향을 미칩니다. 예시:
최종 사용자 또는 관리자 중에서 애플리케이션에 동의할 사용자를 고려하고 권한을 적절하게 요청하도록 애플리케이션을 구성합니다.
정적, 동적 및 증분 동의 간의 차이점을 이해해야 합니다.
다중 테넌트 애플리케이션을 고려합니다. 고객에게 다양한 상태의 다양한 애플리케이션 및 동의 제어가 있어야 합니다. 예시:
테넌트 관리자는 최종 사용자가 애플리케이션에 동의하는 기능을 사용하지 않도록 설정할 수 있습니다. 이 경우 관리자는 사용자를 대신하여 동의해야 합니다.
테넌트 관리자는 사용자가 다른 사용자의 프로필을 읽지 못하도록 차단하거나 셀프 서비스 그룹 만들기를 제한된 사용자 집합으로 제한하는 등의 사용자 지정 권한 부여 정책을 설정할 수 있습니다. 이 경우 애플리케이션은 사용자를 대신하여 동작할 때 403 오류 응답을 처리해야 합니다.
효과적으로 응답 처리
Microsoft Graph에 대한 요청에 따라 애플리케이션에서 다양한 유형의 응답을 처리할 수 있도록 준비해야 합니다. 다음은 애플리케이션이 최종 사용자에 대해 안정적으로 예측 가능하게 동작하도록 하기 위해 따라야 하는 가장 중요한 몇 가지 사례입니다. 예시:
페이지 매김: 리소스 컬렉션을 쿼리할 때 Microsoft Graph에서 서버 쪽 페이지 크기 제한으로 인해 여러 페이지에서 결과 집합을 반환할 것으로 예상해야 합니다. 애플리케이션은 응답이 본질적으로 페이징될 가능성을 항상 처리해야 하며,
@odata.nextLink속성을 사용하여 결과 집합의 모든 페이지를 읽을 때까지 다음 페이징된 결과 집합을 얻어야 합니다. 마지막 페이지에는@odata.nextLink속성이 포함되지 않습니다. 자세한 내용은 페이징을 참조하세요.진화 가능한 열거형: 기존 열거형에 멤버를 추가하면 이미 이러한 열거형을 사용하는 애플리케이션이 중단될 수 있습니다. 진화 가능한 열거형은 Microsoft Graph API가 애플리케이션에 대한 주요 변경 없이 기존 열거형에 새 멤버를 추가하는 데 사용하는 메커니즘입니다. 기본적으로 GET 작업은 진화 가능한 열거형 형식의 속성에 대해 알려진 멤버만 반환하며 애플리케이션은 알려진 멤버만 처리해야 합니다. 알 수 없는 멤버를 처리하도록 애플리케이션을 디자인하는 경우 HTTP
Prefer요청 헤더를 사용하여 해당 멤버를 수신하도록 옵트인할 수 있습니다.
로컬로 데이터 저장
애플리케이션은 필요에 따라 실시간으로 데이터를 검색하기 위해 Microsoft Graph에 호출하는 것이 가장 좋습니다. 특정 시나리오에 필요한 경우에만 로컬로 데이터를 캐시하거나 저장해야 합니다. 사용 사례에 사용 약관 및 개인정보처리방침이 적용되며 Microsoft API 사용 약관을 위반하지 않는 경우 애플리케이션은 적절한 보존 및 삭제 정책도 구현해야 합니다.