로그인 방법 제한
logi 로그인 화면은 기본적으로 Apple/Google/Kakao SSO · 이메일/비밀번호 · logi 앱(푸시 승인·QR·앱 설치) 을 모두 노출합니다. RP 가 이 중 일부만 보이게 좁힐 수 있습니다.
이 기능의 성격
로그인 화면 UI 를 단순화하는 기능입니다. 어떤 방법으로 logi 계정에 인증하든 RP 가 받는 identity(sub, 프로필)는 동일합니다 — 보안 경계가 아닙니다. 자세한 내용은 주의 참조.
개요 — 어떤 문제를 푸는지
사내 Google Workspace 만 쓰는 조직이 logi 를 붙이면, 로그인 화면에 Apple·Kakao·이메일·QR 까지 다 보여서 직원이 헷갈립니다. 이런 B2B RP 는 "Google 로 계속" 하나만 노출하고 싶습니다.
logi 는 이를 위해 두 가지 방법을 제공합니다.
| 방법 | 적용 위치 | 강제 여부 |
|---|---|---|
URL 파라미터 provider | authorize 요청마다 | 화면 노출만 제어 (강제 아님) |
| 콘솔 설정 | 앱 단위 영구 설정 | 서버 측 강제 |
둘은 함께 동작하며, 콘솔 설정이 base 이고 provider 는 그 안에서 더 좁히기만 합니다 (우선순위 규칙).
방법 1: URL 파라미터 provider
authorize URL 에 provider 쿼리 파라미터를 붙입니다. 값은 로그인 방법 키 를 comma 로 구분합니다.
https://api.1pass.dev/oauth/authorize
?client_id=logi_a1b2...
&redirect_uri=https%3A%2F%2Fapp.example.com%2Fauth%2Fcallback
&response_type=code
&scope=profile+email
&state=<32바이트_랜덤>
&code_challenge=<...>
&code_challenge_method=S256
&provider=google여러 방법을 허용하려면 comma 로 나열합니다 — &provider=apple,google.
로그인 방법 키
| 키 | 로그인 화면에서 보이는 것 |
|---|---|
apple | "Apple 로 계속" SSO 버튼 |
google | "Google 로 계속" SSO 버튼 |
kakao | "카카오로 계속" SSO 버튼 (logi 플랫폼 환경에 Kakao Web SSO 가 구성되어 있고 허용된 경우에만) |
email | 이메일/비밀번호 로그인 폼 |
app | logi 앱 경로 전체 — Mac 앱/앱 열기 카드, 푸시 승인, QR 로그인, 앱 설치 안내 |
provider 는 화면 노출만 제어합니다
provider 는 로그인 화면에 보여줄 방법만 좁히는 파라미터입니다. authorize 검증 대상이 아니며, 잘못된 값(예: provider=facebook)은 무시됩니다. 영구적으로 방법을 제한하려면 방법 2: 콘솔 설정 을 사용하세요.
방법 2: 콘솔 설정
start.1pass.dev 개발자 콘솔의 앱 설정에서 "로그인 방법 제한" 체크박스로 영구 설정합니다.
start.1pass.dev→ 앱 선택 → 설정- 로그인 방법 제한 섹션에서 허용할 방법 체크 (Apple/Google/Kakao SSO · 이메일/비밀번호 · logi 앱)
- 저장
- 체크박스를 모두 비워 두면(기본값) 모든 방법이 노출됩니다 (= 전체 허용).
- 이 설정은 서버 측에서 강제됩니다. 체크하지 않은 방법은 화면에서 숨겨질 뿐 아니라, 해당 로그인 시작 경로(Apple/Google/Kakao web SSO 시작, QR 시작, 푸시 승인 시작)로 직접 진입해도 차단됩니다.
URL 파라미터와의 차이
콘솔 설정은 앱 단위 영구 base 이고, provider 파라미터는 요청마다 그 base 안에서 더 좁히는 용도입니다. 둘 다 쓰면 base 와 파라미터의 교집합이 적용되고, 교집합이 비면 콘솔 설정(base)대로 노출됩니다 — 아래 우선순위 규칙 참고.
우선순위 규칙
세 단계로 계산됩니다.
- base = 콘솔 설정 (비어 있으면 전체 허용)
- effective =
provider파라미터 ∩ base —provider는 좁히기만 합니다. 교집합이 공집합이면 base 로 폴백합니다. - renderable = effective 를 현재 환경 가용성으로 필터 (예: Kakao 미설정 환경에서는 kakao 제외)
| 콘솔 설정 (base) | provider 파라미터 | 실제 노출 | 설명 |
|---|---|---|---|
| (없음 = 전체) | google | Google 만 | base 가 넓으니 provider 가 좁힘 |
apple,google | google | Google 만 | provider 가 base 안에서 좁힘 |
google | apple | Google 만 | 교집합 공집합 → base 로 폴백 (잠그지 않음) |
google | (없음) | Google 만 | base 가 그대로 적용 |
| (없음 = 전체) | facebook | 전체 | 잘못된 provider 값 무시 |
fail-open 동작
logi 는 사용자를 절대 로그인 불가 상태로 잠그지 않습니다.
provider에 잘못된 값이 들어오면 무시합니다 (authorize 에러 없음).provider∩ 콘솔 설정 이 공집합이면 콘솔 설정 기준으로 노출합니다.- 콘솔 설정에 있는 방법이 현재 환경에서 모두 사용 불가한 경우(예:
kakao만 허용했는데 Kakao 가 설정 안 됨) 이메일 로그인으로 폴백하고 안내 문구를 표시합니다. - 결과적으로 빈 로그인 화면은 절대 나타나지 않습니다.
주의
보안 경계가 아닙니다
로그인 방법 제한은 화면을 단순화할 뿐, identity 를 바꾸지 않습니다. 사용자가 어떤 방법으로 logi 에 인증하든 RP 가 받는 sub·프로필은 동일합니다. 특정 방법으로 들어온 사용자를 다른 방법 사용자와 구별하거나, 접근 권한을 통제하는 용도로 사용하지 마세요.
provider가 단일 값이어도 해당 IdP 로 자동 점프(auto-redirect)하지 않습니다 — 항상 로그인 화면을 거칩니다 (v1 미지원).- 이메일/비밀번호(
email) 는 화면 노출만 제어됩니다 (UI-only). 컨텍스트 없는 직접 로그인 경로는 서버 측 강제 대상이 아닙니다.
레퍼런스
- Authorization Code Flow —
provider파라미터 위치 - Web SSO (데스크톱 Apple/Google) — SSO 시작 경로