首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单点登录Keyrock-Grafana不起作用

单点登录Keyrock-Grafana不起作用
EN

Stack Overflow用户
提问于 2019-03-05 16:18:25
回答 1查看 531关注 0票数 0

我正在尝试使用Keyrock在不同的平台上提供单点登录。具体地说,我想在Grafana中提供该服务。我已经在Grafana中看到了要更改的配置,我的docker-compose如下所示:

代码语言:javascript
复制
version: "3.1"
    services:

      grafana:
        image: grafana/grafana:5.1.0
        ports:
          - 3000:3000
        networks:
          default:
           ipv4_address: 172.18.1.4
        environment:
          - GF_AUTH_GENERIC_OAUTH_CLIENT_ID=90be8de5-69dc-4b9a-9cc3-962cca534410
          - GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET=9e98964b-5043-4086-9657-51f1d8c11fe0
          - GF_AUTH_GENERIC_OAUTH_ENABLED=true
          - GF_AUTH_GENERIC_OAUTH_AUTH_URL=http://172.18.1.5:3005/oauth2/authorize
          - GF_AUTH_GENERIC_OAUTH_TOKEN_URL=http://172.18.1.5:3005/oauth2/token
          - GF_AUTH_GENERIC_OAUTH_API_URL=http://172.18.1.5:3005/v1/users
          - GF_AUTH_GENERIC_OAUTH_ALLOW_SIGN_UP = true
          - GF_Server_DOMAIN=172.18.1.4
          - GF_Server_ROOT_URL=http://172.18.1.4:3000

      keyrock:
        image: fiware/idm:7.5.1
        container_name: fiware-keyrock
        hostname: keyrock
        networks:
          default:
            ipv4_address: 172.18.1.5
        depends_on:
          - mysql-db
        ports:
          - "3005:3005"
          - "3443:3443"
        environment:
          - DEBUG=idm:*
          - DATABASE_HOST=mysql-db
          - IDM_DB_PASS_FILE=/run/secrets/my_secret_data
          - IDM_DB_USER=root
          - IDM_HOST=http://localhost:3005
          - IDM_PORT=3005
          - IDM_HTTPS_ENABLED=false
          - IDM_HTTPS_PORT=3443
          - IDM_ADMIN_USER=admin
          - IDM_ADMIN_EMAIL=admin@test.com
          - IDM_ADMIN_PASS=test
        secrets:                
          - my_secret_data
        healthcheck:
          test: curl --fail -s http://localhost:3005/version || exit 1

      mysql-db:
        restart: always
        image: mysql:5.7
        hostname: mysql-db
        container_name: db-mysql
        expose:
          - "3306"
        ports:
          - "3306:3306"
        networks:
          default:
            ipv4_address: 172.18.1.6
        environment:
          - "MYSQL_ROOT_PASSWORD_FILE=/run/secrets/my_secret_data"
          - "MYSQL_ROOT_HOST=172.18.1.5"
        volumes:
          - mysql-db-sso:/var/lib/mysql
          - ./mysql-data:/docker-entrypoint-initdb.d/:ro
        secrets:                
          - my_secret_data

    networks:
      default:
        ipam:
          config:
            - subnet: 172.18.1.0/24
    volumes:
      mysql-db-sso:

    secrets:
      my_secret_data:
        file: ./secrets.txt

我在Keyrock中注册了Grafana应用程序,并将其作为回调http://172.18.1.4:3000/login。当我尝试通过Oauth登录Grafana时,它会将我重定向到keyrock页面进行登录,但当输入凭据时,它会返回给我一个invalid client_id,但它与获取应用程序信息时返回给我的是同一个try。

有没有可能我缺少要配置的东西,或者应该用另一种方式来完成?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-07 03:04:06

以下是Keyrocc7.5.1和Grafana 6.0.0的工作配置

Grafana:

代码语言:javascript
复制
[auth.generic_oauth]
enabled = true
allow_sign_up = true
client_id = ${CLIENT_ID}
client_secret = ${CLIENT_SECRET}
scopes = permanent
auth_url = ${KEYROCK_URL}/oauth2/authorize
token_url = ${KEYROCK_URL}/oauth2/token
api_url =  ${KEYROCK_URL}/user

Keyrock中的应用程序:

代码语言:javascript
复制
url - ${GRAFANA_ROOT_URL}
callback_url - ${GRAFANA_ROOT_URL}/login/generic_oauth
Token types - Permanent

所以你需要修改环境变量

代码语言:javascript
复制
GF_AUTH_GENERIC_OAUTH_API_URL

代码语言:javascript
复制
http://172.18.1.5:3005/user

和回调url

代码语言:javascript
复制
http://172.18.1.4:3000/login

代码语言:javascript
复制
http://172.18.1.4:3000/login/generic_oauth

并添加oauth2作用域

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54998226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档