인증은 호출자에 대한 정보를 증명합니다. 인증에 따라 발신자가 이 고객의 보고서를 검색할 수 있는지 또는 이 작업을 수행할 수 있는지가 결정됩니다. 유효한 API 자격 증명은 테넌트 경계를 둘러싼 지름길이 되어서는 안 됩니다. 엔드포인트나 백그라운드 작업을 추가하기 전에 권한 매트릭스부터 시작하세요.
요청된 개체에 ID 바인딩
지원되는 인증 메커니즘을 통해 호출자의 ID를 확인한 다음 신뢰할 수 있는 서버 측 상태에서 승인된 테넌트 및 작업 범위를 가져옵니다. URL 또는 요청 본문의 테넌트 ID를 권한 증명이 아닌 요청된 대상으로 처리합니다. 호출자의 실제 부여와 비교하여 보고서, 내보내기 작업 및 다운로드 아티팩트를 확인하세요.
OWASP의 승인 치트 시트 최소한의 권한을 권장하고 기본적으로 거부하며 모든 요청에 대해 권한 검증을 수행합니다. 이러한 원칙을 비동기 작업자와 다운로드 링크 및 첫 번째 API 호출에 적용하세요. 합법적으로 생성된 내보내기는 개체 ID가 추측하기 쉽기 때문에 나중에 다른 테넌트가 다운로드할 수 없어야 합니다.
변경 권한과 읽기 액세스를 분리하세요.
보고서 리더는 승인된 도메인 데이터를 검색할 수 있지만 자동으로 DNS 쓰기 권한을 얻어서는 안 됩니다. DNS 운영자는 저장된 보고서 기록에 액세스할 필요가 없을 수도 있습니다. 감사자는 원시 메시지가 아닌 제한된 증거 보기를 요구할 수 있습니다. 각 역할에 허용된 개체와 작업을 문서화하고 일반 로그 및 내보내기 외부에서 비밀 관리를 유지합니다.
테넌트 A의 보고서를 읽는 용도로만 자동화 자격 증명이 승인되었다고 가정해 보겠습니다. 테넌트 A에 대한 DNS 변경과 테넌트 B에 대한 보고서 읽기는 유효한 인증에도 불구하고 해당 권한 부여에 따라 거부되어야 합니다. 별도의 명시적으로 승인된 운영자 부여에는 자체 개체 및 작업 확인이 필요합니다. 이는 구현된 권한 매트릭스나 EmailAuth 역할에 대한 설명이 아닌 가상으로 예상되는 결정입니다.
부정적인 테스트를 수용의 일부로 만들기
허용된 동일 테넌트 보고서 읽기를 실행한 후 요청된 테넌트만 변경하세요. 누락된 읽기 범위 및 취소된 보안 주체를 사용하여 반복합니다. 또한 개체 수준 ID, 저장된 내보내기, 대기 중인 작업 및 변경된 그룹 멤버십에 대한 실제 테스트를 계획합니다. 다른 고객의 계정을 조사하는 대신 승인된 합성 테넌트와 무해한 데이터를 사용하세요.
승인된 각 테스트에 대한 실제 결정과 공개된 응답 필드를 기록합니다. 거부된 요청은 메타데이터, 개수, 다운로드 링크 또는 캐시된 결과를 통해 개인 개체 세부 정보를 유출해서는 안 됩니다. 모든 사람을 거부하는 엔드포인트와 올바른 적용을 구별하려면 유효한 범위 읽기를 포함하세요. 여기서는 토큰 시스템, OAuth 흐름 또는 생산 인증 테스트가 제공되거나 실행되지 않습니다.
수명주기 동안 보조금 운영
보조금 소유자, 승인된 목적, 테넌트 범위, 만료 또는 검토 트리거 및 취소 경로를 기록합니다. 승인된 비밀 시스템에 자격 증명 자료를 저장하고, 통제된 절차에 따라 순환하며, 비밀 자체를 기록하지 않고 사용을 감사합니다. 지연된 작업 수행 시 권한을 다시 확인합니다. 대기 중인 작업은 취소 후 권한을 무기한 유지해서는 안 됩니다.
기본 데이터 민감도를 검토합니다. RFC 9990 설명하다 집계 보고서 콘텐츠 및 보안 고려 사항; 보고서 메타데이터는 여전히 통제된 공개를 받을 가치가 있습니다. 인증 실패 시 다른 테넌트의 개인 객체를 확인하지 않고 적절한 거부를 반환합니다. 테넌트 간 데이터가 발견되면 노출을 억제하고 조직의 사고 절차를 호출합니다. 단순히 UI를 변경하고 API가 안전하다고 가정하지 마십시오.
OWASP의 다중 테넌트 지침, 특히 비동기 작업, 캐시/세션 및 파일 저장 섹션은 초기 요청 이상의 범위를 적용하고 지연된 실행 중에 시간에 민감한 권한을 다시 확인하는 것을 지원합니다.