Skip to content
Snippets Groups Projects
init-keycloak.sh 1.45 KiB
Newer Older
  • Learn to ignore specific revisions
  • François Agneray's avatar
    François Agneray committed
    #!/bin/sh
    set -e
    
    # Get Keycloak Admin token
    
    admin_token=$(curl --location --request POST 'http://keycloak:8180/realms/master/protocol/openid-connect/token' --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'username=admin' --data-urlencode 'password=admin' --data-urlencode 'grant_type=password' --data-urlencode 'client_id=admin-cli' | jq -r '.access_token')
    
    François Agneray's avatar
    François Agneray committed
    
    # Create cesamsi user
    
    curl --location --request POST 'http://keycloak:8180/admin/realms/anis/users' --header 'Content-Type: application/json' --header "Authorization: Bearer $admin_token" --data-raw '{"firstName":"cesam-si","lastName":"cesam-si", "email":"cesamsi@lam.fr", "enabled":"true", "emailVerified":"true", "credentials":[{"type":"password","value":"admin","temporary":false}]}'
    
    François Agneray's avatar
    François Agneray committed
    
    # Get anis_admin role and id_user
    
    anis_admin_role=$(curl --location --request GET 'http://keycloak:8180/admin/realms/anis/roles/anis_admin'  --header 'Content-Type: application/json' --header "Authorization: Bearer $admin_token")
    id_user=$(curl --location --request GET 'http://keycloak:8180/admin/realms/anis/users' --header 'Content-Type: application/json' --header "Authorization: Bearer $admin_token" | jq -r '.[0]' | jq -r '.id')
    
    François Agneray's avatar
    François Agneray committed
    
    # Add anis_admin role to cesamsi user
    
    curl --location --request POST "http://keycloak:8180/admin/realms/anis/users/${id_user}/role-mappings/realm" --header 'Content-Type: application/json' --header "Authorization: Bearer $admin_token" --data-raw "[${anis_admin_role}]"