Pular para o conteúdo principal

Grafana

Usando Casdoor para autenticação no Grafana

Grafana suporta autenticação via OAuth. Portanto, é extremamente fácil para os usuários usarem Casdoor para fazer login no Grafana. Apenas alguns passos e configurações simples são necessários para conseguir isso.

Aqui está um tutorial sobre como usar Casdoor para autenticação no Grafana. Antes de prosseguir, por favor, certifique-se de que você tem o Grafana instalado e em funcionamento.

Passo 1: Criar um aplicativo para o Grafana no Casdoor

Aqui está um exemplo de como criar um aplicativo no Casdoor:

Criar um aplicativo no Casdoor

Por favor, copie o segredo do cliente e o ID do cliente para o próximo passo.

Por favor, adicione a URL de callback do Grafana. Por padrão, o callback OAuth do Grafana é /login/generic_oauth. Então, por favor, concatene esta URL corretamente.

Passo 2: Modificar a configuração do Grafana

Por padrão, o arquivo de configuração para OAuth está localizado em conf/defaults.ini no diretório de trabalho do Grafana.

Por favor, encontre a seção [auth.generic_oauth] e modifique os seguintes campos:

[auth.generic_oauth]
name = Casdoor
icon = signin
enabled = true
allow_sign_up = true
client_id = <client ID from previous step>
client_secret = <client secret from previous step>
auth_url = <Casdoor endpoint>/login/oauth/authorize
token_url = <Casdoor endpoint>/api/login/oauth/access_token

Sobre HTTPS

Se você não quer HTTPS habilitado para o Casdoor ou se você implantar o Grafana sem HTTPS habilitado, por favor, também defina tls_skip_verify_insecure = true.

Sobre redirectURI após Entrar com Casdoor

Se o URI de redirecionamento não estiver correto após entrar com Casdoor no Grafana, você pode querer configurar root_url.

[server]
http_port = 3000
# The public-facing domain name used to access Grafana from a browser
domain = <your IP here>
# The full public-facing URL
root_url = %(protocol)s://%(domain)s:%(http_port)s/

Links relacionados:

  1. Documentação do Grafana

  2. Grafana defaults.ini

Sobre Mapeamento de Papéis

Você pode querer configurar role_attribute_path para mapear o papel do seu usuário para o Grafana via role_attribute_path.

[auth.generic_oauth]
role_attribute_path = contains(roles[*].name, 'admin') && 'Admin' || contains(roles[*].name, 'editor') && 'Editor' || 'Viewer'
role_attribute_strict = true
allow_assign_grafana_admin = true

A expressão JMESPath após role_attribute_path é muito importante aqui. Por favor, consulte a documentação do Grafana.

Passo 3: Veja se funciona

Desligue o Grafana e reinicie-o.

Vá para a página de login. Você deve ver algo assim:

Resultado final