Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

paulojeronimo/rh-sso-manage-users

Repository files navigation

Introdução

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.

Passo 0 - Baixe (ou clone) esse projeto (licença: MIT)

$ git clone https://github.com/paulojeronimo/rh-sso-manage-users$ cd `basename _$`

Passo 1 - Crie um client no RH-SSO

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:

xpto client.1
Figure 1. Xpto Settings
Note
Na tela acima, observe as seguintes configurações:
  1. Access Type:confidential.

  2. Direct Acess Grants Enabled: true

  3. Service Accounts Enabled: true

xpto client.2
Note
Na tela acima, observe as seguintes configurações:
  1. Para oClient Roles, observe que as seguintesRoles estãoassociadas:

    1. manage-users.

    2. view-users.

Passo 2 - Ajuste o arquivo de configuração deste projeto

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]

Passo 3 - Execute o script test-one-user.sh

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!

Passo 4 - Execute o script create-users.sh

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:

demo users

Passo 5 - Execute o script get-tokens.sh

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

Passo 6 - Execute o Script delete-users.sh

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

Releases

No releases published

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp