Integrations

Google Workspace for Education with Kastr: staff directory sync, and why there is no Google Sign-In

Two questions, one page. Can Google Workspace be the source of your staff directory in Kastr — yes, with caveats about what a directory does and does not know. And can staff sign in with their Google account — no, and here is the reasoning, the design of what we use instead, and what a security reviewer should test.

Last reviewed 2026-08-04 ยท Kastr is pre-launch; we publish dated status rather than logos.

Authentication approaches for a platform whose largest population holds no district accounts
SAML / OIDC SSOPassword + MFAMagic link (what Kastr uses)
Works for staffYes, wellYesYes, with email friction
Works for 20,000 guardiansNo accounts exist20,000 passwords to resetYes — nothing to remember
Credential to stealIdP sessionA reusable passwordA token valid 15 minutes, once
OffboardingImmediate at the IdPManualRole end date, next request fails
MFA availableYes, at the IdPYesNo — none, today
Phishing resistanceDepends on factorsPoorSingle-use, device-bound, short-lived
Available in Kastr todayNoNoYes, and it is the only option

The bottom row is the honest summary: this is not a menu. Magic link is the only authentication Kastr has. The table exists because the trade-off is real and worth arguing about, not because we are pretending to have made a considered selection from three shipped options.

Using Google as your staff directory source

Google Workspace knows who works for your district and, if your organisational-unit tree is maintained, roughly where. That makes it a reasonable staff source and a hopeless student-and-guardian source — guardians do not have district Google accounts, and student accounts carry no contact information for their families.

So the topology is: staff from Google, students and guardians from the SIS. Two files, one endpoint.

For the staff extract, use the Admin SDK Directory API and pull active accounts only, with the fields that matter: primary email, given and family names, organisational unit path, suspended status, and whatever custom schema your district uses to hold a role or building code. Filter out suspended accounts — a suspended account is a person who should not be receiving staff broadcasts.

A worked example of OU-to-role mapping in a three-building district:

  • /Staff/Lincoln Elementary/Teachers → teacher role at the Lincoln Elementary organisation.
  • /Staff/Lincoln Elementary/Office → front-office role at Lincoln Elementary, which is the role that gets the messaging capability in most districts.
  • /Staff/District Office → district-level role at the root organisation, which through the row-level security hierarchy can see all three buildings.

Each role is effective-dated, so a teacher moving from Lincoln to Washington in January has two role rows with a clean boundary rather than an overwritten field. That matters when someone asks in June who was at which building in March.

Groups are not roles

The tempting shortcut is to use Google Groups as audiences: you already have all-staff@, lincoln-teachers@, and a dozen others, and they are more or less maintained.

Two reasons not to build on them. First, group membership carries no dates. A group tells you who is in it right now and nothing about when they joined or left, so it cannot answer a question about the past — and roster questions are almost always about the past when they are being asked seriously. Second, groups drift. Every district has at least one distribution list that has not been accurate since 2021 and that nobody owns.

Use the OU path, which is maintained because account provisioning depends on it, and treat groups as a cross-check rather than a source. To answer the related question directly: Kastr cannot send to a Google Group as an address. Messages go to people in the roster, on the contact points the roster gave us, which is what makes per-person consent state, language preference and delivery evidence possible at all.

Why there is no Google Sign-In, stated plainly

Kastr supports no SSO. No SAML, no OIDC, no Google Sign-In, no ClassLink, no Clever, and no MFA of any kind. Magic link is the only authentication path in the product, for a district superintendent and for a guardian alike.

The reasoning: in a 12,000-student district there are roughly 20,000 guardians and 900 staff. Guardians hold no district-issued account and never will. An authentication design that works beautifully for 4% of the people the system serves, and requires a second mechanism for the other 96%, means running two authentication systems — and the weaker one still exists. We built one path and made it as strong as a single-factor path can be.

Where that costs you. Staff sign in through their email rather than through the portal they already have open, which is real daily friction. There is no MFA to show a security reviewer. There is no immediate central offboarding kill switch of the kind an identity provider gives you — ending a role stops the next sign-in, but it is not the same control. If your district has a policy mandating SSO for all vendor systems, Kastr does not meet it today. That is a legitimate reason to choose someone else and we would rather you knew in August than in March.

What a security reviewer should test instead

The magic link design is specific enough to be tested in ten minutes, which is more than can be said for most vendor security claims. Hand your reviewer this list:

  • Single use. Request a link, open it, then open it again. The second attempt must fail. Consumption is atomic, which also defeats the mail-scanner prefetch problem where a security appliance opens the link before the human does.
  • Fifteen-minute expiry. Request a link, wait, then use it. Tokens are 32 random bytes with a hard time-to-live.
  • Same-device binding. Request on one browser, open in another. It must fail. The binding is a cookie holding the SHA-256 of the token, compared with a constant-time comparison.
  • No account enumeration. Request a link for an address that does not exist. The response must be identical to the one for a real address, in both content and timing.
  • Session records. Confirm that the stored session IP is a hash rather than the address itself.

Alongside that, the parts a reviewer usually cares about more: tenant isolation is enforced by Postgres row-level security under a non-owner, DML-only role, is hierarchy-aware, fails closed with no organisation context, and is covered by a cross-tenant leakage suite that runs in CI against real Postgres 16. Every administrative action lands in a per-organisation SHA-256 hash-chained audit log that is append-only at two independent layers — revoked table permissions and RLS policies with no UPDATE or DELETE path.

Questions people actually ask

Can staff sign in to Kastr with their Google account?

No. There is no Google Sign-In and no SSO of any kind. Staff receive a single-use magic link by email, valid fifteen minutes and bound to the requesting device. It is real friction compared with a portal tile, and we would rather state it than describe an unbuilt roadmap.

Does Kastr support SAML or OIDC single sign-on?

No. Neither, and no MFA either. Magic link is the only authentication method in the product. If your district policy requires SSO for all vendor systems, Kastr does not meet that policy today and that is a legitimate reason to rule us out.

Is magic-link authentication acceptable to a district security review?

Sometimes, and it depends on your policy rather than on the design. What we can offer is a design a reviewer can test in ten minutes: 32-byte tokens, fifteen-minute expiry, atomic single-use consumption, same-device binding with a constant-time comparison, no account enumeration, and session IPs stored hashed. If your policy mandates a second factor, none of that clears the bar.

How do I keep Kastr staff roles in step with our Google OU structure?

Export active accounts from the Admin SDK Directory API with the OU path, map paths to roles and organisations in your extract job, and POST it alongside the SIS roster. Roles are effective-dated, so a teacher changing buildings mid-year produces two clean role rows rather than an overwritten field. Filter out suspended accounts.

Can Kastr message a Google Group?

No. Messages go to people in the roster on the contact points the roster supplied, not to distribution addresses. That is what makes per-person consent state, language preference and delivery evidence possible. Group membership also carries no dates, so it cannot answer a question about who was included last March.

One price. Every feature. Locked for three years.

$3.50 per student per year under 5,000 students. No tiers, no add-on modules, no per-message fees. Published on the site because you should not have to book a call to learn a price.