소개
Usher는 ID 공급자입니다. 사람들을 앱에 로그인시키고, 계정을 안전하게 지키며, 그 사람이 누구인지 앱에 알려 줍니다. 이 모든 일을 OpenID Connect와 OAuth 2.1로 처리하므로, 이미 사용 중인 라이브러리와 함께 작동합니다.
Usher가 하는 일
안내원은 입구에서 두 가지 일을 합니다. 티켓을 확인하고, 좌석으로 안내하는 것입니다. Usher도 앱을 위해 같은 두 가지 일을 합니다.
- 인증. 사람들은 Usher가 호스팅하는 로그인 페이지인 Lobby에서 패스키, 이메일 코드, 매직 링크, 소셜 계정 또는 암호로 자신이 누구인지 증명합니다.
- 인가. 앱은 그 사람이 누구인지, 무엇을 공유하기로 동의했는지 알려 주는 토큰을 받고, API는 이 토큰을 검증할 수 있습니다.
구성 요소
| 구성 요소 | 설명 |
|---|---|
| Lobby | 호스팅되는 로그인 페이지입니다. 사용자가 이동할 앱의 이름을 항상 보여 줍니다. |
| Usher 계정 | 사용자 개인이 갖는 계정입니다. 이메일, 패스키, 2차 인증 수단, 로그인된 기기가 여기에 속합니다. |
| Usher Console | 프로젝트와 환경을 만들고, 애플리케이션을 등록하고, 사용자를 관리하는 곳입니다. |
| SDK와 컴포넌트 | <SignIn />과 <UserButton />을 포함한 @usher/nextjs. SDK와 함께 제공될 예정입니다. |
앱에 들어맞는 방식
만드는 환경마다 고유한 주소를 가진 독립된 OpenID Connect 발급자가 됩니다.
발급자
https://<handle>.usherid.com앱은 로그인할 사람을 이 발급자로 보내고, 코드와 함께 돌아온 사용자를 받은 뒤 그 코드를 토큰으로 교환합니다. 이것이 PKCE를 적용한 표준 인가 코드 흐름이며, 모든 단계가 발급자의 디스커버리 문서에 설명되어 있습니다.
디스커버리 문서
https://<handle>.usherid.com/.well-known/openid-configuration