접근 제어 → 신원 소스에서 사용자가 로그인하는 데 사용할 디렉터리나 신원 제공자를 설정합니다. 이런 계정의 비밀번호는 신원 소스에 저장되며, GrantForge는 저장하지도 수정할 수도 없습니다.

LDAP / Active Directory
"신원 소스 추가"를 클릭하고 타입은 "LDAP 디렉터리"를 선택합니다.
| 설정 | 설명 |
|---|---|
| 디렉터리 주소 | ldap:// 또는 ldaps://, 여러 주소는 공백으로 구분하면 장애 조치가 가능합니다 |
| 사용자 Base DN | 예를 들어 ou=people,dc=example,dc=com |
| 조회 계정 | 사용자를 찾는 데 쓰는 계정(Bind DN)과 그 비밀번호입니다. 비워 두면 익명으로 조회합니다 |
| 사용자 필터 조건 | 기본값은 (&(objectClass=person)(uid={0}))이며, {0}은 사용자가 입력한 이름입니다 |
| 속성 | 사용자 이름, 표시 이름, 이메일, 고유 식별자의 속성입니다. 기본값은 OpenLDAP에 맞춰져 있고(uid, cn, mail, entryUUID), Active Directory에서는 sAMAccountName와 objectGUID를 입력합니다 |
| 새 사용자 계정 자동 생성 | 켜면 디렉터리의 사용자가 처음 로그인할 때 계정이 생성됩니다 |
| 동기화 간격 | 비워 두면 수동 동기화만 하며, 최소 간격은 15분입니다 |
| 디렉터리를 떠난 사용자 계정 비활성화 | 동기화할 때 디렉터리에 더 이상 없는 사용자를 비활성화합니다 |
저장한 뒤 연결 테스트를 클릭해 설정이 올바른지 확인합니다.
로그인할 때 GrantForge는 먼저 조회 계정으로 사용자를 찾고, 이어서 사용자가 입력한 비밀번호를 그 사용자 신원으로 디렉터리에 바인딩해 검증합니다.
동기화는 디렉터리의 새 사용자에 대해 계정을 생성하고, 기존 계정의 이름과 이메일을 업데이트하며, 설정에 따라 떠난 사용자를 비활성화합니다(그들의 세션도 함께 종료합니다). 동기화 결과는 신원 소스 카드에 표시됩니다.
OpenID Connect
타입은 "OpenID Connect"를 선택하면 Keycloak, Azure AD, Okta, 다른 GrantForge 등에 연동할 수 있습니다.
| 설정 | 설명 |
|---|---|
| Issuer 주소 | 제공자의 발급자 주소입니다. GrantForge는 이 주소의 디스커버리 문서로 엔드포인트와 키를 가져옵니다 |
| 클라이언트 ID / 시크릿 | 제공자에 등록한 클라이언트입니다. 시크릿이 없으면 공개 클라이언트로 동작하며 PKCE를 사용합니다 |
| 콜백 주소 | 페이지에 표시되는 <GrantForge>/api/v1/auth/federated/callback/<인코딩> 주소이며, 제공자의 클라이언트에 등록해야 합니다 |
| 범위와 클레임 | 기본값은 openid profile email입니다. 사용자 이름, 표시 이름, 이메일은 각각 preferred_username, name, email 클레임에서 가져옵니다 |
활성화하면 로그인 페이지에 "<이름>으로 로그인" 버튼이 나타납니다. 사용자는 제공자에서 로그인한 뒤 GrantForge로 돌아오며, 2단계 인증을 켠 계정은 인증 코드도 입력해야 합니다.
계정 규칙
- 신원 소스 사용자의 고유 식별자(LDAP는
entryUUID/objectGUID, OIDC는sub)는 GrantForge 계정 하나에 대응되며, 이름이 바뀌어도 대응 관계는 그대로입니다. - 로컬에 같은 이름의 계정이 이미 있으면 자동으로 연결하지 않으며, 로그인이 거부됩니다. 관리자가 먼저 로컬 계정의 이름을 바꾸거나 삭제해야 합니다. 이렇게 하면 디렉터리의 동명 사용자가 기존 계정을 빼앗는 일을 막을 수 있습니다.
- 계정을 자동 생성하지 않는 신원 소스는 이미 연결된 사용자만 로그인하게 합니다.
- 신원 소스를 비활성화하면 그 사용자는 로그인할 수 없으며, 계정이 사용 중인 신원 소스는 삭제할 수 없습니다.
- 신원 소스 계정에도 평소와 같이 역할을 부여하고 2단계 인증을 켤 수 있습니다.
