спасибо, что связались со мной также по электронной почте.
Ради полноты я пересылаю здесь ответ, который я дал на оригинальное сообщение в Stackoverflow Португалия: https://pt.stackoverflow.com/questions/362727/autentica%C3%A7%C3%A3o-single-sign-on-django-e-grafana
Ваш отчет почти завершен, отлично!
При появлении предупреждения
This setting is also important if you have a reverse proxy in front of Grafana that exposes it through a subpath. In that case add the subpath to the end of this URL setting.
при http://docs.grafana.org/installation/configuration/#root-url
сбой может быть установкаGF_SERVER_DOMAIN
envvar, который должен быть заменен GF_SERVER_ROOT_URL=http://172.30.3.141:3000/
, который содержит порт (и это будет означать ошибку документации Grafana ...)
Если бы не это, мне на ум приходят только два других вопросаопределить проблему:
- соответствует ли ваше request.user.username имя пользователя Grafana?
- что такое атрибут "src" вашего iframe?Это должно быть
https://172.30.3.207/grafana/(dashboard path)
помимо этих основных вопросов, я предлагаю вам попытаться удалить GF_AUTH_PROXY_WHITELIST
envvar и попытаться пройти аутентификацию через curl
, например:
curl -H "X-WEBAUTH-USER: anthony" http://172.30.3.141:3000/api/user
, как вы можете найти на http://docs.grafana.org/auth/auth-proxy/#interacting-with-grafana-s-authproxy-via-curl
Следует моему представлению Django и моей конфигурации grafana для достижения рабочего результата, но не вижу значимых различий:
class GraphanaProxyView(ProxyView):
upstream = 'http://localhost:8891/dashboard/'
def get_proxy_request_headers(self, request):
headers = super(GraphanaProxyView, self).get_proxy_request_headers(request)
headers['X-WEBAUTH-APP-USER'] = request.user.username
return header
Конфигурация Графана:
[auth]
disable_login_form = true
[auth.proxy]
enabled = true
header_name = X-WEBAUTH-APP-USER
;header_property = username
;auto_sign_up = true
;ldap_sync_ttl = 60
whitelist = 127.0.0.1
[auth.basic]
enabled = false
[server]
protocol = http
http_addr = 127.0.0.1
http_port = 8891
domain = solomon.labs.befair.it
;enforce_domain = false
root_url = https://%(domain)s/ui/