IAM
API 223개.
API 키
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/v1/iam/authn/api-keys | 인증된 사용자의 API Key 목록 조회 |
| POST | /api/v1/iam/authn/api-keys | 인증된 사용자의 Personal API Key 발급 |
| GET | /api/v1/iam/authn/api-keys/{key_id} | 특정 API Key의 상세 정보 조회 |
| DELETE | /api/v1/iam/authn/api-keys/{key_id} | API Key 폐기 |
| PATCH | /api/v1/iam/authn/api-keys/{key_id} | API Key의 이름(설명) 및/또는 활성 상태 수정 |
| POST | /api/v1/iam/authn/api-keys/{key_id}/deactivate | API Key를 비활성화 |
| POST | /api/v1/iam/authn/api-keys/{key_id}/activate | 비활성화된 API Key를 재활성화 |
| POST | /api/v1/iam/authn/api-keys/{key_id}/reset | 기존 Key ID를 유지하고 시크릿을 재생성 |
| POST | /api/v1/iam/authn/api-keys/validate | 사용자 또는 SA API Key의 유효성을 검증 |
MFA 설정
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/v1/iam/authn/users/me/mfa/status | 사용자 MFA 상태 조회 |
| POST | /api/v1/iam/authn/users/me/mfa/email/enable | Email MFA 활성화 |
| POST | /api/v1/iam/authn/users/me/mfa/email/disable | Email MFA 비활성화 |
| POST | /api/v1/iam/authn/users/me/mfa/totp/setup | TOTP 설정 시작 (QR 코드 발급) |
| POST | /api/v1/iam/authn/users/me/mfa/totp/verify-setup | TOTP 설정 검증 (최초 등록 시) |
| POST | /api/v1/iam/authn/users/me/mfa/totp/disable | TOTP MFA 비활성화 |
MFA 인증 흐름
| 메서드 | 경로 | 설명 |
|---|---|---|
| POST | /api/v1/iam/authn/mfa/code/request | MFA 코드 요청 (method 지정 필요) |
| POST | /api/v1/iam/authn/mfa/code/verify | MFA 코드 검증 |
감사 로그
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/v1/iam/authn/audit-logs | 감사 로그 목록을 조회합니다 (관리자 전용) |
| GET | /api/v1/iam/authn/audit-logs/{event_id} | 감사 로그 상세 조회 (org admin / 시스템 어드민 전용) |
| GET | /api/v1/iam/authz/audit-logs/evaluations | 관리자 전용: 모든 PDP 평가 및 시뮬레이션 감사 로그 조회 |
계정 잠금 관리
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/v1/iam/authn/account-lockout/status | 계정 잠금 상태 조회 |
| POST | /api/v1/iam/authn/account-lockout/lock | 관리자가 특정 사용자 계정을 수동으로 잠급니다 |
| POST | /api/v1/iam/authn/account-lockout/unlock | 계정 잠금 해제 |
| DELETE | /api/v1/iam/authn/account-lockout/reset/{username} | 특정 사용자의 로그인 실패 카운트를 리셋 |
| GET | /api/v1/iam/authn/account-lockout/history | 특정 사용자의 계정 잠금 이력을 조회합니다 (임시/영구 모두) |
그룹 동기화
| 메서드 | 경로 | 설명 |
|---|---|---|
| POST | /api/v1/iam/authn/organizations/{org_id}/groups/{group_id}/sync | 단일 그룹 템플릿 동기화 |
| POST | /api/v1/iam/authn/organizations/{org_id}/groups/sync | 일괄 그룹 템플릿 동기화 |
그룹 정책
| 메서드 | 경로 | 설명 |
|---|---|---|
| POST | /api/v1/iam/authn/organizations/{org_id}/groups/{group_id}/policies | 그룹에 정책 연결 |
| GET | /api/v1/iam/authn/organizations/{org_id}/groups/{group_id}/policies | 그룹의 정책 바인딩 목록 조회 |
| DELETE | /api/v1/iam/authn/organizations/{org_id}/groups/{group_id}/policies/{policy_id} | 그룹에서 정책 연결 해제 |
그룹
| 메서드 | 경로 | 설명 |
|---|---|---|
| POST | /api/v1/iam/authn/organizations/{org_id}/groups | 조직 내에 새 그룹 생성 |
| GET | /api/v1/iam/authn/organizations/{org_id}/groups | 조직 내 그룹 목록 조회 |
| POST | /api/v1/iam/authn/organizations/{org_id}/groups/{group_id}:duplicate | 기존 그룹을 복제하여 새 그룹 생성 |
| GET | /api/v1/iam/authn/organizations/{org_id}/groups/{group_id} | 그룹 상세 정보 조회 |
| PUT | /api/v1/iam/authn/organizations/{org_id}/groups/{group_id} | 그룹 정보 수정 |
| DELETE | /api/v1/iam/authn/organizations/{org_id}/groups/{group_id} | 그룹을 삭제합니다 (Soft Delete) |
| GET | /api/v1/iam/authn/organizations/{org_id}/groups/{group_id}/members | 그룹에 속한 멤버 목록 조회 |
| PUT | /api/v1/iam/authn/organizations/{org_id}/groups/{group_id}/members | 그룹의 전체 멤버 목록을 동기화 |
| POST | /api/v1/iam/authn/organizations/{org_id}/groups/{group_id}/members:batch-add | 그룹에 멤버를 일괄 추 |
| POST | /api/v1/iam/authn/organizations/{org_id}/groups/{group_id}/members:batch-remove | 그룹에서 멤버를 일괄 제거 |
내 보안 정보
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/v1/iam/authn/me/security-info | 내 보안 정보 조회 |
내 비밀번호
| 메서드 | 경로 | 설명 |
|---|---|---|
| PUT | /api/v1/iam/authn/me/password | 본인의 비밀번호 변경 |
| POST | /api/v1/iam/authn/me/password/validate | 비밀번호 변경 전에 조직 정책 위배 여부를 미리 확인 |
내 세션
| 메서드 | 경로 | 설명 |
|---|---|---|
| DELETE | /api/v1/iam/authn/me/sessions | 본인의 모든 세션을 즉시 종료 |
| GET | /api/v1/iam/authn/me/sessions | 본인의 활성 세션 목록 조회 |
| DELETE | /api/v1/iam/authn/me/sessions/{session_id} | 본인의 특정 세션을 즉시 종료 |
내 액세스 키
| 메서드 | 경로 | 설명 |
|---|---|---|
| POST | /api/v1/iam/authn/me/access-keys | 본인의 Access Key 발급 |
| GET | /api/v1/iam/authn/me/access-keys | 본인의 Access Key 목록 조회 |
| GET | /api/v1/iam/authn/me/access-keys/{key_id} | Access Key 상세 조회 |
| DELETE | /api/v1/iam/authn/me/access-keys/{key_id} | Access Key를 즉시 폐기 |
| PATCH | /api/v1/iam/authn/me/access-keys/{key_id} | Access Key 이름(Description)/상태 수정 |
| POST | /api/v1/iam/authn/me/access-keys/{key_id}/deactivate | Access Key를 비활성화 |
| POST | /api/v1/iam/authn/me/access-keys/{key_id}/activate | 비활성화된 Access Key를 재활성화 |
| POST | /api/v1/iam/authn/me/access-keys/{key_id}/rotate | 본인 Access Key의 시크릿 재발급 |
비밀번호 찾기
| 메서드 | 경로 | 설명 |
|---|---|---|
| POST | /api/v1/iam/authn/password/forgot | 비밀번호를 잊어버린 사용자가 이메일로 비밀번호 초기화 링크를 요청 |
| POST | /api/v1/iam/authn/password/reset/verify | 이메일로 받은 비밀번호 초기화 토큰의 유효성을 검증 |
| PUT | /api/v1/iam/authn/password/reset | 비밀번호 초기화 토큰을 사용하여 새 비밀번호를 설정 |
사용자 비밀번호
| 메서드 | 경로 | 설명 |
|---|---|---|
| PUT | /api/v1/iam/authn/users/{user_tpn}/password | 사용자 비밀번호 변경 |
| POST | /api/v1/iam/authn/users/{user_tpn}/password/validate | 비밀번호 정책 검증 |
| POST | /api/v1/iam/authn/users/{user_tpn}/password/reset | 관리자가 특정 사용자의 비밀번호 초기화 |
사용자 초대
| 메서드 | 경로 | 설명 |
|---|---|---|
| POST | /api/v1/iam/authn/organizations/{org_id}/invitations | 조직에 사용자 초대 생성 |
| GET | /api/v1/iam/authn/organizations/{org_id}/invitations | 조직의 초대 목록 조회 |
| GET | /api/v1/iam/authn/invitations/{invitation_id} | 단일 초대 조회 |
| POST | /api/v1/iam/authn/invitations/{invitation_id}:resend | 초대 재발송 |
| POST | /api/v1/iam/authn/invitations/{invitation_id}:cancel | 초대 취소 |
| POST | /api/v1/iam/authn/users/{user_tpn}/resend-invitation | 사용자 TPN 기반 초대 재발송 |
사용자
| 메서드 | 경로 | 설명 |
|---|---|---|
| POST | /api/v1/iam/authn/users | org_id를 body에 포함하여 사용자 생성 |
| PUT | /api/v1/iam/authn/users/{tpn} | 사용자 수정 |
| DELETE | /api/v1/iam/authn/users/{tpn} | 사용자 삭제 |
| GET | /api/v1/iam/authn/users/{tpn} | TPN으로 사용자의 상세 정보 조회 |
| POST | /api/v1/iam/authn/organizations/{org_id}/users | 지정된 조직 내에 새로운 사용자 생성 |
| GET | /api/v1/iam/authn/organizations/{org_id}/users | 지정된 조직의 사용자 목록 조회 |
| GET | /api/v1/iam/authn/users/{tpn}/security-info | 사용자의 보안 관련 정보 조회 |
| POST | /api/v1/iam/authn/users/{tpn}/mfa/totp:disable | 관리자가 특정 사용자의 TOTP MFA를 비활성화하고 Secret 삭제 |
| POST | /api/v1/iam/authn/users/{tpn}/groups:batch-add | 한 명의 사용자를 여러 그룹에 동시에 추 |
| POST | /api/v1/iam/authn/users/{tpn}/groups:sync | 사용자가 속한 그룹 목록을 지정한 목록으로 동기화 |
사전 인증
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/v1/iam/authn/pre-auth/password/policy | 비밀번호 정책 조회 |
| POST | /api/v1/iam/authn/pre-auth/mfa/totp/setup | Pre-Auth 세션을 사용하여 TOTP를 설정 |
| POST | /api/v1/iam/authn/pre-auth/mfa/totp/verify-setup | Pre-Auth 세션을 사용하여 TOTP 설정을 검증 |
| POST | /api/v1/iam/authn/pre-auth/mfa/email/request-code | Pre-Auth 세션을 사용하여 이메일로 MFA 코드를 요청 |
| POST | /api/v1/iam/authn/pre-auth/mfa/verify | Pre-Auth 세션을 사용하여 MFA 코드를 검증 |
| PUT | /api/v1/iam/authn/pre-auth/password/change | 비밀번호 변경 |
서비스 계정
세션 정책
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/v1/iam/authn/session-policies/{org_id} | 조직의 세션 정책 조회 |
| PUT | /api/v1/iam/authn/session-policies/{org_id} | 조직의 세션 정책을 생성하거나 수정 |
| POST | /api/v1/iam/authn/session-policies/{org_id}/reset | 조직의 세션 정책을 삭제하여 기본값으로 초기화 |
액션 카탈로그
| 메서드 | 경로 | 설명 |
|---|---|---|
| POST | /api/v1/iam/authz/action-catalog/actions/groups | 그룹 액션 생성 |
| POST | /api/v1/iam/authz/action-catalog/actions/import/openapi | OpenAPI 스펙으로 액션 카탈로그 생성 |
| POST | /api/v1/iam/authz/action-catalog/actions | Action 생성 |
| GET | /api/v1/iam/authz/action-catalog/actions | Action 목록 조회 |
| PUT | /api/v1/iam/authz/action-catalog/actions/{action_id} | 기존 Action의 메타데이터 수정 |
| DELETE | /api/v1/iam/authz/action-catalog/actions/{action_id} | Action을 삭제합니다 (soft delete) |
| GET | /api/v1/iam/authz/action-catalog/actions/{action_id} | 특정 Action의 상세 정보 조회 |
| GET | /api/v1/iam/authz/action-catalog/actions/classes | 액션 클래스별 개수 조회 |
| GET | /api/v1/iam/authz/action-catalog/actions/apps | 앱별 액션 개수 조회 |
| GET | /api/v1/iam/authz/action-catalog/actions/apps/{app}/categories | 카테고리별 액션 개수 조회 |
| GET | /api/v1/iam/authz/action-catalog/actions/apps/{app}/resource-types | 리소스 타입별 액션 개수 조회 |
| GET | /api/v1/iam/authz/action-catalog/actions/search | 키워드로 Action을 검색 |
역할 메타데이터
| 메서드 | 경로 | 설명 |
|---|---|---|
| PUT | /api/v1/iam/authz/roles/{roleId}/metadata/{namespace}/{key} | 역할에 Provider별 권한 매핑 정보를 설정합니다 (upsert) |
| GET | /api/v1/iam/authz/roles/{roleId}/metadata/{namespace}/{key} | 특정 역할 metadata 조회 |
| DELETE | /api/v1/iam/authz/roles/{roleId}/metadata/{namespace}/{key} | 특정 역할 metadata 삭제 |
| GET | /api/v1/iam/authz/roles/{roleId}/metadata | 역할의 모든 metadata 조회 |
| GET | /api/v1/iam/authz/roles/{roleId}/metadata/{namespace} | 특정 Provider namespace의 모든 metadata 조회 |
역할 할당
| 메서드 | 경로 | 설명 |
|---|---|---|
| POST | /api/v1/iam/authz/roles/{role_id}/assignments | 역할에 TPN(user/group)을 할당 |
| GET | /api/v1/iam/authz/roles/{role_id}/assignments | 역할에 할당된 TPN 목록 조회 |
| DELETE | /api/v1/iam/authz/roles/{role_id}/assignments | 역할 ID와 TPN을 사용하여 RoleAssignment 삭제 |
| GET | /api/v1/iam/authz/roles/{role_id}/assignments/{assignment_id} | RoleAssignment 조회 |
| DELETE | /api/v1/iam/authz/roles/{role_id}/assignments/{assignment_id} | RoleAssignment 삭제 |
| GET | /api/v1/iam/authz/tpns/assignments | TPN이 가진 역할 목록 조회 |
| DELETE | /api/v1/iam/authz/tpns/assignments | TPN에 할당된 모든 역할을 일괄 해제 |
| GET | /api/v1/iam/authz/role-assignments/me | 호출자(본인) TPN이 가진 역할 목록 조회 |
| GET | /api/v1/iam/authz/roles/assignments/available | 특정 TPN에 할당 가능한 역할 목록 조회 |
| GET | /api/v1/iam/authz/assignments | 전체 역할 Assignment 목록 조회 |
| PUT | /api/v1/iam/authz/roles/assignments/sync | TPN(사용자/그룹)에 할당된 역할 목록을 동기화 |
역할
| 메서드 | 경로 | 설명 |
|---|---|---|
| POST | /api/v1/iam/authz/roles | 새로운 역할 생성 |
| GET | /api/v1/iam/authz/roles | 조직/프로젝트별 역할 목록 조회 |
| GET | /api/v1/iam/authz/roles/{role_id} | 역할 ID로 단건 조회 |
| PATCH | /api/v1/iam/authz/roles/{role_id} | 역할 정보 수정 |
| DELETE | /api/v1/iam/authz/roles/{role_id} | 역할을 소프트 삭제 |
| PUT | /api/v1/iam/authz/roles/{role_id}/trust-policy | 역할에 Trust 정책를 설정 |
인증
| 메서드 | 경로 | 설명 |
|---|---|---|
| POST | /api/v1/iam/authn/login | 사용자 로그인 |
| POST | /api/v1/iam/authn/token/refresh | Access Token 갱신 — 쿠키 우선, body 폴백 |
| POST | /api/v1/iam/authn/logout | 로그아웃 및 세션 무효화 — 쿠키 우선 → body 폴백 |
| GET | /api/v1/iam/authn/me | 현재 인증된 사용자 정보 조회 |
| GET | /api/v1/iam/authn/sessions | 활성 세션 목록 조회 (PG 기반 검색·필터·정렬·페이지네이션) |
| GET | /api/v1/iam/authn/sessions/{session_id} | 특정 세션 ID로 세션 상세 정보 조회 |
| POST | /api/v1/iam/authn/sessions/revoke | 사용자가 자신의 특정 세션을 강제로 종료 |
| POST | /api/v1/iam/authn/sessions/revoke-all | 사용자가 자신의 모든 활성 세션을 강제로 종료 |
| POST | /api/v1/iam/authn/sessions/users/{user_tpn}/revoke-all | 관리자가 특정 사용자의 모든 활성 세션을 강제로 종료 |
임시 역할 부여
| 메서드 | 경로 | 설명 |
|---|---|---|
| POST | /api/v1/iam/authz/temporary-grants | 대상 주체에게 역할을 한시적으로 부여 |
| GET | /api/v1/iam/authz/temporary-grants | 임시 역할 부여 목록 조회 |
| GET | /api/v1/iam/authz/temporary-grants/me | 호출자(본인)에게 부여된 임시 역할 목록 조회 |
| GET | /api/v1/iam/authz/temporary-grants/{grant_id} | 임시 역할 부여 단건 조회 |
| POST | /api/v1/iam/authz/temporary-grants/{grant_id}/extend | 종료 시각만 변경 |
| POST | /api/v1/iam/authz/temporary-grants/{grant_id}/revoke | 즉시 효력을 중단 |
| GET | /api/v1/iam/authz/tpns/{tpn}/active-grants | 특정 주체의 활성 임시 grant 조회 |
정책 바인딩
| 메서드 | 경로 | 설명 |
|---|---|---|
| POST | /api/v1/iam/authz/bindings | 정책을 대상(TPN, Org, Project)에 연결 |
| GET | /api/v1/iam/authz/bindings | 전체 정책 Binding 목록 조회 |
| GET | /api/v1/iam/authz/bindings/by-policy/{policy_id} | 특정 정책에 연결된 모든 대상 조회 |
| GET | /api/v1/iam/authz/bindings/me | 호출자(본인) TPN에 직접 바인딩된 정책 목록 조회 |
| GET | /api/v1/iam/authz/bindings/by-target | 특정 대상에 연결된 모든 정책 조회 |
| DELETE | /api/v1/iam/authz/bindings/by-target | 대상 기준 정책 바인딩 삭제 |
| DELETE | /api/v1/iam/authz/bindings/by-tpn | TPN에 연결된 모든 정책 바인딩을 일괄 해제 |
| GET | /api/v1/iam/authz/bindings/{binding_id} | 바인딩 ID로 단건 조회 |
| DELETE | /api/v1/iam/authz/bindings/{binding_id} | 정책과 대상 간의 연결 제거 |
| GET | /api/v1/iam/authz/bindings/audit | 바인딩 생성/삭제 이력 조회 |
| GET | /api/v1/iam/authz/bindings/roles/{role_id}/policies | 역할에 연결된 정책 목록을 상세 정보와 함께 조회 |
| GET | /api/v1/iam/authz/bindings/tpns/{tpn}/policies | TPN 직접 바인딩 정책 조회 |
| GET | /api/v1/iam/authz/bindings/policies/{policy_id}/roles | 특정 정책에 바인딩된 역할 목록을 상세 정보와 함께 조회 |
정책 연결 대상
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/v1/iam/authz/policies/{policy_id}/attached-entities/users | 정책이 실효 적용되는 사용자 목록 조회 |
| GET | /api/v1/iam/authz/policies/{policy_id}/attached-entities/user-groups | 정책이 연결된 사용자 그룹 목록 조회 |
| GET | /api/v1/iam/authz/policies/{policy_id}/attached-entities/roles | 정책에 바인딩된 역할 목록을 조회합니다 (활성 부여 수 포함) |
| GET | /api/v1/iam/authz/policies/{policy_id}/attached-entities/service-accounts | 정책이 직접 바인딩된 서비스 어카운트 목록 조회 |
정책
조직
초대 수락
| 메서드 | 경로 | 설명 |
|---|---|---|
| POST | /api/v1/iam/authn/invitations:accept | 초대 수락 |
토큰 검증 공개키
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/v1/iam/authn/jwks | 토큰 검증 공개키(JWKS) 조회 |
토큰 정책
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/v1/iam/authn/token-policies/{org_id} | 조직의 토큰 정책 조회 |
| PUT | /api/v1/iam/authn/token-policies/{org_id} | 조직의 토큰 정책을 생성하거나 수정 |
| POST | /api/v1/iam/authn/token-policies/{org_id}/reset | 조직의 토큰 정책을 삭제하여 기본값으로 초기화 |
토큰 폐기
| 메서드 | 경로 | 설명 |
|---|---|---|
| POST | /api/v1/iam/authn/revoke/token | 특정 JWT ID(jti)를 가진 토큰만 무효화 |
| GET | /api/v1/iam/authn/revoke/denylist | 무효화된 토큰/세션 목록 조회 |
| POST | /api/v1/iam/authn/revoke/token/status | 특정 토큰 또는 세션이 무효화되었는지 확인 |
프로젝트
| 메서드 | 경로 | 설명 |
|---|---|---|
| POST | /api/v1/iam/authn/organizations/{org_id}/projects | 조직 내에 새로운 프로젝트 생성 |
| GET | /api/v1/iam/authn/organizations/{org_id}/projects | 특정 조직의 프로젝트 목록 조회 |
| GET | /api/v1/iam/authn/projects/{project_id} | 특정 프로젝트의 상세 정보 조회 |
| PUT | /api/v1/iam/authn/projects/{project_id} | 프로젝트의 이름, 표시명, 메타데이터 또는 상태를 업데이트 |
| DELETE | /api/v1/iam/authn/projects/{project_id} | 프로젝트를 소프트 삭제 |
프로필
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/v1/iam/authn/profile | 인증된 사용자의 프로필 정보 조회 |
| PATCH | /api/v1/iam/authn/profile | 인증된 사용자가 자신의 프로필 정보 수정 |
| GET | /api/v1/iam/authn/profile/activity | 인증된 사용자의 로그인 이력 조회 |
| GET | /api/v1/iam/authn/profile/organizations | 인증된 사용자가 접근 가능한 조직 목록 조회 |
| GET | /api/v1/iam/authn/profile/partitions | 인증된 사용자 본인이 소속된 파티션(프로젝트) 목록 조회 |
| POST | /api/v1/iam/authn/profile/mfa/totp/setup | 인증된 사용자의 TOTP MFA 설정 시작 |
| POST | /api/v1/iam/authn/profile/mfa/totp/verify-setup | TOTP 앱에서 생성된 6자리 코드를 입력하여 설정을 완료 |