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:
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:
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: