Files
zeekay 3c0491838b /iam and /s3 open on two sentences and a list of facts, not fifteen centred lines
Both pages are a heading and one paragraph, and the paragraphs had grown
to 230 and 140 words set centred under the hero: PKCE, argon2id, refresh
families, SCIM and ML-DSA-65 in one block on /iam, shards and roles on
/s3. The products Lede takes `facts` now, one per line under a hairline,
left-aligned on the paragraph's measure, and the paragraph says only what
the product is. Every fact is the old paragraph's, reworded where a
sentence had to stand alone.
2026-10-18 17:09:33 -07:00

41 lines
2.0 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
'use client'
import { ProductFooter } from "@/components/products/ProductFooter"
import { Lede } from "@/components/products/Lede"
import { AgentPrompt } from "@/components/product/AgentPrompt"
import { Related } from "@/components/product/Related"
import { product } from '@/lib/product'
import { Box } from '@hanzo/ui'
/** The prompt's product, off the one table that holds a product's name, route,
* audited command and docs page. */
const PRODUCT = product('iam')
export default function IamPage() {
return (
<Box minH="100vh" $platform-web={{ color: 'var(--foreground)' }}>
<main>
<Lede
title="Hanzo IAM"
facts={[
'Authorization code with PKCE, always S256.',
'The passwords that do exist are argon2id digests, and a scheme IAM does not recognize fails closed.',
'Refresh tokens are single-use and kept only as a hash. Presenting a spent one revokes the whole family, so a stolen token cannot outlive its session.',
'A second factor is an authenticator app, a code by SMS or email, or a passkey. Adding or dropping one signs the account out of every other browser.',
'Sign-in arrives from Google, from GitHub or from any OIDC issuer you name, and SCIM 2.0 keeps a directory in step.',
'Tokens are signed RS256, with ML-DSA-65 available per certificate and published in the same JWKS.',
'Every organization is a tenancy boundary, and membership travels in the token.',
'What you may reach once signed in is Authz’s to decide, reading the same token.',
]}
>
The sign-in behind every Hanzo service. It speaks OpenID Connect and OAuth 2.0, so your application reads a standard
discovery document, receives a signed token and never handles a password.
</Lede>
{PRODUCT && <AgentPrompt product={PRODUCT} />}
{PRODUCT && <Related product={PRODUCT} />}
<ProductFooter slug="iam" name="IAM" />
</main>
</Box>
)
}