2017-08-23 2 views
0

Je voudrais établir une connexion o.auth avec un serveur ADFS. J'ai suivi le doc http://docs.grafana.org/installation/configuration/#auth-generic-oauth.comment configurer grafana avec oauth (ADFS privé)

Conf:

[auth.generic_oauth] 
enabled = true 
client_id = ID 
client_secret = TOKEN 
scopes = openid 
auth_url = https://GO.tld/adfs/oauth2/authorize 
token_url = https://GO.tld/adfs/oauth2/token 
api_url = https://GO.tld/adfs/userinfo 
allowed_domains = GO.tld 
allow_sign_up = true 

Connexion

lvl=dbug msg="HTTP GET https://GO.tld/adfs/userinfo: 200 OK {\"sub\":\"165az5d55s5sa56a5z1ds22tr6h5g5g6za6a6z55z5s=\"}" 
lvl=dbug msg="HTTP GET https://GO.tld/adfs/userinfo/emails: 200 OK {\"sub\":\"165az5d55s5sa56a5z1ds22tr6h5g5g6za6a6z55z5s=\"}" 
lvl=dbug msg="OAuthLogin got user info" logger=context userId=0 orgId=0 uname= userInfo="&{Name: Email: Login: Company: Role:}" 
lvl=info msg="Login provider didn't return an email address" logger=context userId=0 orgId=0 uname= 
lvl=info msg="Request Completed" logger=context userId=0 orgId=0 uname= method=GET path=/login/generic_oauth status=302 remote_addr=IP time_ms=26 size=29 referer=https://grafana.tld:3000/login 

Répondre

0

Les journaux montrent que le https://GO.tld/adfs/userinfo est de retour {"sub":"165az5d55s5sa56a5z1ds22tr6h5g5g6za6a6z55z5s="}, où grafana attend un document JSON, y compris des domaines tels que name, login, username, email. J'ai trouvé quelques messages en référençant cette URL comme renvoyant un userinfo complet, donc il est possible que vous deviez mettre à jour le paramètre scopes pour le faire ressembler à openid userinfo pour qu'il renvoie plus de champs plutôt que simplement sub. Pour autant que je sache, le jeton d'accès lui-même devrait être un jeton JWT qui inclut les informations de l'utilisateur, donc en théorie, il devrait être possible de mettre à jour le module oauth générique pour pouvoir le décoder et l'utiliser ou créez un module distinct pour ADFS. Pour le moment, Grafana ne le décode pas et le traite comme une valeur opaque. Enfin, s'il y a un autre point de terminaison API que Grafana peut appeler pour obtenir une représentation json de l'utilisateur, alors vous pouvez définir le api_url et cela fonctionnera.

+0

merci pour cette information :) – xilmen