നിങ്ങളുടെ ആപ്പുകൾക്കുള്ള ഐഡന്റിറ്റി, തുറന്ന മാനദണ്ഡങ്ങളിൽ
നിങ്ങളെ അകത്തേക്ക് ആനയിക്കുന്നു.
ഒരു അക്കൗണ്ട്. എല്ലാ വാതിലുകളും.
Usher Identity OpenID Connect-ഉം OAuth 2.1-ഉം ഉപയോഗിച്ച് ആളുകളെ നിങ്ങളുടെ ആപ്പുകളിലേക്ക് സൈൻ ഇൻ ചെയ്യിക്കുന്നു: പാസ്കീകൾ, കോഡുകൾ, സോഷ്യൽ സൈൻ ഇൻ, സ്ഥാപനങ്ങൾ; ഓരോ എൻവയോൺമെന്റും മറ്റെല്ലാറ്റിൽ നിന്നും വേർതിരിച്ച്.
തുടങ്ങാൻ സൗജന്യം. നിങ്ങളുടെ സ്വന്തം സെർവറുകളിലും പ്രവർത്തിക്കും.
- OpenID Connect
- OAuth 2.1
- PKCE
- WebAuthn
- JWKS
- DPoP
- TOTP
ലോബി
ചോദ്യം ചെയ്യുകയല്ല, സ്വാഗതം ചെയ്യുന്ന സൈൻ ഇൻ പേജ്.
Usher Identity നിങ്ങളുടെ ആപ്പിനായി ഹോസ്റ്റ് ചെയ്യുന്ന സൈൻ ഇൻ പേജാണ് ലോബി. ആൾ എവിടേക്കാണ് പോകുന്നതെന്ന് അത് എപ്പോഴും പറയും, ഏത് ആപ്പ് അയച്ചാലും ഒരേ രൂപത്തിലായിരിക്കും, അങ്ങനെ ആളുകൾ അതിനെ വിശ്വസിക്കാൻ പഠിക്കുന്നു.
- നിങ്ങൾ പോകുന്ന ഉൽപ്പന്നത്തിന്റെ പേര് എല്ലാ തവണയും പറയുന്നു.
- പാസ്കീകൾ, ഇമെയിൽ ചെയ്ത കോഡുകൾ, മാജിക് ലിങ്കുകൾ; നിങ്ങൾക്ക് വേണമെങ്കിൽ മാത്രം പാസ്വേഡുകൾ.
- ലൈറ്റോ ഡാർക്കോ, എല്ലാ ഉൽപ്പന്നത്തിലും ഒരേ ശാന്തമായ പേജ്.
ഇത് ലോബിയുടെ പ്രവർത്തിക്കുന്ന ഒരു പകർപ്പാണ്. ഇത് ഈ പേജിനുള്ളിൽ പ്രവർത്തിക്കുന്നു, ഒന്നും അയയ്ക്കുന്നില്ല, ആരെയും സൈൻ ഇൻ ചെയ്യിക്കുന്നില്ല.
മാനദണ്ഡങ്ങൾ, ലോക്ക്-ഇൻ അല്ല
നിങ്ങളുടെ സ്റ്റാക്കിന് ഇതിനകം അറിയാവുന്ന പ്രോട്ടോക്കോളുകൾ സംസാരിക്കുന്നു.
Usher Identity ആദ്യം ഒരു OpenID Connect പ്രൊവൈഡറാണ്. സൗകര്യമെങ്കിൽ ഞങ്ങളുടെ SDK ഉപയോഗിക്കുക, അല്ലെങ്കിൽ ഏത് ഭാഷയിലെയും ഏത് OIDC ലൈബ്രറിയും. എന്നെങ്കിലും നിങ്ങൾ വിട്ടുപോയാലും, ആളുകളെ സൈൻ ഇൻ ചെയ്യിക്കുന്ന രീതി നിങ്ങളുടെ ആപ്പുകൾക്ക് മാറ്റേണ്ടതില്ല.
- OIDC Core · Discovery
OpenID Connect
ഓരോ എൻവയോൺമെന്റിനും ഒരു ഡിസ്കവറി ഡോക്യുമെന്റ്, ID ടോക്കണുകൾ, userinfo. സർട്ടിഫൈ ചെയ്ത ഏത് ക്ലയന്റ് ലൈബ്രറിയും പ്രവർത്തിക്കും.
- S256 മാത്രം
PKCE-യോടുകൂടിയ OAuth 2.1
പബ്ലിക്കായാലും കോൺഫിഡൻഷ്യലായാലും, എല്ലാ ക്ലയന്റിനും PKCE-യോടുകൂടിയ ഓതറൈസേഷൻ കോഡ്. ഇംപ്ലിസിറ്റ് ഫ്ലോ ഇല്ല, ടോക്കൺ എൻഡ്പോയിന്റിൽ പാസ്വേഡുകളില്ല.
- RS256 · ES256 · EdDSA
JWKS-ഉം കീ റൊട്ടേഷനും
ഓരോ എൻവയോൺമെന്റും അതിന്റെ jwks_uri-ൽ പ്രസിദ്ധീകരിച്ച സ്വന്തം കീകൾ ഉപയോഗിച്ച് സൈൻ ചെയ്യുന്നു. സൈൻ ഇൻ ചെയ്ത ആളുകളെ ബാധിക്കാതെ അവ റൊട്ടേറ്റ് ചെയ്യുക.
- RFC 7662 · RFC 7009
ഇൻട്രോസ്പെക്ഷനും റദ്ദാക്കലും
ഒരു ടോക്കൺ ഇപ്പോഴും സാധുവാണോ എന്ന് ചോദിക്കുക, അല്ലെങ്കിൽ ഇപ്പോൾത്തന്നെ അത് അവസാനിപ്പിക്കുക. Usher Identity ഓരോ അഭ്യർത്ഥനയിലും സ്വന്തം സെഷനുകൾ പരിശോധിക്കുന്നു, അതിനാൽ ഒന്ന് അവസാനിപ്പിച്ചാൽ ഉടൻ പ്രാബല്യത്തിൽ വരും.
RP-ആരംഭിത, ബാക്ക്-ചാനൽ ലോഗൗട്ട്
നിങ്ങളുടെ ആപ്പിൽ നിന്ന് സൈൻ ഔട്ട് ചെയ്യുക, അല്ലെങ്കിൽ എവിടെയെങ്കിലും ഒരു സെഷൻ അവസാനിക്കുമ്പോൾ Usher Identity എല്ലാ ആപ്പുകളെയും അറിയിക്കട്ടെ.
- RFC 9449
DPoP
ക്ലയന്റിന്റെ കൈവശമുള്ള ഒരു കീയുമായി ടോക്കണുകൾ ബന്ധിപ്പിക്കുക, അങ്ങനെ മോഷ്ടിച്ച ഒരു ടോക്കൺ കൊണ്ട് മാത്രം ഒരു പ്രയോജനവുമില്ല.
- WebAuthn
പാസ്കീകൾ
ഒരു ആഡ്-ഓൺ അല്ല, പൂർണ്ണ പിന്തുണ. ആളുകൾ വിരലടയാളം, മുഖം അല്ലെങ്കിൽ സെക്യൂരിറ്റി കീ ഉപയോഗിച്ച് സൈൻ ഇൻ ചെയ്യുന്നു, ഫിഷ് ചെയ്യാൻ ഒന്നുമില്ല.
- TOTP
ഓതന്റിക്കേറ്റർ ആപ്പുകൾ
ഏത് ഓതന്റിക്കേറ്ററിൽ നിന്നുമുള്ള സമയാധിഷ്ഠിത കോഡുകൾ, ബാക്കപ്പ് കോഡുകളോടൊപ്പം. രണ്ടാം ഘടകം ഓപ്ഷണലോ നിർബന്ധമോ ആക്കുക.
മാജിക് ലിങ്കുകൾ
ഇൻബോക്സിൽ നിന്ന് ഒറ്റ ടാപ്പ്. കുറഞ്ഞ സമയം മാത്രം സാധുവായത്, ഒറ്റത്തവണ ഉപയോഗം, അയച്ച എൻവയോൺമെന്റുമായി ബന്ധിപ്പിച്ചത്.
ഇമെയിൽ കോഡുകൾ
ഒരു ഉപകരണത്തിൽ സൈൻ ഇൻ ചെയ്യുകയും മറ്റൊന്നിൽ ഇമെയിൽ വായിക്കുകയും ചെയ്യുന്നവർക്കായി ആറ് അക്കങ്ങൾ.
സോഷ്യൽ സൈൻ ഇൻ
Google, GitHub, Microsoft, Apple. ഇമെയിൽ തെളിയിക്കപ്പെട്ടാൽ മാത്രമേ ഒരു അക്കൗണ്ട് ലിങ്ക് ചെയ്യൂ.
സ്ഥാപനങ്ങളും ടീമുകളും
നിങ്ങളുടെ ആപ്പ് ഉപയോഗിക്കുന്ന ബിസിനസുകൾക്കായി അംഗങ്ങൾ, റോളുകൾ, ക്ഷണങ്ങൾ.
- ഉടൻ വരുന്നു
SAML
നിങ്ങളുടെ ഉപഭോക്താക്കളുടെ ജീവനക്കാർക്കുള്ള ഐഡന്റിറ്റി പ്രൊവൈഡർമാരുമായി സിംഗിൾ സൈൻ-ഓൺ.
- ഉടൻ വരുന്നു
SCIM
നിങ്ങളുടെ ഉപഭോക്താക്കളുടെ ഡയറക്ടറികളിൽ നിന്ന് പ്രൊവിഷനിംഗും ഡിപ്രൊവിഷനിംഗും.
ഒരു സൈൻ ഇൻ എങ്ങനെ പ്രവർത്തിക്കുന്നു
അഞ്ച് ഘട്ടങ്ങൾ, ഓരോന്നും മാനദണ്ഡപ്രകാരം.
ഇത് PKCE-യോടുകൂടിയ OpenID Connect-ന്റെ ഓതറൈസേഷൻ കോഡ് ഫ്ലോ ആണ്, ഗൗരവമുള്ള എല്ലാ ഐഡന്റിറ്റി പ്രൊവൈഡർമാരും സംസാരിക്കുന്ന അതേ ഫ്ലോ. സ്ക്രോൾ ചെയ്ത് കാണുക.
- 01
നിങ്ങളുടെ ആപ്പ് അവരെ ലോബിയിലേക്ക് അയയ്ക്കുന്നു.
ആരെങ്കിലും 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
അവർ അവരുടെ രീതിയിൽ സൈൻ ഇൻ ചെയ്യുന്നു.
പാസ്കീ, ഇമെയിൽ ചെയ്ത കോഡ്, മാജിക് ലിങ്ക്, സോഷ്യൽ അക്കൗണ്ട് അല്ലെങ്കിൽ പാസ്വേഡ്: നിങ്ങളുടെ എൻവയോൺമെന്റ് അനുവദിക്കുന്നവ മാത്രമേ ലോബി നൽകൂ, അവർ ഏത് ആപ്പിലേക്കാണ് പോകുന്നതെന്ന് എപ്പോഴും പറയും.
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-ൽ നിന്നും വേറിട്ട ഒരു ഡൊമെയ്നിലാണ്, ഹോസ്റ്റിന് മാത്രമുള്ള കുക്കികളോടെ.
usheridentity.com
സൈറ്റ്, Usher Identity Console, Usher Identity അക്കൗണ്ടുകൾ
*.usherid.com
ഓരോ എൻവയോൺമെന്റിനും ഒരു ഇഷ്യൂവർ, വേറിട്ട ഒരു ഡൊമെയ്നിൽ
ഉപയോക്താക്കളും സെഷനുകളും ടോക്കണുകളും ഈ എൻവയോൺമെന്റിനായി നിർമ്മിച്ച ഒരു സ്കീമയിലാണ്. ക്വറികൾ ആ സ്കീമയിലാണ് പ്രവർത്തിക്കുന്നത്, ടെനന്റ് കോളമുള്ള പങ്കിട്ട ടേബിളിൽ ഒരിക്കലുമല്ല.
Acme പ്രൊഡക്ഷന്റെ സീൽ ചെയ്ത Google ക്ലയന്റ് സീക്രട്ട് Northwind പ്രൊഡക്ഷനിലേക്ക് പകർത്തുക.
ഡെവലപ്പർമാർക്ക്
നിങ്ങളുടെ ആദ്യ സൈൻ ഇൻ, മൂന്ന് വഴികളിൽ.
SDK എത്തുമ്പോൾ അത് ചേർക്കുക, നിങ്ങൾ ഇതിനകം വിശ്വസിക്കുന്ന OIDC ലൈബ്രറി ഉപയോഗിക്കുക, അല്ലെങ്കിൽ ഡിസ്കവറി ഡോക്യുമെന്റ് വായിച്ച് തുടങ്ങുക. അടിയിൽ എല്ലാം ഒരേ പ്രോട്ടോക്കോൾ തന്നെ.
// 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 സെർവർ മതി. Caddy TLS ടെർമിനേറ്റ് ചെയ്യുന്നു, സീക്രട്ടുകൾ കണ്ടെയ്നറുകൾക്ക് കൈമാറുന്ന ഫയലുകളാണ്, ഒരിക്കലും ഇമേജുകളിൽ ഉൾച്ചേർക്കുന്നില്ല.
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പൂർണ്ണമായ സെൽഫ്-ഹോസ്റ്റിംഗ് ഗൈഡ് വരുന്നു. മുകളിലുള്ള കമാൻഡുകൾ അതിന്റെ രൂപരേഖയാണ്.
നിങ്ങളുടെ ഉപയോക്താക്കളെ അകത്തേക്ക് ആനയിക്കൂ.
ഒരു വർക്ക്സ്പെയ്സും ഒരു പ്രോജക്റ്റും സൃഷ്ടിക്കുക; നിങ്ങളുടെ ആദ്യ എൻവയോൺമെന്റിന് സ്വന്തം ഇഷ്യൂവറും കീകളും ലോബിയും ലഭിക്കും.
ഒരിക്കൽ സൈൻ ഇൻ ചെയ്യുക. എല്ലായിടത്തും സ്വാഗതം.