Sign-in methods
This guide turns on the ways people sign in to TaleArt: a passkey (on by default), a username and password, and an identity provider such as Google, Apple or your own OpenID Connect provider. An admin does the setup in the dashboard, step by step. The rules behind each method are in the Sign-in methods reference. The people and invitations side is in Projects, team and sign-in.
Before you start: the secret key
A provider's client secret, and an Apple private key, are stored encrypted. The key that encrypts them is an environment variable of the API, TALEART_SECRET_KEY: 32 random bytes, base64-encoded. Without it the API still runs, but it refuses to save a secret, so a provider that needs one cannot be used.
# Generate a key once, and keep it with your other secrets:
openssl rand -base64 32
# Set the output as TALEART_SECRET_KEY on the API, then restart the API:
TALEART_SECRET_KEY=<the output of openssl rand -base64 32>Keep the key with your other secrets. If it is lost, the stored secrets cannot be read, and each provider's secret must be entered again. When the key is missing, the Sign-in methods page shows the notice Provider secrets cannot be saved yet, and saving a provider's secret is refused with the same reason.
Set up the methods
Open Settings > Sign-in methods.
An admin finds the page in Settings, in the Sign-in methods tab. The Methods section lists Passkey, on from a fresh install, and Username and password, off. The Providers section below it is empty until you add one. Only admins see the tab. API tokens are unchanged by any of this.
The Sign-in methods page before the secret key is set, a real screenshot of the dashboard. The red notice says provider secrets cannot be saved until TALEART_SECRET_KEY is set. Turn on username and password.
Switch Username and password sign-in on. Each person who joins by invitation then chooses a username and a password. People who already have an account set a password under My sign-in methods. Keep the passkey on until another admin can sign in with the new method.On an empty install, the first admin can also set up with a username and password, but only when the server runs with
TALEART_SETUP_PASSWORD=true. Without it, the setup screen offers the passkey alone.# On an empty install only: the first admin may set up with a username and password. TALEART_SETUP_PASSWORD=true
The same page after turning username and password on, a real screenshot of the dashboard. Add Google.
In the Google Cloud console, create an OAuth client of type Web application, and copy its client ID and client secret. In TaleArt choose Add a provider, then Google. Enter the Button name, the client ID and the client secret, then choose Save provider. The secret is stored encrypted and is never shown again. After saving, copy the Redirect URI from the drawer. It has the formhttps://api.example.com/api/v1/auth/callback/google. Add it as an authorized redirect URI of the client in Google, then choose Test: the check passes when the provider's settings work.
The Google drawer filled with example values, a real screenshot. Nothing is saved: the client secret stays masked as it is typed. Add a generic OpenID Connect provider.
Choose Add a provider, then Generic OpenID Connect. Enter a slug, such ascompany-sso. The method is thenoidc:company-sso. Enter the issuer URL, such ashttps://id.example.com: its discovery document, at/.well-known/openid-configuration, must name exactly this issuer. Enter the client ID and the client secret, save, copy the redirect URI into the provider, then choose Test. A failed check says why, for example The provider did not pass the check: discovery_failed.
A saved provider after Test, a real screenshot. The secret is never shown, only that it is set. The issuer is a local test issuer. Add Apple.
In your Apple developer account, create a Services ID for Sign in with Apple, and a key with Sign in with Apple enabled. Note your 10-character team ID and the key's 10-character key ID. In TaleArt choose Add a provider, then Apple. Enter the Services ID as the client ID, the team ID, the key ID, and paste the private key file (.p8) as PEM text into Private key (.p8). Save, copy the redirect URI, and register it as the Services ID's return URL. Apple sends the user back with a form post, which TaleArt accepts at the same address. The private key is stored encrypted, like a client secret.
The Apple drawer filled with example values, a real screenshot. The private key field holds placeholder text; nothing is saved. See the methods on the sign-in page.
Open the dashboard in a private window, where you are signed out. The sign-in page shows Sign in with a passkey, a form under With a username and password, and one Continue with button per provider that is on and usable. A provider is usable when it is on, its secret is stored, and the server has its key. A method that is off is not shown at all.
The sign-in page with the enabled methods, a real screenshot of the dashboard for a signed-out visitor. Invite someone to join with a provider or a password.
In the project, choose Invite. The link,/invite/<token>, is one-time and valid for 7 days, and it is shown only once. The admin does not enter an email: the person opens the link, enters their name and email, and then chooses a passkey, a username and password, or a provider. With a provider, the email the provider verified must equal the email typed on the invitation page. Otherwise the join is refused withemail_mismatch, or withemail_not_verifiedwhen the provider did not verify the address. A provider never creates an account by itself: it can only join an invitation or be linked by a user who is signed in.
The invitation page for a fresh visitor, a real full-page screenshot of the dashboard. The link itself is not shown. Let each user manage their own methods.
A signed-in user opens Settings > My sign-in methods. There they see their passkeys, their password (its username, never the password itself), and their linked providers. They set or change the password (the current one is needed when one is set), remove a passkey, unlink a provider, or choose Link a provider to attach one to the account. A method can be removed only while another one remains.
My sign-in methods, a real screenshot of the dashboard. The username is an example. Issue a one-time reset link for a user who forgot the password.
An admin opens Settings > Users and chooses Issue reset link on the user's row. The button is available while username and password sign-in is on. Choose Create link, then Copy link. The link is shown only once, and it works once, for 24 hours. Share it with the user. The user opens it, sees Set a new password for their name, enters a password of 12 to 128 characters, and chooses Set password and sign in. Signing in there ends the user's other sessions. A new link replaces the earlier unused ones.
The one-time reset link dialog, a real screenshot. The link is blurred: it is shown once and works once. Turn a method off safely.
On Settings > Sign-in methods, switch the method off. TaleArt refuses a change that would leave an admin with no way to sign in, and says so: That would leave an admin with no way to sign in. Every admin needs a passkey, a password, or a linked provider that is on. Give each admin one of those first, then try again. It also refuses to turn off the last method on, with Keep at least one sign-in method on. Turn another method on first. Deleting a provider that sign-in depends on is refused the same way. Turn the new method on, check that each admin signs in with it, and only then turn the old one off.
The lock-out guard, a real screenshot of the dashboard. TaleArt refuses to turn the passkey off when no admin keeps another usable method.
Notes
- Registration stays by invitation, plus the first admin on an empty install. There is no open sign-up.
- A provider's redirect URI is always
PUBLIC_API_URLplus/api/v1/auth/callback/and the slug. - API tokens are unchanged: a script still calls the Management API with its token, and sign-in methods are never reached with a token.