parent
be5ea40f83
commit
9031c8d126
@ -0,0 +1,146 @@ |
|||||||
|
For initial setup; |
||||||
|
|
||||||
|
* Setup auth credentials |
||||||
|
``` |
||||||
|
sudo docker-compose exec keycloak \ |
||||||
|
/opt/keycloak/bin/kcadm.sh \ |
||||||
|
config credentials \ |
||||||
|
--server http://localhost:8080/ \ |
||||||
|
--user admin \ |
||||||
|
--password admin \ |
||||||
|
--realm master \ |
||||||
|
|
||||||
|
``` |
||||||
|
|
||||||
|
* Create a new realm for the `spacestation`: |
||||||
|
``` |
||||||
|
sudo docker-compose exec keycloak \ |
||||||
|
/opt/keycloak/bin/kcadm.sh \ |
||||||
|
create realms \ |
||||||
|
-s realm=spacestation \ |
||||||
|
-s enabled=true \ |
||||||
|
|
||||||
|
``` |
||||||
|
|
||||||
|
# Fix up a id bug |
||||||
|
|
||||||
|
* https://github.com/hedgedoc/hedgedoc/issues/56 |
||||||
|
|
||||||
|
``` |
||||||
|
sudo docker-compose exec -T keycloak \ |
||||||
|
/opt/keycloak/bin/kcadm.sh \ |
||||||
|
create client-scopes \ |
||||||
|
-r spacestation \ |
||||||
|
-f - <<EOF |
||||||
|
{ |
||||||
|
"name": "id", |
||||||
|
"protocol": "openid-connect", |
||||||
|
"attributes": { |
||||||
|
"include.in.token.scope": "true", |
||||||
|
"display.on.consent.screen": "true" |
||||||
|
}, |
||||||
|
"protocolMappers": [ |
||||||
|
{ |
||||||
|
"name": "id", |
||||||
|
"protocol": "openid-connect", |
||||||
|
"protocolMapper": "oidc-usermodel-property-mapper", |
||||||
|
"consentRequired": false, |
||||||
|
"config": { |
||||||
|
"user.attribute": "id", |
||||||
|
"id.token.claim": "true", |
||||||
|
"access.token.claim": "true", |
||||||
|
"jsonType.label": "String", |
||||||
|
"userinfo.token.claim": "true" |
||||||
|
} |
||||||
|
} |
||||||
|
] |
||||||
|
} |
||||||
|
EOF |
||||||
|
|
||||||
|
# Create a client in the realm with a provided shared secret and client scope |
||||||
|
|
||||||
|
``` |
||||||
|
sudo docker-compose exec -T keycloak \ |
||||||
|
/opt/keycloak/bin/kcadm.sh \ |
||||||
|
create clients \ |
||||||
|
-r spacestation \ |
||||||
|
-f - <<EOF |
||||||
|
{ |
||||||
|
"clientId": "hedgerow", |
||||||
|
"rootUrl": "http://spacestation:3000/", |
||||||
|
"adminUrl": "http://spacestation:3000/", |
||||||
|
"redirectUrls": [ "http://spacestation:3000/*" ], |
||||||
|
"webOrigins": [ "http://spacestation:3000" ], |
||||||
|
"clientAuthenticatorType": "client-secret", |
||||||
|
"secret": "abcdef1234", |
||||||
|
"defaultClientScopes": [ |
||||||
|
"web-origins", |
||||||
|
"acr", |
||||||
|
"profile", |
||||||
|
"roles", |
||||||
|
"id", |
||||||
|
"email" |
||||||
|
], |
||||||
|
"optionalClientScopes": [ |
||||||
|
"address", |
||||||
|
"phone", |
||||||
|
"offline_access", |
||||||
|
"microprofile-jwt" |
||||||
|
] |
||||||
|
} |
||||||
|
EOF |
||||||
|
``` |
||||||
|
|
||||||
|
|
||||||
|
* Create an admin user |
||||||
|
``` |
||||||
|
kcadm.sh create users \ |
||||||
|
-o \ |
||||||
|
--fields id,username \ |
||||||
|
-r spacestation \ |
||||||
|
-s username=admin \ |
||||||
|
-s enabled=true \ |
||||||
|
-s 'credentials=[{"type":"password","value":"admin","temporary":false}]' \ |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sudo docker-compose exec keycloak \ |
||||||
|
/opt/keycloak/bin/kcadm.sh \ |
||||||
|
config credentials \ |
||||||
|
--server http://localhost:8080/ \ |
||||||
|
--user admin \ |
||||||
|
--password admin \ |
||||||
|
--realm master |
||||||
|
``` |
||||||
|
|
||||||
|
|
||||||
|
``` |
||||||
|
Create a new realm: |
||||||
|
$ kcadm.sh create realms -s realm=demorealm -s enabled=true |
||||||
|
|
||||||
|
Create a new realm role in realm 'demorealm' returning newly created role: |
||||||
|
$ kcadm.sh create roles -r demorealm -s name=manage-all -o |
||||||
|
|
||||||
|
Create a new user in realm 'demorealm' returning only 'id', and 'username' attributes: |
||||||
|
$ kcadm.sh create users -r demorealm -s username=testuser -s enabled=true -o --fields id,username |
||||||
|
|
||||||
|
Create a new client using configuration read from standard input: |
||||||
|
$ kcadm.sh create clients -r demorealm -f - << EOF |
||||||
|
{ |
||||||
|
"clientId": "my_client" |
||||||
|
} |
||||||
|
EOF |
||||||
|
|
||||||
|
Create a new group using configuration JSON passed as 'body' argument: |
||||||
|
$ kcadm.sh create groups -r demorealm -b '{ "name": "Admins" }' |
||||||
|
|
||||||
|
Create a client using file as a template, and override some attributes - return an 'id' of new client: |
||||||
|
$ kcadm.sh create clients -r demorealm -f my_client.json -s clientId=my_client2 -s 'redirectUris=["http://localhost:8980/myapp/*"]' -i |
||||||
|
|
||||||
|
Create a new client role for client my_client in realm 'demorealm' (replace ID with output of previous example command): |
||||||
|
$ kcadm.sh create clients/ID/roles -r demorealm -s name=client_role |
||||||
|
|
||||||
|
|
||||||
|
Use 'kcadm.sh help' for general information and a list of commands |
||||||
|
|
||||||
|
``` |
Loading…
Reference in new issue