- Notifications
You must be signed in to change notification settings - Fork1
License
paulojeronimo/rh-sso-manage-users
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
- Introdução
- Passo 0 - Baixe (ou clone) esse projeto (licença: MIT)
- Passo 1 - Crie um client no RH-SSO
- Passo 2 - Ajuste o arquivo de configuração deste projeto
- Passo 3 - Execute o script test-one-user.sh
- Passo 4 - Execute o script create-users.sh
- Passo 5 - Execute o script get-tokens.sh
- Passo 6 - Execute o Script delete-users.sh
Esses projeto demonstra, passo a passo, o uso de scripts escritos emBash para gerenciar usuários em umclient configurado no RH-SSO (ou noKeycloak) com umService Accounts Enabled.
Os scripts utilizam aREST API de administraçãodo RH-SSO para que, através do uso de comandos como ocurl, sejapossívelcriar uma massa de usuários,obterum token válido para cada usuário criado e, por fim,remover esses usuários quando eles não forem maisnecessários.
Note | O RH-SSO pode ser, rapidamente, instalado e configurado parautilizar um PostgreSQL ou um Microsoft SQL Server utilizando o projetokeycloak-labs. |
$ git clone https://github.com/paulojeronimo/rh-sso-manage-users$ cd `basename _$`
Crie umRealm e umClient no RH-SSO.Noarquivo de configuração de exemplo, ocliente está nomeado comoxpto e está configurado noRealmdemo,conforme as seguintes imagens:
Note | Na tela acima, observe as seguintes configurações:
|
Note | Na tela acima, observe as seguintes configurações:
|
Copie o arquivoconfig.sample paraconfig e faça os ajustesnecessários, conforme o ambiente, em suas variáveis.
Conteúdo do arquivoconfig.sample:
link:config.sample[role=include]
O scripttest-one-user.sh deverá criar (e apagar) um único usuário noRealm configurado, no intuito de testar se a configuração para arealização das próximas operações está ok.
Exemplo de execução:
$ ./test-one-user.shBase dir is "/Users/pj/labs/rh-sso-manage-users".Configured variables (excluding sensitive): TMP_DIR: tmp LOG_FILE: test-one-user.log USE_BASIC_AUTH: false SSO_URL: http://localhost:8180/auth REALM: demo CLIENT_ID: xpto USER_PREFIX: testuser PASSWORD_SIZE: 10 NB_OF_USERS: 30 NB_OF_USER_PER_DOT: 3 LEADING_ZEROS: 2 CREATED_USERS_FILE: created-users.csv TOKENS_FILE: tokens.csvThese variables was read from "./config.sample" file.Generated files adjusted to be created in "tmp" directory.One user test started!Adding user "testuser-31" ... okRecovered user id: 4e800d63-1b54-44d5-b9c0-e3f549ccf555Getting token for client "xpto" ... okUser token saved in "tmp/test-one-user.csv"!Deleting user ... okTest completed successfuly!
O scriptcreate-users.sh deverá criar o número de usuáriosconfigurados emconfig.sample noRealm configurado.
Exemplo de execução:
$ time ./create-users.shBase dir is "/Users/pj/labs/rh-sso-manage-users".Configured variables (excluding sensitive): TMP_DIR: tmp LOG_FILE: create-users.log USE_BASIC_AUTH: false SSO_URL: http://localhost:8180/auth REALM: demo CLIENT_ID: xpto USER_PREFIX: testuser PASSWORD_SIZE: 10 NB_OF_USERS: 30 NB_OF_USER_PER_DOT: 3 LEADING_ZEROS: 2 CREATED_USERS_FILE: created-users.csv TOKENS_FILE: tokens.csvThese variables was read from "./config.sample" file.Generated files adjusted to be created in "tmp" directory.Adding users (each "." represents 3 users) .............File "tmp/created-users.csv" created!Number of users created: 30.real 0m3.939suser 0m0.318ssys 0m0.425s
Note | A execução do script através do comandotime é opcional!Ela serve apenas para ter uma idéia do tempo de execução do script. |
O arquivo gerado que contém os usuários (tmp/created-users.csv) deveráter um conteúdo semelhante ao apresentado pela saída do comando abaixo:
$ head -n 3 tmp/created-users.csvUsername,Passwordtestuser-01,JJQFNZ9M8Ttestuser-02,ZvMda8N6rI
Também, após a execução desse script, os usuários poderão servisualizados pela interface administrativa do RH-SSO, como apresentadona figura abaixo:
O scriptget-tokens.sh deverá obter tokens para o número de usuárioscriados no passo anterior.
Note | Esses tokens são criados apenas para testar a autenticação deacesso ao próprio clientexpto.Caso seja necessário obter um token para outro cliente, ajuste o script! |
Exemplo de execução:
$ time ./get-tokens.shBase dir is "/Users/pj/labs/rh-sso-manage-users".Configured variables (excluding sensitive): TMP_DIR: tmp LOG_FILE: get-tokens.log USE_BASIC_AUTH: false SSO_URL: http://localhost:8180/auth REALM: demo CLIENT_ID: xpto USER_PREFIX: testuser PASSWORD_SIZE: 10 NB_OF_USERS: 30 NB_OF_USER_PER_DOT: 3 LEADING_ZEROS: 2 CREATED_USERS_FILE: created-users.csv TOKENS_FILE: tokens.csvThese variables was read from "./config.sample" file.Generated files adjusted to be created in "tmp" directory.Getting users tokens (each "." represents 3 users) ...Adding users (each "." represents 3 users) .............File "tmp/tokens.csv" created!Number of tokens created: 30.real 0m3.932suser 0m1.135ssys 0m0.408s
O arquivo gerado que contem os tokens (tmp/tokens.csv) deverá ter umconteúdo como o apresentado a seguir:
$ head -n 3 tmp/tokens.csvUsername,Token (for "xpto" client)testuser-01,eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJRSXhYc2NQUjVldzZhWkJ3NFZqRTdlcDEyYVFNb2l3MjZsRzc0aV82MG9NIn0.eyJqdGkiOiI2MTBlZDUwMS1iZjZmLTQyOTMtOGYwZC0xMzRiOGExMzJhYTgiLCJleHAiOjE2MDEzMDExOTEsIm5iZiI6MCwiaWF0IjoxNjAxMzAwNTkxLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgxODAvYXV0aC9yZWFsbXMvZGVtbyIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiIwOTFmOTU4ZC0xZjMyLTQ1ODEtYjU1OS0xNTFlMTIyNWNhYjciLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJ4cHRvIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiYjU5Njg3MWMtY2ZmMy00MGM2LTg4ZTMtMzM2ODdiOThmYTBhIiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJlbWFpbCBwcm9maWxlIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJ0ZXN0dXNlci0wMSJ9.DyKL9jJDl78p3MeLCf1Q6a2mZYxZyqmLjkfbAJpcH89T-MG_WedaxYYN9lXz9EPLdDY_9qf0gH6BUWAaDowE-Thy9iVkEP4NFYxL3C0sHUkqI2si8VNw-0o9PcEyLDWQXojpAXnMaEg09VW2u9mroDEvqyLPbJybVZpbAaUn5BlZBDmjGQMmhBoPkYmR06fxlVTES-qMLH4t_aaQ-PMm7RI7dN3A2i98eSCO-1Dk2yQYIO8wdNrZdWrJhOdEhc-p3nA-7C5vIy-PZn9DY34w4JOvSPMM4gJvy3Y6oq_tZi-Xa3ROLsJa8endAHN0R_2EDn-Ts0FHcoexbfl4VKcTdQtestuser-02,eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJRSXhYc2NQUjVldzZhWkJ3NFZqRTdlcDEyYVFNb2l3MjZsRzc0aV82MG9NIn0.eyJqdGkiOiIyOWJjYTEwZi1jZGMwLTQ0ODctYjVhMC00N2E3MjJjZDAyMzgiLCJleHAiOjE2MDEzMDExOTEsIm5iZiI6MCwiaWF0IjoxNjAxMzAwNTkxLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgxODAvYXV0aC9yZWFsbXMvZGVtbyIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJkYWVmNTVlNS02YTk1LTRhYTMtOTI4Ny0zNTZiMzRlMGUxYTQiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJ4cHRvIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiMTM0MTA4Y2YtMmM3YS00NmNkLWJmN2UtYjFkM2I1MjRmYzBhIiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJlbWFpbCBwcm9maWxlIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJ0ZXN0dXNlci0wMiJ9.YzeuXePmcONX-EcY5qFNi0mqf-YEcw7QsiDJ00RpdigInC4-RcCclRu8AoDW1kit-7kxV0De9Mgf3LqOiULwzxC6P6ddOAydu_Frl4aM4PXDiWH-o0IoJzdDK_NkkDlUHSv3JF3UAXnEc7f--ZcB41DoCgNXtWNKU6dxBwmpv8VPG6NR1LyWB3s9kS6mrIJIEjcSfiB4vs_PgQS-NWTU-SbNA7njZqxGACP6sbyflqKjXMI-sd9vzkdHzbFwAMc61NmYy7QIL5mX67KRBs-v-F4HBQypqu4MFU6eEl0jKz3CFwujT8mMCuPXamoLJt_H2TJULOPjA7qPMFaFzpQePQ
O scriptdelete-users.sh deverá remover os usuárioscriados nopasso 4.
Exemplo de execução:
$ time ./delete-users.shBase dir is "/Users/pj/labs/rh-sso-manage-users".Configured variables (excluding sensitive): TMP_DIR: tmp LOG_FILE: delete-users.log USE_BASIC_AUTH: false SSO_URL: http://localhost:8180/auth REALM: demo CLIENT_ID: xpto USER_PREFIX: testuser PASSWORD_SIZE: 10 NB_OF_USERS: 30 NB_OF_USER_PER_DOT: 3 LEADING_ZEROS: 2 CREATED_USERS_FILE: created-users.csv TOKENS_FILE: tokens.csvThese variables was read from "./config.sample" file.Generated files adjusted to be created in "tmp" directory.Deleting users (each "." represents 3 users) .............Number of users deleted: 30.real 0m1.998suser 0m1.364ssys 0m0.575s
About
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.


