2016-12-18 4 views
1

특정 단계를 거쳐 Grafana에 연결되는 Laravel App을 구축 중입니다. 몇 단계를 완료 한 후 사용자가 인증 된 Grafana 페이지로 리디렉션되도록합니다.AuthProxy를 사용하여 Laravel Controller 내부에서 grafana로 리디렉션

raintank의 블로그에서 grafana auth proxy를 설정했습니다.

하지만 인증 된 grafana 대시 보드 페이지를 표시 할 수 있도록 Laravel 컨트롤러 내부로 리디렉션 할 코드를 어디에 삽입해야하는지 혼란 스럽습니다.

기본 localhost : 3000이 작동하지만 내 혼란스러운 점은 X-WEBAUTH-USER와 사용자 이름을 컨트롤러 또는 여기에 삽입 할 위치입니다.

Laravel에게 초보자이어서, 나는 어디서부터 시작해야하는지 이해하려고 노력하고 있습니다.

답변

0

사용하는 언어 나 프레임 워크에 관계없이 맞춤 헤더가 설정된 페이지로 리디렉션하는 것은 불가능합니다.

즉, HTTP 리디렉션을 트리거하고 클라이언트 (브라우저)가 사용자 지정 헤더를 추가 할 수있는 방법이 없습니다. 이 코드가 잘 작동해야한다고 생각할 수도 있습니다.

return redirect()->away('http://localhost:3000', 302, ['X-WEBAUTH-USER', 'username']); 

하지만 그렇지 않습니다. 리다이렉트 자체가 아니라 브라우저가 리디렉션하도록 지시하는 응답의 사용자 정의 헤더를 설정하고 있습니다.

사이트가 사용자 지정 헤더가있는 HTTP 요청을 발행하도록 브라우저에 지시하는 유일한 방법은 Javascript와 XMLHttpRequest 개체를 사용하는 것입니다. 그리고 이러한 ajax 요청을 허용하려면 CORS가 대상 서버에 구현되어야합니다.

XMLHttpRequest를 사용하여 비동기 요청을하는 경우가 아니면 페이지에서 HTTP 요청 헤더를 설정할 수 없습니다. 즉, 클라이언트 쪽에서도 사용자 지정 헤더를 사용하여 이러한 리디렉션을 수행 할 수 없다는 의미입니다.

당신이 생각해 낼 수있는 가장 가까운 것은 프록시 서버의 역할을하는 것입니다. 두 번째 URL에 직접 요청한 다음 리디렉션하는 대신 응답을 클라이언트에 반환하십시오.

Grafana Auth Proxy에 대한 정보가 누락되었습니다. 나는 이것이 작동하는 방식이 아니라고 확신합니다. 이 튜토리얼이 아파치를 프록시 서버로 설정하고있는 것을 보았습니다. 그런 식으로 내려 가고 싶을 수도 있습니다. 나는 당신이 그것을 더 조심스럽게 다시 읽어야한다고 생각합니다.