인증 제공자 목록 조회(List Authentication Providers) (V2)
enrollmentRid로 지정한 플랫폼 인스턴스의 SSO 인증 제공자 목록을 조회합니다. 로그인 사용 여부, 지원 호스트와 사용자 이름 패턴, 프로토콜별 메타데이터를 반환합니다.
이 엔드포인트는 미리보기 기능이며 언제든 변경되거나 제거될 수 있습니다. 사용하려면 preview=true를 지정합니다.
HTTP 요청
GET /api/v2/admin/enrollments/{enrollmentRid}/authenticationProviders
작업 식별자는 v2.listAuthenticationProviders입니다. OAuth2로 호출하는 타사 애플리케이션에는 api:admin-read 권한 범위가 필요합니다. 각 요청에 Authorization: Bearer <접근 토큰>을 전달합니다.
경로 매개변수
| 이름 | 자료형 | 필수 여부 | 의미와 조건 | 예시 값 |
|---|---|---|---|---|
enrollmentRid | string | 필수 | ri.control-panel.main.customer.466f812b-f974-4478-9d4f-90402cd3def6 |
쿼리 매개변수
| 이름 | 자료형 | 필수 여부 | 의미와 조건 | 예시 값 |
|---|---|---|---|---|
preview | boolean | 선택 | 미리보기 기능 사용을 활성화합니다. | true |
요청 본문
요청 본문을 사용하지 않습니다.
응답
응답 형식은 ListAuthenticationProvidersResponse입니다. data의 각 항목은 AuthenticationProvider입니다. protocol.type은 saml 또는 oidc이며 SAML 분기는 serviceProviderMetadata를 포함합니다. 아래 가상 예시는 선택적인 인증서 목록을 비워 두었습니다. 실제 구성에 사용할 메타데이터와 인증서는 Foundry가 생성한 조회값을 사용합니다.
| 이름 | 자료형 | 필수 여부 | 의미와 조건 | 예시 값 |
|---|---|---|---|---|
data | list<AuthenticationProvider> | 선택 |
data의 구조
배열 항목은 AuthenticationProvider이며 자료형은 object입니다.
| 이름 | 자료형 | 필수 여부 | 의미와 조건 | 예시 값 |
|---|---|---|---|---|
rid | string | 필수 | ri.control-panel.main.saml.3faf689c-eaa1-4137-851f-81d58afe4c86 | |
name | string | 필수 | Example SAML Provider | |
realm | string | 필수 | 사용자나 그룹이 속한 인증 영역입니다. palantir-internal-realm은 관리자가 Foundry에서 생성하고 SSO 제공자와 연결하지 않은 사용자 및 그룹에 사용합니다. | 1bd3813a-ef8b-4211-bfbd-8b6485d0eb83 |
enabled | boolean | 필수 | 사용자가 이 제공자를 통해 로그인할 수 있는지 나타냅니다. | true |
supportedHosts | list<HostName> | 선택 | 이 제공자를 사용할 수 있는 호스트 목록입니다. | 응답 예시 참조 |
supportedUsernamePatterns | list<string> | 선택 | 이 패턴에 맞는 사용자 이름을 입력하면 해당 인증 제공자로 리디렉션됩니다. | 응답 예시 참조 |
protocol | union<saml, oidc> | 필수 |
supportedHosts의 구조
배열 항목은 HostName이며 자료형은 string입니다.
protocol의 구조
분기 saml
| 이름 | 자료형 | 필수 여부 | 의미와 조건 | 예시 값 |
|---|---|---|---|---|
type | enum | 필수 | 허용값: saml. | saml |
serviceProviderMetadata | object | 필수 | Foundry를 SAML 서비스 제공자로 설명하는 메타데이터입니다. 여기에 포함된 정보는 Foundry가 생성합니다. | 응답 예시 참조 |
serviceProviderMetadata의 구조
| 이름 | 자료형 | 필수 여부 | 의미와 조건 | 예시 값 |
|---|---|---|---|---|
entityId | string | 필수 | 이 서비스 제공자를 나타내는 고정 SAML 엔터티 ID입니다. | urn:uuid:3faf689c-eaa1-4137-851f-81d58afe4c86 |
metadataUrl | string | 필수 | 서비스 제공자 메타데이터를 XML로 다운로드할 수 있는 공개 URL입니다. | https://example.palantirfoundry.com/multipass/api/collectors/3faf689c-eaa1-4137-851f-81d58afe4c86/saml/metadata |
acsUrls | list<string> | 선택 | 외부 SAML 인증 제공자가 인증 응답을 리디렉션하는 Assertion Consumer Service(ACS) URL입니다. | 응답 예시 참조 |
logoutUrls | list<string> | 선택 | SAML 인증 제공자가 로그아웃 요청을 보내는 서비스 제공자 URL입니다. | 응답 예시 참조 |
certificates | list<CertificateInfo> | 선택 |
certificates의 구조
배열 항목은 CertificateInfo이며 자료형은 object입니다.
| 이름 | 자료형 | 필수 여부 | 의미와 조건 | 예시 값 |
|---|---|---|---|---|
pemCertificate | string | 필수 | PEM 형식의 인증서입니다. | |
commonName | string | 선택 | example.palantirfoundry.com | |
expiryDate | string (date-time) | 필수 | 2025-01-01T00:00:00Z | |
usageType | enum | 필수 | 허용값: ENCRYPTION, SIGNING, UNSPECIFIED. | SIGNING |
분기 oidc
| 이름 | 자료형 | 필수 여부 | 의미와 조건 | 예시 값 |
|---|---|---|---|---|
type | enum | 필수 | 허용값: oidc. | oidc |
가상 인증 제공자의 응답 예시입니다.
{
"data": [
{
"supportedHosts": [
"example.palantirfoundry.com"
],
"name": "Example SAML Provider",
"realm": "1bd3813a-ef8b-4211-bfbd-8b6485d0eb83",
"rid": "ri.control-panel.main.saml.3faf689c-eaa1-4137-851f-81d58afe4c86",
"enabled": true,
"supportedUsernamePatterns": [
".*@example.com",
".*@palantir.com"
],
"protocol": {
"type": "saml",
"serviceProviderMetadata": {
"metadataUrl": "https://example.palantirfoundry.com/multipass/api/collectors/3faf689c-eaa1-4137-851f-81d58afe4c86/saml/metadata",
"certificates": [],
"logoutUrls": [
"https://example.palantirfoundry.com/multipass/api/collectors/3faf689c-eaa1-4137-851f-81d58afe4c86/saml/SingleLogout"
],
"entityId": "urn:uuid:3faf689c-eaa1-4137-851f-81d58afe4c86",
"acsUrls": [
"https://example.palantirfoundry.com/multipass/api/collectors/3faf689c-eaa1-4137-851f-81d58afe4c86/saml/SSO"
]
}
}
}
]
}
개별 오류
| 오류 이름 | 오류 코드 | HTTP | 의미와 조건 | 추가 매개변수 |
|---|---|---|---|---|
EnrollmentNotFound | NOT_FOUND | 404 | 지정한 플랫폼 인스턴스를 찾을 수 없습니다. | enrollmentRid |
요청 예제
FOUNDRY_HOST에는 https://를 제외한 Foundry 호스트를, FOUNDRY_TOKEN에는 유효한 토큰을 환경 변수로 제공합니다. 예시 식별자와 매개변수 값은 실제 작업 대상에 맞게 바꿉니다.
cURL
curl \
-H "Authorization: Bearer ${FOUNDRY_TOKEN}" \
"https://${FOUNDRY_HOST}/api/v2/admin/enrollments/ri.control-panel.main.customer.466f812b-f974-4478-9d4f-90402cd3def6/authenticationProviders?preview=true"
Python
Requests 라이브러리가 설치된 Python 환경에서 사용합니다.
import os
import requests
HOSTNAME = os.environ["FOUNDRY_HOST"]
TOKEN = os.environ["FOUNDRY_TOKEN"]
headers = {
"authorization": "Bearer {}".format(TOKEN)
}
response = requests.get('https://{}/api/v2/admin/enrollments/ri.control-panel.main.customer.466f812b-f974-4478-9d4f-90402cd3def6/authenticationProviders?preview=true'.format(HOSTNAME), headers=headers)
print(response)
Java
Apache HttpClient 4.5 API와 try-with-resources를 사용합니다. 클래스 이름에 맞는 ListAuthenticationProvidersExample.java 파일에서 사용합니다.
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
public class ListAuthenticationProvidersExample {
public static void main(String[] args) throws Exception {
String HOSTNAME = System.getenv("FOUNDRY_HOST");
String TOKEN = System.getenv("FOUNDRY_TOKEN");
try (CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {
HttpGet request = new HttpGet("https://" + HOSTNAME + "/api/v2/admin/enrollments/ri.control-panel.main.customer.466f812b-f974-4478-9d4f-90402cd3def6/authenticationProviders?preview=true");
request.addHeader("authorization", String.format("Bearer %s", TOKEN));
try (CloseableHttpResponse response = httpClient.execute(request)) {
System.out.println(response);
}
}
}
}
JavaScript
fetch를 제공하는 Node.js 환경에서 사용합니다. 서비스 사용자 토큰을 브라우저로 전달하지 않습니다.
const HOSTNAME = process.env.FOUNDRY_HOST;
const TOKEN = process.env.FOUNDRY_TOKEN;
fetch(`https://${HOSTNAME}/api/v2/admin/enrollments/ri.control-panel.main.customer.466f812b-f974-4478-9d4f-90402cd3def6/authenticationProviders?preview=true`, {
method: 'GET',
headers: {
'Authorization': `Bearer ${TOKEN}`,
}
}).then((response) => {
console.log(response)
});
PowerShell
$TOKEN = $env:FOUNDRY_TOKEN
$HOSTNAME = $env:FOUNDRY_HOST
$headers = @{
"authorization" = "Bearer $TOKEN"
}
$response = Invoke-WebRequest -Uri "https://$HOSTNAME/api/v2/admin/enrollments/ri.control-panel.main.customer.466f812b-f974-4478-9d4f-90402cd3def6/authenticationProviders?preview=true" `
-Headers $headers
$response.content