콘텐츠로 이동

OpenID Connect 공급자 연결

ID 공급자가 SAML이 아니라 OpenID Connect를 사용한다면 이 가이드를 참고하십시오. OIDC 인증을 받은 발급자라면 무엇이든 됩니다 — Pocket ID, Keycloak, Auth0, Zitadel, Google Workspace 등도 모두 같은 단계를 따르며, 공급자가 값을 보여 주는 위치만 다릅니다.

  • 클라이언트를 만들 수 있는 OIDC 공급자 — 해당 클라이언트의 client id와 issuer URL(.well-known/openid-configuration 문서가 위치하는 기준 URL)을 확인해 두고, 클라이언트가 기밀 유형이면 client secret도 함께 확인합니다(공개 PKCE 클라이언트에는 없습니다),
  • 관리 권한이 있는 Control Center 서버(서버 소유자).
  1. 설정 → 서버 → 싱글 사인온을 열고 OpenID Connect로 전환합니다.
  2. 공급자가 발급한 경우 Issuer URL, Client ID, **Client secret(선택)**을 입력합니다. Control Center는 발급자의 표준 디스커버리 문서에서 엔드포인트를 찾아내므로 공급자별 설정이 필요하지 않습니다.
  3. 공급자에서 해당 클라이언트에 리디렉션 https://<your-server>/oidc/callback을 등록합니다.
  4. 그룹이 groups가 아닌 다른 클레임에 들어 있다면 그룹 클레임 이름을 설정합니다. 원한다면 그룹을 역할에 매핑할 수 있습니다(SSO로는 소유자 역할을 부여할 수 없습니다).
  5. 멤버십 정책을 선택하고(모든 워크스페이스에 자동 추가 또는 워크스페이스별 초대 요구), OpenID Connect로 로그인을 켠 뒤 연결 저장을 누릅니다.
  6. 연결 테스트를 누릅니다 — 서버가 발급자의 디스커버리 문서를 가져와 엔드포인트를 확인하므로, 녹색 토스트가 뜨면 브라우저 왕복을 제외한 모든 것이 정상이라는 뜻입니다. 클라이언트 등록까지 확인하려면 아래의 검사기를 사용하십시오.
  7. 로그인을 시도해 보십시오. 웹 연결 화면에는 OpenID Connect(으)로 로그인이 표시되며, https://<your-server>/oidc/login을 직접 열어도 됩니다.

클레임(이메일, 이름, 그룹)은 서버가 TLS를 통해 발급자의 토큰 엔드포인트에서 읽습니다 — 브라우저가 이를 제공하는 일은 없으므로 로컬 JWT 서명 검증은 관여하지 않습니다. 클라이언트는 openid profile email 스코프를 요청할 수 있어야 하며, Control Center는 정확히 이 스코프를 요청합니다.

그 TLS 채널만이 클레임을 인증하므로 발급자 URL은 반드시 https여야 합니다 — 평문 발급자는 경로상의 공격자가 신원을 통째로 위조할 수 있게 합니다. http는 로컬 개발을 위해 루프백 발급자(localhost, 127.0.0.1, ::1)에만 허용됩니다.

아래 검사기는 브라우저에서 실행됩니다. 발급자의 디스커버리 문서를 직접 가져오므로 이 사이트는 그 내용을 보지 못하며, 서버의 규칙을 적용합니다: 문서와 일치하는 https 발급자, 발급자 자체 오리진의 엔드포인트, PKCE S256, 그리고 클라이언트 유형에 필요한 토큰 인증 방식입니다. 클라이언트 ID와 서버 주소를 입력하면 클라이언트와 리디렉션 URI가 등록되었는지 보여 주는 테스트 로그인을 열 수 있습니다. 클라이언트 시크릿은 절대 요구하지 않습니다.

Runs in your browserYour browser fetches the discovery document straight from your issuer. Add a server address and it also asks that server which sign-in methods it offers. This site never receives what you type.

Needed for the test sign-in.

Client type

Never paste the secret here. The check only needs to know whether one exists.

The address your users open. Adds a reachability check and a test sign-in.

Paste the discovery document instead

For providers that block other sites from reading it.