Usando OpenID / Keycloak com superconjunto

Quero usar o keycloak para autenticar meus usuários em nosso ambiente Superset.

O superconjunto está usando o flask-openid, conforme implementado no flask-security:

http://flask-appbuilder.readthedocs.io/en/latest/_modules/flask_appbuilder/security/manager.htmlhttps://pythonhosted.org/Flask-OpenID/

Para habilitar uma autenticação de usuário diferente da normal (banco de dados), você precisa substituir o parâmetro AUTH_TYPE no seu arquivo superset_config.py. Você também precisará fornecer uma referência ao seu domínio de conexão aberta e habilitar o registro do usuário. Pelo que entendi, deve ser algo como isto:

from flask_appbuilder.security.manager import AUTH_OID
AUTH_TYPE = AUTH_OID
OPENID_PROVIDERS = [
    { 'name':'keycloak', 'url':'http://localhost:8080/auth/realms/superset' }
]
AUTH_USER_REGISTRATION = True
AUTH_USER_REGISTRATION_ROLE = 'Gamma'

Com essa configuração, a página de login muda para um prompt em que o usuário pode selecionar o provedor OpenID desejado (no nosso caso, capa de teclado). Também temos dois botões, um para entrar (para usuários existentes) e outro para registrar como um novo usuário.

Eu esperaria que um desses botões me levasse à minha página de login da capa de chave. No entanto, isso não acontece. Em vez disso, sou redirecionado de volta para a página de login.

No caso em que pressiono o botão de registro, recebo uma mensagem que diz 'Não é possível registrar você no momento, tente novamente mais tarde'. Quando pressiono o botão de logon, nenhuma mensagem é exibida. Os logs do superconjunto mostram a solicitação que carrega a página de login, mas nenhuma solicitação para capa de chave. Eu tentei o mesmo usando o provedor Google OpenID, que funciona muito bem.

Como não vejo solicitações para keycloak, isso me faz pensar que estou perdendo uma configuração em algum lugar ou que estou usando as configurações incorretas. Você poderia me ajudar a descobrir quais configurações devo usar?

questionAnswers(1)

yourAnswerToTheQuestion