oauth - 带有 gitlab oauth2 login.OAuthLogin(NewTransportWithCode) 的 grafana
问题描述
我有一个 grafana 容器(5.3.1)配置,我已经有一个 google oauth 工作,我使用变量添加了一个 gitlab oauth
- GF_AUTH_GITLAB_ENABLED=true
- GF_AUTH_GITLAB_CLIENT_ID=ID
- GF_AUTH_GITLAB_CLIENT_SECRET=SECRET
- GF_AUTH_GITLAB_AUTH_URL=https://GITLABURL/oauth/authorize
- GF_AUTH_GITLAB_TOKEN_URL=https://GITLABURL/oauth/token
- GF_AUTH_GITLAB_API_URL=https://GITLABURL/api/v4
- GF_AUTH_GITLAB_ALLOWED_GROUPS=GROUPE
- GF_AUTH_GITLAB_ALLOW_SIGN_UP=true
- GF_AUTH_GITLAB_SCOPES=read_user openid api
这似乎就像我在 gitlab 中创建应用程序时一样,身份验证似乎没问题,我被重定向到 grafana,这给了我错误:
login.OAuthLogin(NewTransportWithCode)
我尝试升级 oauth、grafana 和 gitlab 端的范围,但我得到相同的错误和相同的错误日志:
t=2018-10-18T09:40:10+0000 lvl=info msg="Request Completed" logger=context userId=0 orgId=0 uname= method=GET path=/ status=302 remote_addr=IP time_ms=72 size=37 referer=https://GRAFANA/
t=2018-10-18T09:40:12+0000 lvl=info msg="Request Completed" logger=context userId=0 orgId=0 uname= method=GET path=/login/gitlab status=302 remote_addr=IP time_ms=0 size=342 referer=https://GITLAB/grafana/login
t=2018-10-18T09:40:12+0000 lvl=eror msg=login.OAuthLogin(NewTransportWithCode) logger=context userId=0 orgId=0 uname= error="oauth2: cannot fetch token: 401 Unauthorized\nResponse: {\"error\":\"invalid_client\",\"error_description\":\"Client authentication failed due to unknown client, no client authentication included, or unsupported authentication method.\"}"
t=2018-10-18T09:40:12+0000 lvl=eror msg="Request Completed" logger=context userId=0 orgId=0 uname= method=GET path=/login/gitlab status=500 remote_addr=IP time_ms=72 size=1732 referer=https://GITLAB/
我还尝试停用 google oauth,但这没有帮助。
我仍在寻找解决方案,但如果有人对如何配置这个 gitlab oauth 工作有任何想法,那就太好了。
解决方案
这个对我有用:
docker run \
-d \
-p 443:3000 \
--name=grafana \
-v $PWD/certs/:/certs/ \
-e GF_SECURITY_ADMIN_PASSWORD=secret \
-e GF_AUTH_GITLAB_ENABLED=true \
-e GF_AUTH_GITLAB_CLIENT_ID=03ca83645e2c479d7f247eda8344aef8cb9f1bae77726101d18b9a91a4878208 \
-e GF_AUTH_GITLAB_CLIENT_SECRET=12da2d61d4dc3d4d7393bf8cbbb200cbc8a361d76394ac235130311be5c898f8 \
-e GF_AUTH_GITLAB_AUTH_URL=https://gitlab.com/oauth/authorize \
-e GF_AUTH_GITLAB_TOKEN_URL=https://gitlab.com/oauth/token \
-e GF_AUTH_GITLAB_API_URL=https://gitlab.com/api/v4 \
-e GF_AUTH_GITLAB_ALLOW_SIGN_UP=true \
-e GF_AUTH_GITLAB_ALLOWED_GROUPS=group \
-e "GF_AUTH_GITLAB_SCOPES=read_user openid api" \
-e GF_SERVER_CERT_FILE=/certs/domain.cer \
-e GF_SERVER_CERT_KEY=/certs/domain.key \
-e GF_SERVER_PROTOCOL=https \
-e GF_SERVER_DOMAIN=domain.tld \
-e GF_SERVER_ROOT_URL=https://domain.tld \
grafana/grafana
是否有人能够提供具有实际配置(客户端 ID/秘密/...)的 Docker 示例,这将有一个提到的问题。否则,其他人无法复制您的问题。
推荐阅读
- entity-framework - EF6 以错误的顺序放置插入参数
- javascript - 节点 + MySQL [ECONNREFUSED 127.0.0.1:3306]
- javascript - 如何从firebase函数返回错误?
- c# - 在 UWP 应用程序中打开和读取 Excel 文件
- botframework - Microsoft 聊天机器人显示 403 Quota Exceeded 错误
- nltk - NLTK 文本分类置信度朴素贝叶斯
- c - 使用英特尔 MKL 计算 `trans(a)*inv(b)*a` 的正确方法
- reactjs - 用于向下钻取表的反应库
- html - 如何制作不规则的div边框
- java - 从 IntelliJ Ultimate 2018.2.5 访问 MySQL 服务器