조직 역할 생성
POST /fapi/v1/organizations/{org_id}/roles · 환경의 로그인 호스트에서 호출
조직에 권한이 없는 역할을 생성합니다. 권한은 역할 권한 설정에서 추가하십시오. 조직에는 최대 50개의 역할을 둘 수 있습니다. 인증된 사용자의 __Host-idp_session 쿠키가 필요하며, 쿠키가 없거나 만료되었거나 취소되었으면 401 unauthenticated를 반환합니다. 다른 출처의 자사 앱은 대신 Front API 액세스 토큰(DPoP 증명을 포함한 Authorization: DPoP <token>, Front API 액세스 토큰 참조)을 보낼 수 있습니다. 사용자는 조직의 활성 회원이어야 하며 idp_roles:manage 권한을 가져야 합니다. 회원이 아닌 사용자는 404 not_found를 받으므로 조직의 존재 여부가 노출되지 않으며, 권한이 없는 회원은 403 insufficient_permissions를 받습니다. 조직 역할은 환경에서 활성화되어 있고 해당 환경의 요금제에 포함되어 있어야 합니다.
요청
헤더:
| 헤더 | 필수 여부 | 설명 |
|---|---|---|
Idp-Client |
예 | SDK 식별자입니다. |
Origin |
예 | 정확히 https://<sign-in host>여야 합니다. |
Content-Type |
예 | application/json. |
org_id: 조직 식별자(org_…)입니다.
본문:
| 필드 | 필수 여부 | 설명 |
|---|---|---|
key |
예 | 역할 키입니다. 조직과 환경 역할 전체에서 고유해야 하며, 나중에 변경할 수 없습니다. |
name |
예 | 표시 이름입니다. |
description |
아니요 | 설명입니다. |
응답
Location 및 ETag 헤더와 함께 201 Created를 반환하며, 본문은 역할입니다(조직 역할 조회 참조).
오류
| 상태 | 코드 | 발생 조건 |
|---|---|---|
| 401 | unauthenticated |
유효한 세션 쿠키가 없습니다. |
| 403 | origin_not_allowed |
Origin이 없거나 잘못되었습니다. |
| 403 | insufficient_permissions |
사용자에게 조직의 idp_roles:manage 권한이 없습니다. |
| 403 | plan_feature_unavailable |
환경의 요금제에 조직 역할이 포함되어 있지 않습니다(feature, required_plan). |
| 403 | org_custom_roles_disabled |
환경에서 조직 역할이 꺼져 있습니다. |
| 404 | not_found |
이 사용자에게 해당 조직이나 역할이 없습니다. 알 수 없거나 형식이 잘못되었거나 다른 조직의 식별자도 같은 응답을 받습니다. |
| 409 | role_key_conflict |
해당 키가 이미 조직이나 환경 역할에서 사용 중입니다. |
| 409 | role_limit_reached |
조직에 이미 역할 50개가 있습니다. |
| 409 | organization_pending_deletion |
조직이 삭제 예정입니다. |
| 422 | validation_failed |
필드가 없거나 잘못되었습니다. errors[]에 해당 필드가 표시됩니다. |
| 503 | service_unavailable |
일시적으로 사용할 수 없습니다. Retry-After 이후에 다시 시도하십시오. |
예시
curl -X POST https://example.keenauth.app/fapi/v1/organizations/org_01jbz6x8kq3m2n4p5r6s7t8v9a/roles \
-H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
-H "Origin: https://example.keenauth.app" \
-H "Content-Type: application/json" \
-b cookies.txt \
-d '{"key":"auditor","name":"Auditor"}'