Қолданбаларыңызға арналған сәйкестендіру, ашық стандарттарда
Сізді ішке шақырады.
Бір аккаунт. Барлық есік.
Usher Identity адамдарды қолданбаларыңызға OpenID Connect және OAuth 2.1 арқылы кіргізеді: кіру кілттері, кодтар, әлеуметтік желі арқылы кіру және ұйымдар, ал әр орта басқаларынан бөлек ұсталады.
Бастау тегін. Өз серверлеріңізде де жұмыс істейді.
- OpenID Connect
- OAuth 2.1
- PKCE
- WebAuthn
- JWKS
- DPoP
- TOTP
Lobby
Тергемейтін, қарсы алатын кіру беті.
Lobby — Usher Identity сіздің қолданбаңыз үшін орналастыратын кіру беті. Ол адамның қайда бара жатқанын әрқашан айтады және оны қай қолданба жіберсе де бірдей көрінеді, сондықтан адамдар оған сенуге үйренеді.
- Бара жатқан өніміңізді әр жолы атайды.
- Кіру кілттері, электрондық поштаға келетін кодтар және сиқырлы сілтемелер, ал құпиясөздер — тек қаласаңыз.
- Әр өнімде ашық не қараңғы, бірдей сабырлы бет.
Бұл — Lobby бетінің жұмыс істейтін көшірмесі. Ол осы бетте жұмыс істейді, ештеңе жібермейді және ешкімді кіргізбейді.
Тәуелділік емес, стандарттар
Сіздің технологияларыңыз білетін протоколдармен сөйлейді.
Usher Identity — ең алдымен OpenID Connect провайдері. Ыңғайлы болса, біздің SDK-ны пайдаланыңыз немесе кез келген тілдегі кез келген OIDC кітапханасын қолданыңыз. Бір күні кетсеңіз, қолданбаларыңызға адамдарды кіргізу тәсілін өзгертудің қажеті жоқ.
- OIDC Core · Discovery
OpenID Connect
Әр ортаға discovery құжаты, ID токендері және userinfo. Кез келген сертификатталған клиент кітапханасы жұмыс істейді.
- Тек S256
PKCE бар OAuth 2.1
Ашық не құпия болсын, әр клиент үшін PKCE бар авторизация коды. Implicit ағыны жоқ, токен нүктесінде құпиясөздер жоқ.
- RS256 · ES256 · EdDSA
JWKS және кілттерді ауыстыру
Әр орта jwks_uri мекенжайында жарияланған өз кілттерімен қол қояды. Оларды кірген адамдарды шығарып жібермей ауыстырыңыз.
- RFC 7662 · RFC 7009
Тексеру және кері қайтарып алу
Токеннің әлі жарамды екенін сұраңыз немесе оны дәл қазір тоқтатыңыз. Usher Identity өз сеанстарын әр сұрауда тексереді, сондықтан сеансты тоқтату бірден күшіне енеді.
RP бастайтын және back-channel шығу
Қолданбаңыздан шығыңыз немесе сеанс кез келген жерде аяқталғанда Usher Identity әр қолданбаға хабарласын.
- RFC 9449
DPoP
Токендерді клиенттегі кілтке байланыстырыңыз, сонда ұрланған токен жалғыз өзі еш пайдаға аспайды.
- WebAuthn
Кіру кілттері
Қосымша емес, толыққанды мүмкіндік. Адамдар саусақ ізімен, бетпен немесе қауіпсіздік кілтімен кіреді, ал фишингпен ұрлайтын ештеңе жоқ.
- TOTP
Аутентификатор қолданбалары
Кез келген аутентификатордан уақытқа негізделген кодтар, резервтік кодтармен бірге. Екінші факторды міндетті емес немесе міндетті етіңіз.
Сиқырлы сілтемелер
Пошта жәшігінен бір түрту. Қысқа мерзімді, бір реттік және оларды жіберген ортаға байланған.
Электрондық поштаға кодтар
Бір құрылғыда кіріп, поштаны басқа құрылғыда оқитындарға арналған алты сан.
Әлеуметтік желі арқылы кіру
Google, GitHub, Microsoft және Apple. Аккаунт оның электрондық поштасы расталғанда ғана байланыстырылады.
Ұйымдар мен командалар
Қолданбаңызды пайдаланатын бизнестерге арналған мүшелер, рөлдер және шақырулар.
- Жақында
SAML
Тұтынушыларыңыздың қызметкерлерге арналған сәйкестендіру провайдерлерімен бірыңғай кіру.
- Жақында
SCIM
Тұтынушыларыңыздың каталогтарынан пайдаланушыларды қосу және өшіру.
Кіру қалай жүреді
Бес қадам, әрқайсысы стандартты.
Бұл — OpenID Connect-тің PKCE бар авторизация коды ағыны, кез келген салмақты сәйкестендіру провайдері қолданатын ағын. Төмен айналдырып қараңыз.
- 01
Қолданбаңыз адамды Lobby бетіне жібереді.
Біреу «Usher Identity арқылы жалғастыру» дегенді таңдағанда, қолданбаңыз оны ортаңыздың авторизация нүктесіне PKCE сынағымен және кейін тексеретін state мәнімен қайта бағыттайды.
GET acme.usherid.com/api/auth/oauth2/authorize ?response_type=code &client_id=acme_web &redirect_uri=https://app.acme.example/callback &scope=openid profile email offline_access &state=k3Jx… &code_challenge=E9Mel…cM &code_challenge_method=S256
- 02
Адам өзіне ыңғайлы жолмен кіреді.
Кіру кілті, электрондық поштаға келген код, сиқырлы сілтеме, әлеуметтік желі аккаунты немесе құпиясөз: Lobby тек ортаңыз рұқсат ететінін ұсынады және адамның қай қолданбаға бара жатқанын әрқашан айтады.
Usher IdentityUsher IdentityAcme қолданбасына өтуҚайта оралуыңызбен.
Кіру кілтін пайдалануКодты электрондық поштаға жіберу - 03
Адам бөлісуге келіседі.
Алғаш рет адамдар қолданбаңыздың не сұрайтынын (профилін, электрондық поштасын, кірген күйде қалуды) көріп, бір рет келіседі.
Acme мыналарды сұрайды:
- Атыңыз бен суретіңізді көру
- Электрондық пошта мекенжайыңызды көру
- Сізді кірген күйде ұстау
Бас тартуРұқсат беру - 04
Usher Identity код қайтарады.
Браузер қайта бағыттау URI мекенжайыңызға бес минут жарамды бір реттік кодпен және сіз жіберген state мәнімен оралады, қолданбаңыз оны тексереді.
302 Found Location: https://app.acme.example/callback ?code=SplxlOBeZQQYbYS6WxSbIA &state=k3Jx…
- 05
Қолданбаңыз оны токендерге айырбастайды.
Серверіңіз кодты және PKCE верификаторын токен нүктесіне жібереді. Жауабында адамның кім екенін айтатын ID токені, API-ыңызға арналған қатынас токені және кірген күйде қалуға арналған жаңарту токені келеді.
POST acme.usherid.com/api/auth/oauth2/token grant_type=authorization_code&code=Splx… &code_verifier=dBjftJeZ4CVP… { "token_type": "Bearer", "access_token": "eyJhbGciOiJSUzI1NiIs…", "id_token": "eyJhbGciOiJSUzI1NiIs…", "refresh_token": "8xLOxBtZp8…", "expires_in": 600 }
Оқшаулау — негізінде
Әр орта — жеке ғимарат.
Сіздің өндірістік және әзірлеу орталарыңыз, басқа әр тұтынушының орталары сияқты, маңызды ештеңені бөліспейді. Біреуіндегі қате басқасының деректерін оқи алмайды, оның атынан қол қоя алмайды және оған кіре алмайды.
- Өз Postgres схемасы
- Ортақ кестедегі тенант бағаны емес, тек осы ортаға арнап жасалған және ішінде басқа ештеңе жоқ схема.
- Өз қолтаңба кілттері
- Бір ортаның токендері ешқашан басқа ортаның кілттерімен тексеруден өтпейді.
- Өз мөрленген құпиялары
- Ортаның өз деректер кілтімен мөрленеді, ал ол кілттің өзі негізгі кілтпен оралған.
- Өз хосты
- Эмитенттер Usher сайты мен Console-дан бөлек доменде, тек сол хостқа арналған cookie файлдарымен жұмыс істейді.
usheridentity.com
Сайт, Usher Identity Console, Usher Identity аккаунттары
*.usherid.com
Әр ортаға бір эмитент, бөлек доменде
Пайдаланушылар, сеанстар және токендер осы ортаға арнап жасалған схемада сақталады. Сұраулар сол схемада орындалады, ешқашан тенант бағаны бар ортақ кестеде емес.
Acme өндірістік ортасының мөрленген Google клиент құпиясын Northwind өндірістік ортасына көшіру.
Әзірлеушілерге
Алғашқы кіру — үш жолмен.
SDK шыққанда оны қосыңыз, өзіңіз сенетін OIDC кітапханасын пайдаланыңыз немесе discovery құжатын оқудан бастаңыз. Астында бәрі бір протокол.
// app/layout.tsx
import { UsherProvider } from '@usher/nextjs'
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="en">
<body>
<UsherProvider>{children}</UsherProvider>
</body>
</html>
)
}
// app/page.tsx
import { SignIn, UserButton, currentUser } from '@usher/nextjs'
export default async function Page() {
const user = await currentUser()
return user ? <UserButton /> : <SignIn />
}Өзіңіз іске қосыңыз
Сіздің серверлеріңіз, сіздің кілттеріңіз.
Usher Identity-ді қызмет ретінде пайдаланыңыз немесе сол платформаны өз серверлеріңізде, өз кілттеріңізбен және өз дерекқорыңызбен іске қосыңыз.
Docker
Бір Compose файлы: қолданбалар, Postgres, Valkey, Caddy шеткі сервері және шығыс прокси. Контейнерлер жаңа артықшылықтарсыз және мүмкіндіктері алынып тасталған күйде жұмыс істейді.
Ubuntu
Қарапайым Ubuntu сервері жеткілікті. TLS-ті Caddy аяқтайды, ал құпиялар контейнерлерге файл ретінде беріледі, бейнелерге ешқашан енгізілмейді.
Postgres
Postgres бәрін сақтайды, әр ортаға бір схема. Ол және Valkey интернетке жолы жоқ желіде орналасқан.
# on an Ubuntu server with Docker Engine and the Compose plugin
bash infra/scripts/setup-env.sh --prod \
--domain usher.example --tenant-domain usherid.example
docker compose -f compose.yaml -f compose.prod.yaml \
--profile core --profile apps --profile edge up -d --wait
pnpm db:migrate # applies the database migrationsӨзіңіз орналастыруға арналған толық нұсқаулық дайындалуда. Жоғарыдағы пәрмендер оның жалпы көрінісін береді.
Пайдаланушыларыңызды ішке шақырыңыз.
Жұмыс кеңістігі мен жоба жасаңыз, сонда алғашқы ортаңыз өз эмитентімен, кілттерімен және Lobby бетімен бірге келеді.
Бір рет кіріңіз. Барлық жерде күтіп тұр.