The login page says whose it is
Kanidm out of the box presents itself: its own name, its own mark. A neighbour landing on a login page that belongs to nobody in particular is right to hesitate about typing a password into it. The setup script now sets the vel's display name and logo on both the instance and the portal client. The logo comes from the content repo - the same images/logo.svg site.yaml already uses as the favicon - so the login page and the site are branded from one place, and the branding follows the content rather than this repo. Left alone deliberately: account recovery by email, and easter eggs. Both are decisions, not decoration, and the README says so. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -131,3 +131,29 @@ to send from and says so in its log.
|
|||||||
Replies are not read yet: `JMAP_URL`, `JMAP_TOKEN` and `MAIL_REPLY_DOMAIN`
|
Replies are not read yet: `JMAP_URL`, `JMAP_TOKEN` and `MAIL_REPLY_DOMAIN`
|
||||||
turn a reply into a note on the record it answers, and none of them are set
|
turn a reply into a note on the record it answers, and none of them are set
|
||||||
here.
|
here.
|
||||||
|
|
||||||
|
## How the login page looks
|
||||||
|
|
||||||
|
Out of the box Kanidm presents itself: its own name, its own mark. A
|
||||||
|
neighbour arriving at a login page that belongs to nobody in particular
|
||||||
|
is right to hesitate, so `kanidm-setup.sh` sets the vel's name and mark
|
||||||
|
on both the instance and the portal client:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
kanidm -D idm_admin -H https://$ID_HOST system domain set-displayname "Tomter Vel"
|
||||||
|
kanidm -D idm_admin -H https://$ID_HOST system domain set-image logo.svg svg
|
||||||
|
```
|
||||||
|
|
||||||
|
The logo is fetched from the content repo - the same `images/logo.svg`
|
||||||
|
that `site.yaml` uses as the favicon - so the login page and the site
|
||||||
|
are branded from one place. png, jpg, gif, svg and webp all work.
|
||||||
|
|
||||||
|
Two things the setup script deliberately leaves alone, because they are
|
||||||
|
decisions rather than branding:
|
||||||
|
|
||||||
|
- `system domain set-allow-account-recovery true` lets someone who has
|
||||||
|
lost their credentials get a reset link by proving one of their own
|
||||||
|
email addresses, instead of asking the board. Worth having for a vel;
|
||||||
|
it is still a door, so it is turned on knowingly or not at all.
|
||||||
|
- `system domain set-allow-easter-eggs` - seasonal icons and birthday
|
||||||
|
surprises. Off in production builds, and this is somebody's vel.
|
||||||
|
|||||||
@@ -36,6 +36,27 @@ for g in kasserer styret komiteer nabohjelp arrangementer elvesti horingsinstans
|
|||||||
done
|
done
|
||||||
$K system oauth2 update-claim-map-join $C groups array
|
$K system oauth2 update-claim-map-join $C groups array
|
||||||
|
|
||||||
|
# What a member sees when they land on the login page. Out of the box
|
||||||
|
# Kanidm says "kanidm" and shows its own mark, which tells a neighbour
|
||||||
|
# nothing about whose site they are signing in to - and a login page
|
||||||
|
# that looks like it belongs to no one is the kind of thing people
|
||||||
|
# rightly hesitate over.
|
||||||
|
#
|
||||||
|
# The logo comes from the content repo, because that is already where
|
||||||
|
# this site's identity lives: the same file site.yaml uses as the
|
||||||
|
# favicon. Branding follows the content, not this repo.
|
||||||
|
$K system domain set-displayname "$SITE_NAME" || true
|
||||||
|
$K system oauth2 set-displayname $C "$SITE_NAME" || true
|
||||||
|
|
||||||
|
logo=$(mktemp --suffix=.svg)
|
||||||
|
if curl -sfL "$CONTENT_REPO/raw/branch/$CONTENT_BRANCH/images/logo.svg" -o "$logo" && [ -s "$logo" ]; then
|
||||||
|
$K system domain set-image "$logo" svg || echo "note: could not set the instance logo"
|
||||||
|
$K system oauth2 set-image $C "$logo" svg || echo "note: could not set the client logo"
|
||||||
|
else
|
||||||
|
echo "note: no images/logo.svg in the content repo - leaving the default mark"
|
||||||
|
fi
|
||||||
|
rm -f "$logo"
|
||||||
|
|
||||||
secret=$($K system oauth2 show-basic-secret $C 2>/dev/null | tail -1)
|
secret=$($K system oauth2 show-basic-secret $C 2>/dev/null | tail -1)
|
||||||
sed -i "s|^OAUTH2_CLIENT_SECRET=.*|OAUTH2_CLIENT_SECRET=$secret|" .env portal.env
|
sed -i "s|^OAUTH2_CLIENT_SECRET=.*|OAUTH2_CLIENT_SECRET=$secret|" .env portal.env
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user