Open API guides
SingleID Open API Guides
Samsung Cloud Platform SingleID Open API를 사용하려면 먼저 해당 시스템이 Applications 로 등록이 되어 있어야 합니다. 등록된 시스템 정보로 JWT Token을 발급받아 Samsung Cloud Platform SingleID Open API 호출시 JWT Token 정보를 HTTP 헤더에 포함하여 전송해야 합니다.
API 호출 방법
- HTTP 헤더에 토큰 (JWT Token) 값을 포함하여 호출
- 접근 Token 헤더명은 Authorization 으로 설정하고, 접근 Token 타입 값은 Bearer 으로 지정 - Bearer 문자열 다음에 JWT Token 값을 설정합니다.
- Test 위한 환경 정보
- domain :
- 내부: stg-scloud.iam.samsung.net
- 외부: stg2-cloud.singleid.samsung.net
- tenant-name : test-tenant
- domain :
- Test Swagger UI URL
API List
| Module | API | URI | Method | Description |
|---|---|---|---|---|
| Portal Common | get MFA Token | https://{domain}/{tenant-name}/common-api/open/v1.1/asis/{tenant-name}/user/mfa/token/authentication | GET | MFA 토큰 발급 |
| Portal Common | OTP Send | https://{domain}/{tenant-name}/common-api/open/v1.1/asis/otp/send | POST | 인증 타입(email, sms, msg)에 따라 OTP 생성 |
| Portal Common | OTP Validation | https://{domain}/{tenant-name}/common-api/open/v1.1/asis/otp/validate | POST | OTP 검증 |
| Portal Common | MFA Consumer Request | https://{domain}/{tenant-name}/common-api/open/v1.1/mfa/request | GET | MFA 요청 |
| Portal Common | MFA Consumer Request | https://{domain}/{tenant-name}/common-api/open/v1.1/mfa/request | POST | MFA 요청 |
| Tenant Admin Portal | Send Email about Anomaly Detection | https://{domain}/{tenant-name}/admin-api/open/v1.1/emails/anomalyDetection | POST | 인증 이상 행위 탐지 시 사용자에게 메일 발송 |
| Tenant Admin Portal | Send Email about New Sign-in Environment | https://{domain}/{tenant-name}/admin-api/open/v1.1/emails/newSignInEnvironment | POST | 신규 환경 로그인 시 사용자 확인 메일 발신 |
| User Portal | Get User | https://{domain}/{tenant-name}/user-api/open/v1.1/users/{username} | GET | 사용자 이름, 이메일, 선호 언어, 타임존 조회 |
| User Portal | Get User Profile Image | https://{domain}/{tenant-name}/user-api/open/v1.1/users/image/{username} | GET | 사용자 프로필 이미지 조회 |
| User Portal | Create account assignment list | https://{domain}/{tenant-name}/user-api/1.0/scp-auth/create | POST | 사용자 SCP 권한 생성 |
| User Portal | Delete account assignment list | https://{domain}/{tenant-name}/user-api/1.0/scp-auth/delete | POST | 사용자 SCP 권한 삭제 |
| User Portal | Get account assignment list | https://{domain}/{tenant-name}/user-api/1.0/scp-auth/list | GET | 사용자 SCP 권한 조회 |
| User Portal | Search User | https://{domain}/{tenant-name}/user-api/1.0/scp-user/list | GET | SCP 대상 사용자 검색 |
| Portal Common | MFA Consumer Request | https://{domain}/{tenant-name}/common-api/open/v1.1/mfa/request/mfa | POST | MFA 요청 (장비 포함) |
| Portal Common | MFA Consumer Verification | https://{domain}/{tenant-name}/common-api/open/v1.1/mfa/verification/mfa | POST | MFA 검증 (장비 포함) |
표. API list
API Specification - get MFA Token(Portal Common)
| Module | API | URI | Method | Description |
|---|---|---|---|---|
| Portal Common | get MFA Token | https://{domain}/{tenant-name}/common-api/open/v1.1/asis/{tenant-name}/user/mfa/token/authentication | GET | MFA Token 발급 |
표. get MFA Token(Portal Common)
Request Parameters
| Properties | Attribute | Mandatory | Parameter Type | Data Type | Sample Data | Note |
|---|---|---|---|---|---|---|
| 테넌트 이름 | tenant-name | Y | Path | String | test-tenant | |
| 사용자명 | userName | Y | query | String | mkdir.kim | |
| 프로토콜 | protocol | Y | query | String | uma-uaf | |
| sessionDataKey | sessionDataKey | N | query | String | sessionDataKey1 | |
| redirectUrl | redirectUrl | N | query | String | redirectUrl1 | |
| errorRedirectUrl | errorRedirectUrl | N | query | String | errorRedirectUrl1 | |
| params | params | N | query | String | params1 | |
| language | language | N | query | String | ko |
표. Request Parameters
Response Parameters
| Properties (결과) | Attribute | Data Type | Sample Data | Note |
|---|---|---|---|---|
| 결과 | result | String | SUCCESS | |
| 결과값 | value | Object | {"token": "eyJpc3MiOiJodHRwczov...","serviceUri": "/ua/MPHTOCHW5I/de6f67d0-8bec-46ac-bf53-16ef00eb2066/dgauth/mfa"} |
표. Response Parameters
Sample
| Request | Response |
|---|---|
curl -X POST "https://stg-scloud.singleid.samsung.net:443/stg4/user-api/1.0/scp-auth/delete" -H "accept: application/json"-H "apiKey: {apiKey}" INPUT JSON{ "instanceId": "instnace-01", "permissionSetId": "PERMISSION-SET-Ablxc5__qEaIYmWGyMeqlf", "principalId": "singleid.test001", "principalType": "USER", "targetId": "PROJECT-ka2tfhLHsweVwm4BrR1rae", "targetType": "PROJECT" } | { "instanceId": "instnace-01", "permissionSetId": "PERMISSION-SET-Ablxc5__qEaIYmWGyMeqlf", "principalId": "singleid.test001", "principalType": "USER", "targetId": "PROJECT-ka2tfhLHsweVwm4BrR1rae", "targetType": "PROJECT" "status": "SUCCESS", "createdDate": "2024-04-03T01:58:46.538Z", "failureReason": "" } |
표. Sample
Error Code
| HTTP Response Code | Error Code | Error Message | Action Required |
|---|---|---|---|
| 400 | N/A | N/A | userName 확인 필요 |
표. Error Code
API Specification - OTP Send(Portal Common)
| Module | API | URI | Method | Description |
|---|---|---|---|---|
| Portal Common | OTP Send | https://{domain}/{tenant-name}/common-api/open/v1.1/asis/otp/send | POST | 인증타입에 따라(email, sms, msg) OTP 생성 |
표. OTP Send(Portal Common)
Request Parameters
| Properties | Attribute | Mandatory | Parameter Type | Data Type | Sample Data | Note |
|---|---|---|---|---|---|---|
| locale | locale | Y | body | String | ko | |
| 인증타입 | type | Y | body | String | email, sms, msg | |
| userName | userName | Y | body | String | gildong.hong |
표. Request Parameters
Response Parameters
| Properties | Attribute | Data Type | Sample Data | Note |
|---|---|---|---|---|
| otpString | otpString | String | 0000000c5bb286c166530ac928d0bdf1f0894ed3a6d891eb3ab7ec89fc9faef7817b9f2f02f8c89ae91558cdc9afec94d6bede93a91d9825f4fe14dc2a282f6456d09f823d194570bc91b353830826e69d5f818172c12dbdb7b524 |
표. Response Parameters
Sample
| Request | Response |
|---|---|
ccurl -X POST "https://localhost:7443/open/v1.1/asis/otp/send" -H "accept: */*" -H "Content-Type: application/json" -d "{\"locale\":\"ko\",\"type\":\"email\",\"userName\":\"gildong.hong\"}" | { "otpString": 0000000c5bb286c166530ac928d0bdf1f0894ed3a6d891eb3ab7ec89fc9faef7817b9f2f02f8c89ae91558cdc9afec94d6bede93a91d9825f4fe14dc2a282f6456d09f823d194570bc91b353830826e69d5f818172c12dbdb7b524} |
표. Sample
Error Code
| Http Response Code | Error Code | Error Message | 조치 방안 |
|---|---|---|---|
| 404 | N/A | N/A | 유저가 존재하지 않을 때 |
| 429 | N/A | N/A | 60초 이내 중복 호출 |
| 500 | N/A | N/A | 서버 에러, 에러메시지 확인 및 관리자 문의 |
표. Error Code
API Specification - OTP Validation(Portal Common)
| Module | API | URI | Method | Description |
|---|---|---|---|---|
| Portal Common | OTP Validation | https://{domain}/{tenant-name}/common-api/open/v1.1/asis/otp/validate | POST | otp를 검증합니다. |
표. OTP Validation(Portal Common)
Request Parameter
| Properties | Attribute | Mandatory | Parameter Type | Data Type | Sample Data | Note |
|---|---|---|---|---|---|---|
| userName | userName | Y | Body | String | gildong.hong | |
| otp(6자리) | otp | Y | Body | String | 121215 | |
| checkValue | checkValue | Y | Body | String | 0000000c5bb286c166530ac928d0bdf1f0894ed3a6d891eb3ab7ec89fc9faef7817b9f2f02f8c89ae91558cdc9afec94d6bede93a91d9825f4fe14dc2a282f6456d09f823d194570bc91b353830826e69d5f818172c12dbdb7b524 | sendOtp에서 response로 받은 otpString 값 |
| 인증타입 | type | Y | Body | String | email, sms, msg |
표. Request Parameters
Response Parameter
| Properties | Attribute | Data Type | Sample Data | Note |
|---|---|---|---|---|
| 결과 | result | String | SUCCESS |
표. Response Parameters
Sample
| Request | Response |
|---|---|
curl -X POST "https://localhost:7443/open/v1.1/asis/otp/validate" -H "accept: */*" -H "Content-Type: application/json" -d "{\"checkValue\":\"0000000c5bb286c166530ac928d0bdf1f0894ed3a6d891eb3ab7ec89fc9faef7817b9f2f02f8c89ae91558cdc9afec94d6bede93a91d9825f4fe14dc2a282f6456d09f823d194570bc91b353830826e69d5f818172c12dbdb7b524\",\"otp\":\"791462\",\"type\":\"email\",\"userName\":\"gildong.hong\"}" | { "result": "success" } |
표. Sample
Error Code
| Http Response Code | Error Code | Error Message | 조치 방안 |
|---|---|---|---|
| 400 | N/A | N/A | OTP를 잘못 입력했을 때 |
| 404 | N/A | N/A | 유저가 존재하지 않을 때 |
| 410 | N/A | N/A | OTP가 만료되었을 때 |
| 429 | N/A | N/A | API 실패 호출 10회 초과시 |
| 500 | N/A | N/A | 서버 에러, 에러메시지 확인 및 관리자 문의 |
표. Error Code
API Specification - MFA Consumer Reques(Portal Common)
| Module | API | URI | Method | Description |
|---|---|---|---|---|
| Portal Common | MFA Consumer Request | https://{domain}/{tenant-name}/common-api/open/v1.1/mfa/request | GET | MFA를 요청합니다. |
표. MFA Consumer Reques(Portal Common)
Request Parameter
| Properties | Attribute | Mandatory | Parameter Type | Data Type | Sample Data | Note |
|---|---|---|---|---|---|---|
| JWT Token | jwtTokenRequest | Y | query | String | eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOiJqaW5vbmUua2ltIiwiZGlzcGxheVVpZCI6Imppbm9uZS5raW1Ac2Ftc3VuZy5jb20iLCJlbWFpbCI6ImxUL3p4WngxNk81REo2SU91Z2VnRW9wVGk2eDh5bkxXY3NHLzRaWFE2TVlDSzNQV05oTS9hQUFnQmpkSEJMN1hkcFA2Y25jNCIsIm1vYmlsZSI6InlkVU54ZVl6YkNOY0xEYnFqN01rL2ZCdFcvaHZoRE1Bbm9lNzhRVTRvQTAzZUlwN2NsOVFpSGFoIiwicnRuIjoiaHR0cHM6Ly9zdGcxLWNsb3VkLnNpbmdsZWlkLnNhbXN1bmcubmV0L21vY2svcW1zL21mYS1jb25zdW1lci9yZXN1bHQiLCJyZXEiOiI3NjFlZmQ1Mi05N2QwLTQ1MWYtOWNmOS1jZjg2NzQwZTdjYTMiLCJzeXMiOiI4MDE0ODYyMS04MjZmLTQ5YmUtOGM5ZS0zMTE1ZTUzMDFlMWIiLCJuYmYiOjE3MTIwMjkxNDIsImV4cCI6MTcxNDYyMTE0MiwiaWF0IjoxNzEyMDI5MTQyfQ.-FWTK4IJsu8AonfJTTq7_OA1qAh-9FU89iC1JZcRg_c | 토큰 원본 데이터 샘플{ "sys":"test-system", "req":"761efd52-97d0-451f-9cf9-cf86740e7ca3", "uid":"gildong.hong", "rtn":"https://test.com/mfa/response","email":"gildong.hong@samsung.com","mobile":"+82-1012345678", "nbf": 1698232068, "exp": 1698239268, "iat": 1698232068, "displayUid": "gildong.hong@samsung.com" } |
표. Request Parameters
Response
MFA 인증 페이지로 Redirect 된다. 기본적으로는 response token을 post 방식으로 전달하나, get 방식(query)로 전달하려면 request token에 다음 파라미터를 추가해줍니다.
- returnMethod: get
Sample
| Request | Response |
|---|---|
curl -X GET "https://stg2-cloud.singleid.samsung.net/test-tenant/common-api/open/v1.1/mfa/request?jwtTokenRequest=eyJhbGciOiJIUzI1NiJ9.eyJzeXMiOiJ0ZXN0LXN5c3RlbSIsInJlcSI6Ijc2MWVmZDUyLTk3ZDAtNDUxZi05Y2Y5LWNmODY3NDBlN2NhMyIsInVpZCI6Imppbm9uZS5raW0iLCJydG4iOiJodHRwczovL3Rlc3QuY29tL21mYS9yZXNwb25zZSIsIm5iZiI6MTY5ODIzMjA2OCwiZXhwIjoxNjk4MjM5MjY4LCJpYXQiOjE2OTgyMzIwNjh9.cDgKMHIINaHhBiyAd_OIlVvQwmUs0QaXH_RfJ8B_KdY" | 페이지 이동 |
표. Sample
Error Code
| Http Response Code | Error Code | Error Message | 조치 방안 |
|---|---|---|---|
| 400 | N/A | N/A | 토큰 데이터를 확인합니다. |
표. Error Code
API Specification - MFA Consumer Reques(Portal Common)
| Module | API | URI | Method | Description |
|---|---|---|---|---|
| Portal Common | MFA Consumer Request | https://{domain}/{tenant-name}/common-api/open/v1.1/mfa/request | POST | MFA를 요청합니다. |
표. MFA Consumer Reques(Portal Common)
Request Parameter
| Properties | Attribute | Mandatory | Parameter Type | Data Type | Sample Data | Note |
|---|---|---|---|---|---|---|
| JWT Token | jwtTokenRequest | Y | query | String | eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOiJqaW5vbmUua2ltIiwiZGlzcGxheVVpZCI6Imppbm9uZS5raW1Ac2Ftc3VuZy5jb20iLCJlbWFpbCI6ImxUL3p4WngxNk81REo2SU91Z2VnRW9wVGk2eDh5bkxXY3NHLzRaWFE2TVlDSzNQV05oTS9hQUFnQmpkSEJMN1hkcFA2Y25jNCIsIm1vYmlsZSI6InlkVU54ZVl6YkNOY0xEYnFqN01rL2ZCdFcvaHZoRE1Bbm9lNzhRVTRvQTAzZUlwN2NsOVFpSGFoIiwicnRuIjoiaHR0cHM6Ly9zdGcxLWNsb3VkLnNpbmdsZWlkLnNhbXN1bmcubmV0L21vY2svcW1zL21mYS1jb25zdW1lci9yZXN1bHQiLCJyZXEiOiI3NjFlZmQ1Mi05N2QwLTQ1MWYtOWNmOS1jZjg2NzQwZTdjYTMiLCJzeXMiOiI4MDE0ODYyMS04MjZmLTQ5YmUtOGM5ZS0zMTE1ZTUzMDFlMWIiLCJuYmYiOjE3MTIwMjkxNDIsImV4cCI6MTcxNDYyMTE0MiwiaWF0IjoxNzEyMDI5MTQyfQ.-FWTK4IJsu8AonfJTTq7_OA1qAh-9FU89iC1JZcRg_c | 토큰 원본 데이터 샘플{ "sys":"test-system", "req":"761efd52-97d0-451f-9cf9-cf86740e7ca3", "uid":"gildong.hong", "rtn":"https://test.com/mfa/response","email":"gildong.hong@samsung.com","mobile":"+82-1012345678", "nbf": 1698232068, "exp": 1698239268, "iat": 1698232068, "displayUid": "gildong.hong@samsung.com" } |
| MFA Consumer Home 이동 여부 | registerFlag | Y | query | Boolean | true | MFA Consumer Home으로 이동할지 여부를 결정합니다. true일 경우 MFA Consumer Home으로 이동합니다. |
표. Request Parameters
Response
- registerFlag = true 일 때 : MFA Consumer Home으로 Redirect 된다.
- registerFlag = false 일 때 : MFA 인증 페이지로 Redirect 된다.
Sample
| Request | Response |
|---|---|
curl -X POST "https://stg2-cloud.singleid.samsung.net/test-tenant/common-api/open/v1.1/mfa/request?jwtTokenRequest=eyJhbGciOiJIUzI1NiJ9.eyJzeXMiOiJ0ZXN0LXN5c3RlbSIsInJlcSI6Ijc2MWVmZDUyLTk3ZDAtNDUxZi05Y2Y5LWNmODY3NDBlN2NhMyIsInVpZCI6Imppbm9uZS5raW0iLCJydG4iOiJodHRwczovL3Rlc3QuY29tL21mYS9yZXNwb25zZSIsIm5iZiI6MTY5ODIzMjA2OCwiZXhwIjoxNjk4MjM5MjY4LCJpYXQiOjE2OTgyMzIwNjh9.cDgKMHIINaHhBiyAd_OIlVvQwmUs0QaXH_RfJ8B_KdY®isterFlag=true" | 페이지 이동 |
표. Sample
Error Code
| Http Response Code | Error Code | Error Message | 조치 방안 |
|---|---|---|---|
| 400 | N/A | N/A | 토큰 데이터를 확인합니다. |
표. Error Code
API Specification - Send Email about Anomaly Detection(Tenant Admin Portal)
| Module | API | URI | Method | Description |
|---|---|---|---|---|
| Tenant Admin Portal | Send Email about Anomaly Detection | https://{domain}/{tenant-name}/admin-api/open/v1.1/emails/anomalyDetection | POST | 사용자가 인증 이상 행위에 탐지 되었을 경우 메일을 발송합니다. |
표. Send Email about Anomaly Detection(Tenant Admin Portal)
Request Parameter
| Properties | Attribute | Mandatory | Parameter Type | Data Type | Sample Data | Note |
|---|---|---|---|---|---|---|
| 사용자 IP | accessIP | Y | Body | String | 10.0.0.0 | |
| 등록 시간 | detectionTime | Y | Body | String | 2023-09-10 23:01:01 | |
| 이메일 | Y | Body | String | gildong.hong@samsung.com | ||
| 사용자 환경 | environment | Y | Body | String | PC / Window / Chrome | |
| 언어 | language | Y | Body | String | ko | |
| 네트워크 환경(내/외부) | location | Y | Body | String | Internal | |
| 탐지 룰 번호 | rule | Y | Body | String | P001 | |
| 사용자 계정 | username | Y | Body | String | gildong.hong | |
| 인증 고유 값 | envGuid | Y | Body | String | d8b09752-405a-4d52-8605-bff9aa3f4741 |
표. Request Parameters
Response Parameter
| Properties | Data Type | Sample Data | Note |
|---|---|---|---|
| 결과 | boolean | true | 메일 발송 성공 시 true / 실패 시 false |
표. Response Parameters
Sample
| Request | Response |
|---|---|
curl -X POST "https://stg1-cloud.singleid.samsung.net:443/test-tenant/admin-api/open/v1.1/emails/anomalyDetection" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"accessIP\":\"10.0.0.0\",\"detectionTime\":\"2023-09-10 23:01:01\",\"email\":\"gildong.hong@samsung.com\",\"environment\":\"PC / Window / Chrome\",\"language\":\"ko\",\"location\":\"Internal\",\"rule\":\"P001\",\"username\":\"gildong.hong\",\"envGuid\":\"d8b09752-405a-4d52-8605-bff9aa3f4741\"}" | true |
표. Sample
Error code
| Http Response Code | Error Code | Error Message | 조치 방안 |
|---|---|---|---|
| 400 | N/A | N/A | Bad Request |
| 403 | N/A | N/A | Forbidden |
| 500 | N/A | N/A | Internal Server Error |
표. Error Code
API Specification - Send Email about New Sign-in Environment(Tenant Admin Portal)
| Module | API | URI | Method | Description |
|---|---|---|---|---|
| Tenant Admin Portal | Send Email about New Sign-in Environment | https://{domain}/{tenant-name}/admin-api/open/v1.1/emails/newSignInEnvironment | POST | 사용자가 신규 환경에서 로그인했을 경우 사용자에게 통보하고 환경 등록 여부를 확인하는 메일을 발신합니다. |
표. Send Email about New Sign-in Environment(Tenant Admin Portal)
Request Parameter
| Properties | Attribute | Mandatory | Parameter Type | Data Type | Sample Data | Note |
|---|---|---|---|---|---|---|
| 사용자 IP | accessIP | Y | Body | String | 10.0.0.0 | |
| 등록 시간 | detectionTime | Y | Body | String | 2023-09-10 23:01:01 | |
| 이메일 | Y | Body | String | gildong.hong@samsung.com | ||
| 사용자 환경 | environment | Y | Body | String | PC / Window / Chrome | |
| 언어 | language | Y | Body | String | ko | |
| 네트워크 환경(내/외부) | location | Y | Body | String | Internal | |
| 탐지 룰 번호 | rule | Y | Body | String | P001 | |
| 사용자 계정 | username | Y | Body | String | gildong.hong | |
| 인증 고유 값 | envGuid | Y | Body | String | d8b09752-405a-4d52-8605-bff9aa3f4741 |
표. Request Parameters
Response Parameter
| Properties | Data Type | Sample Data | Note |
|---|---|---|---|
| 결과 | boolean | true | 메일 발송 성공 시 true / 실패 시 false |
표. Response Parameters
Sample
| Request | Response |
|---|---|
curl -X POST "https://stg1-cloud.singleid.samsung.net:443/test-tenant/admin-api/open/v1.1/emails/anomalyDetection" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"accessIP\":\"10.0.0.0\",\"detectionTime\":\"2023-09-10 23:01:01\",\"email\":\"gildong.hong@samsung.com\",\"environment\":\"PC / Window / Chrome\",\"language\":\"ko\",\"location\":\"Internal\",\"rule\":\"P001\",\"username\":\"gildong.hong\",\"envGuid\":\"d8b09752-405a-4d52-8605-bff9aa3f4741\"}" | true |
표. Sample
Error Code
| Http Response Code | Error Code | Error Message | 조치 방안 |
|---|---|---|---|
| 400 | N/A | N/A | Bad Request |
| 403 | N/A | N/A | Forbidden |
| 500 | N/A | N/A | Internal Server Error |
표. Error Code
API Specification - Get User(User Portal)
| Module | API | URI | Method | Description |
|---|---|---|---|---|
| User Portal | Get User | https://{domain}/{tenant-name}/user-api/open/v1.1/users/{username} | GET | 사용자의 이름, 이메일, 선호 언어, 타임존 데이터를 조회합니다. |
표. Get User(User Portal)
Request Parameter
| Properties | Attribute | Mandatory | Parameter Type | Data Type | Sample Data | Note |
|---|---|---|---|---|---|---|
| 사용자 ID | username | Y | Path | String | gildong.hong |
표. Request Parameters
Response Parameter
| Properties | Attribute | Data Type | Sample Data | Note |
|---|---|---|---|---|
| User ID | username | String | gildong.hong | |
| String | gildong.hong@stage.samsung.com | |||
| 성명 | formattedName | String | 김동호 | |
| 이름 | givenName | String | 동호 | |
| 성 | familyName | String | 김 | |
| 영어 Full Name | enFormattedName | String | Dongho Kim | |
| 영어 이름 | enGivenName | String | Dongho | |
| 영어 성 | enFamilyName | String | Kim | |
| 선호 언어 | preferredLanguage | String | ko | 1) en : 영어 2) ko : 한글 |
| 타임존 | timeZone | String | Asia/Seoul |
표. Response Parameters
Sample
| Request | Response |
|---|---|
curl -X GET "https://stg2-cloud.singleid.samsung.net/test-tenant/user-api/open/v1.1/users/gildong.hong" -H "accept: application/json" -H "Authorization: Bearer {JWT_TOKEN}" | { "username": "gildong.hong", "email": "gildong.hong@stage.samsung.com", "formattedName": "김동호", "givenName": "동호", "familyName": "김", "enFormattedName": "Dongho Kim", "enGivenName": "Dongho", "enFamilyName": "Kim", "preferredLanguage": "ko", "timeZone": "Asia/Seoul" } |
표. Sample
Error Code
| Http Response Code | Error Code | Error Message | 조치 방안 |
|---|---|---|---|
| 401 | N/A | N/A | JWT Token 이 유효한지 확인이 필요합니다. |
표. Error Code
API Specification - Get User Profile Image(User Portal)
| Module | API | URI | Method | Description |
|---|---|---|---|---|
| User Portal | Get User Profile Image | https://{domain}/{tenant-name}/user-api/open/v1.1/users/image/{username} | GET | 사용자의 프로필 이미지 데이터를 조회합니다. |
표. Get User Profile Image(User Portal)
Request Parameter
| Properties | Attribute | Mandatory | Parameter Type | Data Type | Sample Data | Note |
|---|---|---|---|---|---|---|
| 사용자 ID | username | Y | Path | String | gildong. hong |
표. Request Parameters
Response Parameter
| Properties | Attribute | Data Type | Sample Data | Note |
|---|---|---|---|---|
| username | username | String | null |
표. Response Parameters
Sample
| Request | Response |
|---|---|
curl -X GET "https://stg2-cloud.singleid.samsung.net:443/test-tenant/user-api/open/v1.1/users/image/gildong.hong" -H "accept: application/json" -H "Authorization: Bearer {JWT_TOKEN}" | 파일 데이터 { "username": null, "image": "" } 파일 URL { "username": "gildong.hong", "image": "" } |
표. Sample
Error Code
| Http Response Code | Error Code | Error Message | 조치 방안 |
|---|---|---|---|
| 401 | N/A | N/A | JWT Token 이 유효한지 확인이 필요합니다. |
표. Error Code
API Specification - Create account assignment list(User Portal)
| Module | API | URI | Method | Description |
|---|---|---|---|---|
| User Portal | Create account assignment list | https://{domain}/{tenant-name}/user-api/1.0/scp-auth/create | POST | 사용자에 대한 SCP 권한을 생성합니다. |
표. Create account assignment list(User Portal)
Request Parameter
| Properties | Attribute | Mandatory | Parameter Type | Data Type | Sample Data | Note |
|---|---|---|---|---|---|---|
| instance id | instanceId | Y | JSON | String | SCP 제공 | |
| permission set id | permissionSetId | Y | JSON | String | “PERMISSION-SET-Ablxc5__qEaIYmWGyMeqlf” | SCP 제공 |
| principal id | principalId | Y | JSON | String | “gildong.hong” | 사용자의 username |
| principal type | principalType | Y | JSON | String | “USER” | 현재 USER만 가능 |
| target id | targetId | Y | JSON | String | “PROJECT-ka2tfhLHsweVwm4BrR1rae” | PROJECT ID, SCP 제공 |
| target type | targetType | Y | JSON | String | “PROJECT” | 현재 PROJECT만 기능 |
표. Request Parameters
Response Parameter
| Properties | Attribute | Data Type | Sample Data | Note |
|---|---|---|---|---|
| instance id | instanceId | JSON | 저장된 값 리턴 | |
| permission set id | permissionSetId | JSON | “PERMISSION-SET-Ablxc5__qEaIYmWGyMeqlf” | 저장된 값 |
| principal id | principalId | JSON | “gildong.hong” | 저장된 값 |
| principal type | principalType | JSON | “USER” | 저장된 값 리턴 |
| target id | targetId | JSON | “PROJECT-ka2tfhLHsweVwm4BrR1rae” | 저장된 값 리턴 |
| target type | targetType | JSON | “PROJECT” | 저장된 값 리턴 |
| status | status | JSON | “SUCCESS” | 성공 또는 실패 |
| failure reason | failureReason | JSON | 실패 사유 | |
| created date | createdDate | JSON | 생성 일시 |
표. Response Parameters
Sample
| Request | Response |
|---|---|
curl -X POST "https://stg-scloud.singleid.samsung.net:443/stg4/user-api/1.0/scp-auth/create" -H "accept: application/json"-H "apiKey: {apiKey}" INPUT JSON{ "instanceId": "instnace-01", "permissionSetId": "PERMISSION-SET-Ablxc5__qEaIYmWGyMeqlf", "principalId": "singleid.test001", "principalType": "USER", "targetId": "PROJECT-ka2tfhLHsweVwm4BrR1rae", "targetType": "PROJECT" } | { "instanceId": "instnace-01", "permissionSetId": "PERMISSION-SET-Ablxc5__qEaIYmWGyMeqlf", "principalId": "singleid.test001", "principalType": "USER", "targetId": "PROJECT-ka2tfhLHsweVwm4BrR1rae", "targetType": "PROJECT" "status": "SUCCESS", "createdDate": "2024-04-03T01:58:46.538Z", "failureReason": "" } |
표. Sample
API Specification - Delete account assignment list(User Portal)
| Module | API | URI | Method | Description |
|---|---|---|---|---|
| User Portal | Delete account assignment list | https://{domain}/{tenant-name}/user-api/1.0/scp-auth/create](https://{domain}/{tenant-name}/user-api/1.0/scp-auth/delete | POST | 사용자에 대한 SCP 권한을 삭제합니다. |
표. Delete account assignment list(User Portal)
Request Parameter
| Properties | Attribute | Mandatory | Parameter Type | Data Type | Sample Data | Note |
|---|---|---|---|---|---|---|
| instance id | instanceId | Y | JSON | String | SCP 제공 | |
| permission set id | permissionSetId | Y | JSON | String | “PERMISSION-SET-Ablxc5__qEaIYmWGyMeqlf” | SCP 제공 |
| principal id | principalId | Y | JSON | String | “gildong.hong” | 사용자의 username |
| principal type | principalType | Y | JSON | String | “USER” | 현재 USER만 가능 |
| target id | targetId | Y | JSON | String | “PROJECT-ka2tfhLHsweVwm4BrR1rae” | PROJECT ID, SCP 제공 |
| target type | targetType | Y | JSON | String | “PROJECT” | 현재 PROJECT만 기능 |
표. Request Parameters
Response Parameter
| Properties | Attribute | Data Type | Sample Data | Note |
|---|---|---|---|---|
| instance id | instanceId | JSON | 삭제된 값 리턴 | |
| permission set id | permissionSetId | JSON | “PERMISSION-SET-Ablxc5__qEaIYmWGyMeqlf” | 삭제된 값 리턴 |
| principal id | principalId | JSON | “gildong.hong” | 삭제된 값 리턴 |
| principal type | principalType | JSON | “USER” | 삭제된 값 리턴 |
| target id | targetId | JSON | “PROJECT-ka2tfhLHsweVwm4BrR1rae” | 삭제된 값 리턴 |
| target type | targetType | JSON | “PROJECT” | 삭제된 값 리턴 |
| status | status | JSON | “SUCCESS” | 성공 또는 실패 |
| failure reason | failureReason | JSON | 실패 사유 | |
| created date | createdDate | JSON | 삭제 일시 |
표. Response Parameters
Sample
| Request | Response |
|---|---|
curl -X GET "https://stg1-cloud.singleid.samsung.net/test-tenant/common-api/open/v1.1/asis/test-tenant/user/mfa/token/authentication?userName=mkdir.kim&protocol=uma-uaf&sessionDataKey=sessionDataKey111&redirectUrl=redirectUrl1111&errorRedirectUrl=errorRedirectUrl1111¶ms=params111&language=ko" | { "result": "SUCCESS", "value": { "token": "eyJpc3MiOiJodHRwczovL3N0ZzItY2xvdWQuaWFtLnNhbXN1bmcubmV0Iiwic3ViIjoibWtkaXIua2ltIiwiYXVkIjoiaHR0cHM6Ly9zdGcyLWNsb3VkLmlhbS5zYW1zdW5nLm5ldCIsImV4cCI6MTY5ODEyOTM2OSwiaWF0IjoxNjk4MTI5MTg5LCJqdGkiOiJkNWZmZGE5Ny1mMzZkLTRjZDktYWJmZi1mMzY4ZTkxYWVkNTUiLCJhbXIiOltdLCJ6b25laW5mbyI6IkFzaWEvU2VvdWwiLCJsb2NhbGUiOiJlbl9VUyIsInByb3RvY29sIjoidW1hLXVhZiIsInJlZGlyZWN0X3VybCI6InJlZGlyZWN0VXJsMSIsImVycm9yX3JlZGlyZWN0X3VybCI6ImVycm9yUmVkaXJlY3RVcmwxIiwicGFyYW1zIjoicGFyYW1zMSIsInVzZXJJZCI6Im1rZGlyLmtpbSJ9:MEUCIHqWV_UcgKHsMlDI7Ks31fw1QPpCYnKorMpnr2L653LwAiEAz30ShMmACEi6H-IuF1YMV2bKT1WIFmAdJ6OCsmEzscA", "serviceUri": "/ua/MPHTOCHW5I/de6f67d0-8bec-46ac-bf53-16ef00eb2066/dgauth/mfa", "appId": null }, "message": "succeeded to get nexsign token.", "statusCode": null, "statusCodeValue": "0", "data": null} |
표. Sample
Error Code
| Http Response Code | Error Code | Error Message | 조치 방안 |
|---|---|---|---|
| 400 | N/A | N/A | userName을 확인해야 합니다. |
표. Error Code
API Specification - Get account assignment list(User Portal)
| Module | API | URI | Method | Description |
|---|---|---|---|---|
| User Portal | Get account assignment list | https://{domain}/{tenant-name}/user-api/1.0/scp-auth/list | POST | 사용자에 대한 SCP 권한을 조회합니다. |
표. Get account assignment list(User Portal)
Request Parameter
| No. | Properties | Attribute | Mandatory | Parameter Type | Data Type | Sample Data | Note |
|---|---|---|---|---|---|---|---|
| 1 | principal type | principalType | Y | query | String | “USER” | 현재 USER만 가능 |
| 2 | principal id | principalId | Y | query | String | “gildong.hong” | 조회할 사용자의 username |
표. Request Parameters
Response Parameter
| Properties | Attribute | Data Type | Sample Data | Note |
|---|---|---|---|---|
| instance id | instanceId | JSON | ||
| permission set id | permissionSetId | JSON | “PERMISSION-SET-Ablxc5__qEaIYmWGyMeqlf” | |
| principal id | principalId | JSON | “gildong.hong” | |
| principal type | principalType | JSON | “USER” | |
| target id | targetId | JSON | “PROJECT-ka2tfhLHsweVwm4BrR1rae” | |
| target type | targetType | JSON | “PROJECT” |
표. Response Parameters
Sample
| Request | Response |
|---|---|
curl -X GET "https://stg-scloud.singleid.samsung.net:443/stg4/user-api/1.0/scp-auth/list?principalType=USER&principalId=singleid.test001" -H "accept: application/json" -H "apiKey: {apiKey}" | [ { "instanceId": "instnace-01", "permissionSetId": "PERMISSION-SET-Ablxc5__qEaIYmWGyMeqlf", "principalId": "singleid.test001", "principalType": "USER", "targetId": "PROJECT-ka2tfhLHsweVwm4BrR1rae", "targetType": "PROJECT" }, { "instanceId": "instnace-01", "permissionSetId": "PERMISSION-SET-Ablxc5__qEaIYmWGyMe121", "principalId": "singleid.test001", "principalType": "USER", "targetId": "PROJECT-ka2tfhLHsweVwm4BrR1rae", "targetType": "PROJECT" } ] |
표. Sample
Error Code
| Http Response Code | Error Code | Error Message | 조치 방안 |
|---|---|---|---|
| 401 | N/A | N/A | API Key가 유효한지 확인이 필요합니다. |
표. Error Code
API Specification - Search User(User Portal)
| Module | API | URI | Method | Description |
|---|---|---|---|---|
| User Portal | Search User | https://{domain}/{tenant-name}/user-api/1.0/scp-user/list | POST | SCP 대상 사용자를 검색합니다. |
표. Search User(User Portal)
Request Parameter
| Properties | Attribute | Mandatory | Parameter Type | Data Type | Sample Data | Note |
|---|---|---|---|---|---|---|
| page | page | N | query | Integer | 0 | 가져올 페이지 |
| size | size | N | query | Integer | 10 | 페이지의 크기 |
| username | username | N | query | String | “gildong.hong” | 조회할 사용자 ID |
| group name | groupName | N | query | String | “ADGroup” | 조회할 그룹 |
| create Date(from) | creationDateGe | N | query | DateTime | “2024-04-03T07:49:23.845Z” | |
| create Date(to) | creationDateLe | N | query | DateTime | “2024-04-03T07:49:23.845Z” | |
| last change date(from) | lastChangeDateGe | N | query | DateTime | “2024-04-03T07:49:23.845Z” | |
| last change date(to) | lastChangeDateLe | N | query | DateTime | “2024-04-03T07:49:23.845Z” |
표. Request Parameters
Response Parameter
| Properties | Attribute | Data Type | Sample Data | Note |
|---|---|---|---|---|
| key | key | String | “01890501-74fa-7785-91e0-67bd71217a2e” | |
| username | username | String | “gildong.hong” | |
| administrator | administrator | Boolean | false | |
| formatted name | formattedName | String | “길동 홍” | |
| formatted Name(en) | enFormattedName | String | “gildong hong” | |
| String | “gildong.hong@samsung.com” | |||
| mobile | mobile | String | “+02-01011112222” | |
| preferred language | preferredLanguage | String | “ko” | |
| time zone | timeZone | String | “Asia/Seoul” | |
| managed by | managedBy | String | “SINGLEID” | |
| creator | creator | String | “admin001” | |
| creation date | creationDate | DateTime | “2024-04-03T07:49:23.845Z” | |
| last modifier | lastModifier | String | “admin001” | |
| last change date | lastChangeDate | DateTime | “2024-04-03T07:49:23.845Z” |
표. Response Parameters
Sample
| Request | Response |
|---|---|
curl -X POST "https://stg-scloud.singleid.samsung.net:443/stg4/user-api/1.0/scp-user/list" -H "accept: application/json" -H "apiKey: {apiKey}" | [ { "key": "01890501-74fa-7785-91e0-67bd71217a2e", "administrator": false, "username": "gildong.hong", "enFormattedName": "gildong hong", "formattedName": "길동 홍", "email": "gildong.hong@samsung.com", "mobile": "+02-01011112222", "preferredLanguage": "ko", "timeZone": "Asia/Seoul", "managedBy": "SINGLEID", "creator": "admin001", "creationDate": "2024-04-03T07:49:23.845Z", "lastModifier": "admin001", "lastChangeDate": "2024-04-03T07:49:23.845Z" }, { "key": "01890501-74fa-7785-91e0-67bd71217a2e", "administrator": false, "username": "gildong.hong", "enFormattedName": "gildong hong", "formattedName": "길동 홍", "email": "gildong.hong@samsung.com", "mobile": "+02-01011112222", "preferredLanguage": "ko", "timeZone": "Asia/Seoul", "managedBy": "SINGLEID", "creator": "admin001", "creationDate": "2024-04-03T07:49:23.845Z", "lastModifier": "admin001", "lastChangeDate": "2024-04-03T07:49:23.845Z" } ] |
표. Sample
Error Code
| Http Response Code | Error Code | Error Message | 조치 방안 |
|---|---|---|---|
| 401 | N/A | N/A | API Key가 유효한지 확인이 필요합니다. |
표. Error Code
API Specification - MFA Consumer Request(Portal Common)
| Module | API | URI | Method | Description |
|---|---|---|---|---|
| Portal Common | MFA Consumer Request | https://{domain}/{tenant-name}/common-api/open/v1.1/mfa/request/mfa | POST | MFA를 요청합니다. |
표. MFA Consumer Request(Portal Common)
Request Parameter
| No. | Properties | Attribute | Mandatory | Parameter Type | Data Type | Sample Data | Note |
|---|---|---|---|---|---|---|---|
| 1 | username | username | Y | Body | String | mkdir.kim | |
| 2 | 인증타입 | type | N | Body | String | email, sms, msg, uaApp, uaMOTP 중 1개. 미지정 시 기본 설정 또는 사용자 선호수단을 따름. | |
| 3 | serviceProviderId | serviceProviderId | Y | Body | String | d8b09752-405a-4d52-8605-bff9aa3f4741 | UUID. SingleID Admin Portal에서 등록 후 채번되는 장비별 ID. |
표. Request Parameters
Response Parameter
| Properties | Attribute | Data Type | Sample Data | Note |
|---|---|---|---|---|
| requestId | requestId | String | 01890501-74fa-7785-91e0-67bd71217a2e | UUID. MFA 검증 시 요청 파라미터로 활용. |
| 인증타입 | type | String | sms | email, sms, msg, uaApp, uaMOTP 중 1개. MFA type에 따라 검증 로직이 달라질 수 있음. |
| otp | otp | String | 123456 | 6자리 또는 8자리 숫자. type이 uaMOTP(6자리), uaApp(8자리)인 경우에만 발급. |
표. Response Parameters
Sample
| Request | Response |
|---|---|
curl -X POST "https://stg1-cloud.singleid.samsung.net:443/test/common-api/open/v1.1/mfa/request/mfa" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"username\":\"mkdir.kim\",\"type\":\"sms\",\"serviceProviderId\":\"dceef541-1f22-479d-96ac-c402ab0789e9\"} | { "otp": "123456", "requestId": "d8b09752-405a-4d52-8605-bff9aa3f4741", "serviceProviderId": "", "type": "sms", "username": "" } |
표. Sample
Error Codes and Responses
| Http Response Code | Error Code | Error Message | Action Plan |
|---|---|---|---|
| 400 | N/A | common.error.requiredValue | 필수값이 누락되었습니다. 확인해주세요 |
| 400 | N/A | user.error.notFound | 사용자를 찾을 수 없습니다. 사용자 아이디를 확인하세요 |
| 400 | N/A | serviceProvider.error.notFound | 서비스 프로바이더를 찾을 수 없습니다. 관리자에게 문의하세요 |
| 400 | N/A | authenticator.error.notFound | 인증수단을 찾을 수 없습니다. 관리자에게 문의하세요 |
| 400 | N/A | common.error.disallowedValue | 잘못된 Type 입니다. 관리자에게 문의하세요 |
| 400 | N/A | user.error.locked + remain | 계정이 잠겨있습니다. {remain} 분 이후에 시도해 주세요. |
| 400 | N/A | otp.error.tooManyAttempts | 보안경고 화면으로 이동(여러번의 인증실패로 인해 계정이 잠겼습니다) |
표. Error Code
API Specification - MFA Consumer Verification(Portal Common)
| Module | API | URI | Method | Description |
|---|---|---|---|---|
| Portal Common | MFA Consumer Verification | https://{domain}/{tenant-name}/common-api/open/v1.1/mfa/verification/mfa | POST | MFA를 검증합니다. |
표. MFA Consumer Verification(Portal Common)
Request Parameter
| Properties | Attribute | Mandatory | Parameter Type | Data Type | Sample Data | Note |
|---|---|---|---|---|---|---|
| requestId | requestId | Y | Body | String | d8b09752-405a-4d52-8605-bff9aa3f4741 | UUID |
| otp | otp | N | Body | String | 123456 | 6자리 숫자/uaApp, uaMOTP일경우엔 필요없음 |
표. Request Parameters
Response Parameter
| Http Status Code | 상태 |
|---|---|
| 200 | 인증 완료 |
| 202 | 인증 대기 (type이 uaMOTP, uaApp인 경우에만 발생. 주기적으로 Polling하며 200으로 전달 때까지 결과 확인 필요) |
| 그외 | 에러 |
표. Response Parameters
Sample
| Request | Response |
|---|---|
curl -X POST "https://stg1-cloud.singleid.samsung.net:443/test/common-api/open/v1.1/mfa/verification/mfa" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"otp\":\"000000\",\"requestId\":\"095db652-877f-42e5-b87f-e404fb07048b\"}" | { “statusCode”: “ACCEPTED”, } |
표. Sample
Error Codes
| Http Response Code | Error Code | Error Message | 조치 방안 |
|---|---|---|---|
| 400 | N/A | common.error.requiredValue | 필수값이 누락되었습니다. 확인해주세요 |
| 400 | N/A | common.error.invalidRequest | 찾을 수 없는 Request 입니다. 관리자에게 문의하세요 |
| 400 | N/A | request.error.invalidStatus | Request의 상태가 잘못되었습니다. 관리자에게 문의하세요 |
| 400 | N/A | otp.error.notMatch | 잘못된 OTP입니다. OTP를 확인하세요 |
| 400 | N/A | otp.error.tooManyAttempts | 보안경고 화면으로 이동(여러번의 인증실패로 인해 계정이 잠겼습니다) |
표. Error Code