1

아래 이미지는 기본 HTTP 인증을 보여줍니다. 클라이언트는 /family 리소스를 요청하고 자신을 식별하도록 요청받습니다. 이제는 /family에 액세스 할 수 있습니다. 클라이언트는 또한 패밀리 영역에있는 리소스 인 /family/photos/kids을 묻습니다.후속 요청에 대한 기본 HTTP 인증

클라이언트가 /family 리소스에 대해 이미 식별되었지만 /family/photos/kids에 대해서도 확인되지 않았습니다. 그들은 같은 영역에 있지만 서버는 동일한 클라이언트가 요청을 발행했는지 여부를 알지 못합니다. 아니면 그렇습니까? 서버는이 특정 클라이언트가 이후 요청시 /family/photos/kids에 액세스하도록 허용된다는 것을 어떻게 알 수 있습니까? 사용자가 인증 한 후에는 요청할 때마다 암호와 사용자 이름이 전송됩니까? 클라이언트가 요청할 때마다 팝업을 통해 질문합니까? 쿠키는 첫 번째 인증시 설정됩니까?

enter image description here

답변

1

기본 인증은 클라이언트가 전송 헤더가 필요합니다. (: 암호 사용자 이름) 아니오 쿠키 또는 서버 세션 클라이언트가 자원을 요청

, 토큰이 base64로 인 인증 헤더

GET /family 
Authorization: Basic token 

에게 보내지 않습니다. 사용자 이름 뒤에 ':'및 암호가 기본 64로 인코딩 된 경우

예를 들어 GET 요청과 같이 브라우저에서 보호 된 자원을 요청하고 헤더를 제공하지 않으면 브라우저에서 자동 맹호 양식을 표시하고 기억합니다 동일한 도메인의 후속 요청

+0

들러 주셔서 감사합니다. 따라서 base64로 인코딩 된 credentilas와 함께 Authorization 헤더는이 전체 도메인이나 그/가족에 대한 모든 후속 요청을 보냅니 까?/가족/사진/어린이들에게도 보낼 수 있습니까? 프록시 인증에도 동일한 문제가 발생합니까? – sanjihan

+0

클라이언트는 각 요청에서 헤더를 전송해야합니다. 브라우저를 사용하여 사용자에게 자격 증명을 요청하면 동일한 도메인에 대해 해당 자격 증명을 사용합니다. Apache와 같은 프록시를 사용하여 인증을 관리 할 수 ​​있습니다. – pedrofb