테넌트 전체에서 요청 인증
다중 테넌트 애플리케이션을 만들 때 다른 테넌트에 있는 리소스에 대한 인증 요청을 처리해야 할 수 있습니다. 일반적인 시나리오는 한 테넌트에 있는 가상 머신이 다른 테넌트에서 가상 네트워크에 가입해야 하는 경우입니다. Azure Resource Manager는 보조 토큰을 저장하여 다른 테넌트에 대한 요청을 인증하기 위한 헤더 값을 제공합니다.
인증에 대한 헤더 값
요청에는 다음 인증 헤더 값이 있습니다.
헤더 이름 | 설명 | 예제 값 |
---|---|---|
Authorization | 기본 토큰 | 전달자 <기본 토큰> |
x-ms-authorization-auxiliary | 보조 토큰 | Bearer <auxiliary-token1>; EncryptedBearer <auxiliary-token2>; Bearer <auxiliary-token3> |
보조 헤더는 최대 세 개의 보조 토큰을 유지할 수 있습니다.
다중 테넌트 앱의 코드에서 다른 테넌트에 대한 인증 토큰을 가져와 보조 헤더에 저장합니다. 사용자 또는 애플리케이션은 다른 테넌트에 대한 게스트로 초대되어야 합니다.
요청 처리
앱이 Resource Manager에 요청을 보내면 기본 토큰의 ID로 요청이 실행됩니다. 기본 토큰은 유효하고 노출되지 않아야 합니다. 이 토큰은 구독을 관리할 수 있는 테넌트에서 온 토큰이어야 합니다.
요청의 다른 테넌트의 리소스를 참조하는 경우 Resource Manager는 보조 토큰을 확인하여 요청을 처리할 수 있는지 여부를 확인합니다. 헤더의 모든 보조 토큰은 유효하고 만료되지 않아야 합니다. 토큰이 만료되면 Resource Manager는 401 응답 코드를 반환합니다. 응답은 유효하지 않은 토큰에서 클라이언트 ID 및 테넌트 ID를 포함합니다. 보조 헤더에 테넌트에 대한 유효한 토큰이 포함되어 있으면 테넌트 간 요청이 처리됩니다.