메인 콘텐츠로 건너뛰기
클라이언트를 생성하기 전에 Vantage API에 인증되어 있어야 합니다. 자세한 내용은 “Authentication”을 참조하세요.

클라이언트 생성

클라이언트를 생성하려면 {baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/ 엔드포인트로 Authorization = Bearer <access token> 헤더를 포함한 POST 요청을 전송하고, 아래와 같은 요청 본문 파라미터를 제공해야 합니다:
ParameterDescription
clientId클라이언트의 식별자입니다.
clientName클라이언트 이름입니다(예: 앱 이름).
allowOfflineAccess액세스 토큰과 함께, 애플리케이션이 사용자 개입 없이 액세스 토큰을 자동으로 갱신하는 데 사용할 수 있는 리프레시 토큰을 생성할지 여부를 지정합니다. 기본값은 False입니다.
allowRememberConsent사용자가 동의 결정 사항을 저장할 수 있는지 여부를 지정합니다. 기본값은 True입니다.
backChannelLogoutSessionRequiredBackchannel Logout 메커니즘이 필요한지 여부를 지정합니다. 기본값은 True입니다.
requireClientSecret클라이언트 시크릿이 필요한지 여부를 지정합니다. 기본값은 True입니다.
requireConsent동의 화면이 필요한지 여부를 지정합니다. 기본값은 False입니다.
allowNoPkceAuthorization Code Flow with Proof Key for Code Exchange (PKCE) 인증 방식이 허용되는지 여부를 지정합니다. 기본값은 False이며, 이 경우 Authorization Code Flow with Proof Key for Code Exchange (PKCE) 인증 방식만 허용됩니다.
allowedGrantTypes사용할 수 있는 grant type을 지정합니다.
allowedCorsOrigins기본 교차 출처 리소스 공유(CORS) 메커니즘이 사용되는지 여부를 지정합니다.
allowedScopes토큰에 포함되어 전송되어야 하는 리소스 및 사용자 데이터 집합을 정의합니다. scope 값은 정확히 **“openid permissions publicapi.all”**이어야 합니다.
postLogoutRedirectUris로그아웃 후 리디렉션이 허용되는 URI 목록입니다.
redirectUris인증 토큰 리디렉션이 허용된(화이트리스트에 등록된) 웹사이트 또는 앱 URL 목록입니다. URL에 접두사를 사용할 수 있습니다. 접두사가 일치하면, 예를 들어 [ “https://myDomain.”, “https://myApp.myDomain.com/oauth-signin.html” ]와 같이 어떤 URL이든 허용됩니다.
accessTokenLifetime발급된 액세스 토큰이 Vantage에 대한 사용자 액세스를 허용하는 기간을 정의합니다. 액세스 토큰의 기본 수명은 24시간입니다.
refreshTokenLifetime최초 액세스 토큰 발급 시점부터 시작하여, 발급된 리프레시 토큰을 사용해 액세스 토큰을 갱신할 수 있는 절대적인 시간 기간을 정의합니다. 리프레시 토큰의 기본 수명은 30일입니다.
중요! Resource Owner Password Credentials 방식을 사용하여 인증하는 경우, allowRopc 파라미터를 TRUE로 설정해야 합니다. 이 인증 방식은 사용자가 자신의 자격 증명을 애플리케이션에 전송하는 것을 전제로 하므로, 신뢰할 수 있는 기밀 클라이언트가 인증되는 경우에만 ROPC 사용을 권장합니다.
샘플 요청:

Windows용

curl --location --request POST "{baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/" 
-H "accept: application/json" \
-H "Authorization: Bearer {token}"
{ 
  "clientId": "{clientId}",
  "clientName": "{clientName}", 
  "allowOfflineAccess": true,
  "allowRememberConsent": true,
  "backChannelLogoutSessionRequired": true,
  "requireClientSecret": true,    
  "requireConsent": false,  
  "allowNoPkce": true, 
  "allowedGrantTypes": [    
    "{allowedGrantTypes}"  
  ],
  "allowedCorsOrigins": [
    "{allowedCorsOrigins}"
  ],
  "allowedScopes": [ 
    "openid",
    "permissions",
    "publicapi.all" 
  ] 
  "postLogoutRedirectUris": [
     "{postLogoutRedirectUris}"
  ], 
  "redirectUris": [ 
    "{redirectUris}" 
  ]
}

Linux의 경우

curl --location --request POST '{baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/'
-H 'accept: application/json' \
-H 'Authorization: Bearer {token}'
{ 
  'clientId': '{clientId}',
  'clientName': '{clientName}', 
  'allowOfflineAccess': true,
  'allowRememberConsent': true,
  'backChannelLogoutSessionRequired': true,
  'requireClientSecret': true,    
  'requireConsent': false,  
  'allowNoPkce': true, 
  'allowedGrantTypes': [    
    '{allowedGrantTypes}'  
  ],
  'allowedCorsOrigins': [
    '{allowedCorsOrigins}'
  ],
  'allowedScopes': [ 
    'openid',
    'permissions',
    'publicapi.all' 
  ] 
  'postLogoutRedirectUris': [
     '{postLogoutRedirectUris}'
  ], 
  'redirectUris': [ 
    '{redirectUris}' 
  ]
}
서버 응답에는 생성된 클라이언트에 대한 정보가 포함됩니다.

시크릿 생성

각 클라이언트는 여러 개의 시크릿을 가질 수 있습니다. 이를 통해 현재 시크릿을 삭제하지 않고도 만료되면 새 시크릿을 사용하기 시작할 수 있습니다. 기본적으로 클라이언트 시크릿은 6개월 후에 만료됩니다. 시크릿을 생성하려면 Authorization = Bearer <access token> 헤더와 함께 POST 요청을 {baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/{clientId}/secrets/ 엔드포인트로 전송하고, 요청 본문에 다음 파라미터를 포함해야 합니다:
ParameterDescription
description클라이언트 시크릿에 대한 설명입니다. 각 시크릿을 구분하는 데 도움이 되는 짧은 설명일 수 있습니다. 선택적 파라미터입니다.
start time시크릿의 시작 날짜를 지정합니다.
expiration시크릿의 만료 날짜를 지정합니다(1일 이상 3년 이하). 예: “2021-09-07T13:03:38.380Z”. 기본적으로 이 날짜는 시크릿 생성일로부터 정확히 6개월 뒤로 설정됩니다.
요청 예시:

Windows용

curl --location --request POST "{baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/{clientId}/secrets/"
-H "accept: application/json" \
-H "Authorization: Bearer {token}"
-H "Content-Type: application/json-patch+json" \ 
-d 
{ 
  "description": "{description}",
  "startTime": "{startTime}"
  "expiration": "{expiration}" 
}

Linux의 경우

curl --location --request POST '{baseUrl}/api/adminapi2/v1/tenants/{tenantId}/clients/{clientId}/secrets/'
-H 'accept: application/json' \
-H 'Authorization: Bearer {token}'
-H 'Content-Type: application/json-patch+json' \ 
-d 
{ 
  'description': '{description}',
  'startTime': '{startTime}'
  'expiration': '{expiration}' 
}
서버가 요청에 응답할 때, 클라이언트 시크릿(value)과 그 유효 기간(startTime, expiration)이 포함됩니다.
중요! 클라이언트 시크릿 값은 생성 시점에만 확인할 수 있습니다. 이후 시크릿으로 클라이언트에 접근할 수 없게 되는 일을 방지하려면, 이 값을 안전한 위치에 반드시 보관하십시오. 나중에는 클라이언트 시크릿 값의 처음 세 글자(valueDisplay)만 확인할 수 있습니다.