mirror of
https://github.com/kanidm/kanidm.git
synced 2025-02-23 20:47:01 +01:00
54 lines
1.6 KiB
Bash
Executable file
54 lines
1.6 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# set -e
|
|
|
|
TEST_RADIUS_USER="test_radius_user"
|
|
RADIUS_GROUP="radius_access_allowed"
|
|
|
|
#shellcheck disable=SC2162
|
|
read -p "Enter idm_admin password: " KANIDM_PASSWORD
|
|
|
|
export KANIDM_PASSWORD
|
|
cargo run --bin kanidm login --name idm_admin
|
|
unset KANIDM_PASSWORD
|
|
|
|
GROUP_CREATE_OUTPUT="$(KANIDM_NAME=idm_admin cargo run --bin kanidm group create "${RADIUS_GROUP}" 2>&1)"
|
|
GROUP_CREATE_RESULT="$(echo "${GROUP_CREATE_OUTPUT}" | grep -c -E '(Successfully created|AttrUnique)')"
|
|
|
|
if [ "${GROUP_CREATE_RESULT}" -eq 1 ]; then
|
|
echo "Group ${RADIUS_GROUP} created"
|
|
else
|
|
echo "Something failed during group creation"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
echo "Creating RADIUS test user ${TEST_RADIUS_USER}"
|
|
USER_CREATE_OUTPUT="$(KANIDM_NAME=idm_admin cargo run --bin kanidm service-account create "${TEST_RADIUS_USER}" "${TEST_RADIUS_USER}")"
|
|
|
|
USER_CREATE_RESULT="$(echo "${USER_CREATE_OUTPUT}" | grep -c -E '(Successfully created|AttrUnique)')"
|
|
if [ "${USER_CREATE_RESULT}" -eq 1 ]; then
|
|
echo "User ${TEST_RADIUS_USER} created"
|
|
else
|
|
echo "Something failed during service account creation"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
echo "Creating API Token..."
|
|
TOKEN_EXPIRY="$(date -v+1H +%Y-%m-%dT%H:%M:%S+10:00)"
|
|
|
|
RADIUS_TOKEN_RESULT="$(KANIDM_NAME=idm_admin cargo run --bin kanidm service-account api-token generate \
|
|
"${TEST_RADIUS_USER}" radius "${TOKEN_EXPIRY}" \
|
|
-o json)"
|
|
RADIUS_TOKEN="$(echo "${RADIUS_TOKEN_RESULT}" | grep result | jq -r .result)"
|
|
|
|
if [ -z "${RADIUS_TOKEN}" ]; then
|
|
echo "Couldn't find RADIUS token in output"
|
|
echo "${RADIUS_TOKEN_RESULT}"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Updating secret in config file"
|
|
sed -i '' -e "s/^secret.*/secret = \"${RADIUS_TOKEN}\"/" ~/.config/kanidm
|