applications
Auth0 Applications
Auth0 Application(애플리케이션)은 사용자가 인증하거나 인가받을 수 있도록 등록해 두는 앱의 식별자예요. Auth0는 애플리케이션의 유형(Application type), 자격 증명 보안(Credential security), **소유 관계(Ownership)**라는 세 가지 특성으로 앱을 분류하고, 이를 바탕으로 등록·설정·모니터링하는 방법을 제공해요. 이 문서에서는 애플리케이션 유형별 특징과 대시보드 등록, 클라이언트 시크릿 관리, grant types(승인 흐름) 설정까지 핵심 개념을 다룰게요.
출처: 문서
본문
애플리케이션 분류 기준
Auth0는 애플리케이션을 다음 특성을 기준으로 분류해요.
1. 애플리케이션 유형 (Application type) — 정규 웹 애플리케이션, 단일 페이지 웹 애플리케이션, 네이티브 애플리케이션, 머신-투-머신 애플리케이션으로 나뉘어요.
- 정규 웹 애플리케이션 (Regular web applications) — Express.js나 ASP.NET처럼 대부분의 애플리케이션 로직을 서버에서 처리하는 전통적인 웹 앱이에요.
- 단일 페이지 웹 애플리케이션 (Single-page web applications, SPAs) — AngularJS + Node.js나 React처럼 대부분의 UI 로직을 웹 브라우저에서 처리하고, 주로 API를 통해 웹 서버와 통신하는 JavaScript 앱이에요.
- 네이티브 애플리케이션 (Native applications) — iOS나 Android처럼 기기에서 네이티브로 실행되는 모바일 또는 데스크톱 애플리케이션이에요.
- 머신-투-머신 애플리케이션 (Machine-to-machine, M2M) — 커맨드라인 도구, 데몬, IoT 기기, 백엔드에서 실행되는 서비스처럼 비상호작용적(non-interactive)인 앱이에요. 보통 API에 접근해야 하는 서비스가 있을 때 이 옵션을 사용해요.
2. 자격 증명 보안 (Credential security) — 앱이 시크릿을 저장할 수 있는 능력을 설명해요.
- 공개 애플리케이션 (Public applications) — 자격 증명을 안전하게 저장할 수 없는 앱이에요.
- 비밀 애플리케이션 (Confidential applications) — 자격 증명을 안전하게 저장할 수 있는 앱이에요.
3. 소유 관계 (Ownership) — 앱의 신뢰 관계(누가 앱을 소유·운영하는지)를 설명해요.
- 퍼스트파티 앱 (First-party apps) — Auth0 도메인을 소유한 동일한 조직이나 개인이 제어하는 앱이에요.
- 서드파티 앱 (Third-party apps) — 외부 당사자나 파트너가 API 뒤에 있는 보호된 리소스에 안전하게 접근할 수 있게 해주는 앱이에요.
애플리케이션 설정 관리 (Manage application settings)
애플리케이션은 Dashboard > Applications > Applications 에서 등록해요. 대시보드에서 설정하는 것 외에도 OpenID Connect (OIDC) Dynamic Client Registration 1.0 사양에 따라 프로그래매틱하게 앱을 설정할 수도 있어요.
여러 개의 자체 테넌트를 운영한다면 앱마다 다른 방식으로 로그인하도록 하는 더 복잡한 설정을 구성할 수 있어요. 자세한 내용은 Multi-Tenant Application Best Practices와 Create Multiple Tenants 문서를 참고할 수 있어요.
기본적으로 Auth0는 새 애플리케이션을 만들 때 테넌트와 연결된 모든 커넥션(connections)을 활성화해요. 이를 변경하려면 대시보드의 Application Settings에서 애플리케이션 커넥션을 업데이트하면 돼요.
참고: 등록·설정에 관한 더 자세한 내용은 Register Applications와 Configure Applications 문서를 함께 보는 걸 추천해요.
애플리케이션 모니터링 (Monitor applications)
앱을 모니터링하고 자체 테스트로 엔드-투-엔드 테스트를 수행할 수 있어요. Auth0는 대시보드 관리자 작업, 성공·실패한 사용자 인증, 비밀번호 변경 요청을 포함한 로그 데이터를 저장해요. Auth0 Marketplace의 log streaming(로그 스트리밍)을 사용하면 로그 데이터를 내보내 Sumo Logic, Splunk, Mixpanel 같은 도구로 분석하고 저장할 수 있어요.
클라이언트 시크릿 관리 (Manage client secrets)
클라이언트 시크릿(client secret)은 앱과 인가 서버(authorization server)만 아는 비밀 값이에요. 인가된 요청자에게만 토큰을 발급함으로써 리소스를 보호해요.
클라이언트 시크릿을 안전하게 보호하고, 모바일이나 브라우저 기반 앱에는 절대 포함하지 마세요. 시크릿이 유출되면 새 값으로 rotation(교체)하고, 모든 인가된 앱에 새 클라이언트 시크릿을 반영해 업데이트해야 해요.
Grant types (승인 흐름)
Auth0는 다양한 인증·인가 grant types(flows)를 제공하며, 등록된 앱의 grant_types 속성을 기준으로 적절한 grant types을 지정할 수 있어요. 자세한 내용은 Application Grant Types 문서를 참고하세요.
사용 예시
- SPA(단일 페이지 앱) 에서는 PKCE 기반 Authorization Code flow와 같은 grant type을 사용해 브라우저에 시크릿을 노출하지 않고 로그인 처리를 해요.
- 네이티브 앱 은 모바일·데스크톱 환경에 맞는 네이티브 로그인 화면과 로그아웃, 토큰 저장 방식을 구성해요.
- M2M(머신-투-머신) 앱은 사용자 인터랙션 없이 Client Credentials flow로 API에 접근용 토큰을 받아요.
- 앱 등록 시 설정하는 Callback URL(콜백 URL) 을 통해 인증 완료 후 사용자가 돌아올 경로를 지정해요.