Preciso autorizar meu aplicativo (denominado "Logic" de agora em diante) para gerenciar usuários de um domínio Keycloak. "Logic" já se autentica nesse domínio com um tipo de acesso de concessão de credenciais de cliente, portanto o código já está funcionando.
Agora, no console de administração do Keycloak, preciso adicionar a função correta ao meu cliente para que "Logic" seja autorizado a chamar qualquer endpoint de API que o Keycloak fornece para gerenciar os usuários do realm.
Na lista de clientes do realm há um cliente chamado realm-management
, que o Keycloak fornece por padrão para cada realm. Esse cliente pode gerenciar todo o domínio, não apenas seus usuários, e possui uma lista de funções de cliente por esse motivo. manage-users
é uma das funções dessa lista e é a função que preciso atribuir ao meu outro cliente (que nomeei logic
no Keycloak). Em outras palavras, meu aplicativo "Logic" usa o keycloak client-id logic
para se autenticar e preciso adicionar a manage-users
função ao logic
cliente.
O problema é que nas minhas logic
configurações de funções de cliente ( ), essas mesmas funções, listadas em realm-management
cliente, não estão listadas e a lista só tem uma_protection
função:
Se eu procurasse "gerenciar usuários" digitando-o na caixa de pesquisa, ele não apareceria. Enquanto isso, se eu clicar nessa função na lista de funções do realm-management
cliente, isso mostra que nenhum usuário tem essa função e me permite adicionar a função a users , mas não a clients , mesmo que essa função esteja realmente listada em um client ( realm-management
) .
Criar uma nova função em meu logic
cliente, com o mesmo nome de manage-users
, é possível, mas não tenho certeza se esse é o caminho a seguir. Quero dizer, por que devo duplicar uma função existente? Cheira a errado.
Você pode me dizer a maneira correta de adicionar a manage-users
função a um cliente no Keycloak 23?