【问题标题】:how to configure grafana with oauth (private ADFS)如何使用 oauth 配置 grafana(私有 ADFS)
【发布时间】:2017-08-23 13:46:11
【问题描述】:

我会与 ADFS 服务器建立 o.auth 连接。我关注了文档http://docs.grafana.org/installation/configuration/#auth-generic-oauth

会议:

[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

日志

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

【问题讨论】:

    标签: oauth adfs grafana


    【解决方案1】:

    日志显示https://GO.tld/adfs/userinfo 正在返回{"sub":"165az5d55s5sa56a5z1ds22tr6h5g5g6za6a6z55z5s="},其中grafana 期望包含nameloginusernameemail 等字段的json 文档。我发现一些引用该 URL 的帖子返回了完整的用户信息,因此您可能需要将 scopes 设置更新为 openid userinfo 以使其返回更多字段而不仅仅是 sub

    据我所知,访问令牌本身应该是一个包含用户信息的 JWT 令牌,因此理论上应该可以更新通用 oauth 模块以便能够对其进行解码并使用它,或为 ADFS 制作一个单独的模块。现在虽然 Grafana 没有对其进行解码,只是将其视为一个不透明的值。

    最后,如果 Grafana 可以调用另一个 API 端点来获取用户的 json 表示,那么您也许可以将 api_url 设置为该端点并且一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-19
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      • 1970-01-01
      • 2017-06-24
      • 2021-11-26
      相关资源
      最近更新 更多