SAML Identity Provider 참조 문서
이 페이지는 Teleport에서 사용 가능한 SAML identity provider에 대한 세부 정보를 제공합니다. SAML identity provider는 Teleport 사용자가 SAML Single Sign-On을 지원하는 외부 애플리케이션(Teleport 내부 및 외부 모두)에 인증하고 권한을 부여할 수 있도록 합니다.
이 페이지는 Teleport에서 사용 가능한 SAML identity provider에 대한 세부 정보를 제공합니다.
SAML identity provider란 무엇인가?#
SAML identity provider는 Teleport 사용자가 SAML Single Sign-On을 지원하는 외부 애플리케이션(Teleport 내부 및 외부 모두)에 인증하고 권한을 부여할 수 있도록 합니다.
기본 정의#
다음 정의는 이 페이지 하단에 참조된 OASIS의 SAML 사양 문서에서 발췌하고 요약한 것입니다.
Assertions#
identity provider가 작성한 0개 이상의 statement가 포함된 정보 패키지입니다. Assertions는 일반적으로 주체에 대해 작성되며, Teleport의 경우 Teleport 사용자가 됩니다. 이는 사용자에 대한 사실 진술로 볼 수 있습니다. 예: "사용자 bob은 editor, access 역할에 속합니다."
Service Provider#
service provider는 주체에 대한 assertions를 활용하여 접근을 제어하고 맞춤 서비스를 제공할 수 있습니다. 이러한 assertions를 위해 identity provider에 의존합니다. Teleport의 경우, service provider는 일반적으로 SAML Single Sign-On을 허용하는 Slack, Vercel 등과 같은 애플리케이션입니다.
Identity Provider#
주체에 대한 assertions를 작성하는 서비스입니다.
Service/identity provider 주도 SSO#
로그인 프로세스는 service provider 또는 identity provider 중 하나에 의해 시작될 수 있습니다. 이 두 가지를 트리거하는 프로세스는 미묘하게 다릅니다. service provider는 service provider 주도 SSO의 SSO 프로세스를 시작할 책임이 있습니다. identity provider는 identity provider 주도 SSO의 프로세스를 시작할 책임이 있습니다.
엔드포인트#
메타데이터 URL#
https://<proxy-address>/enterprise/saml-idp/metadata
identity provider XML 메타데이터를 가져올 수 있는 URL입니다. Service provider는 service provider와 identity provider 간의 신뢰를 설정하기 위해 이 파일의 정보가 필요합니다.
Single Sign-On Service URL#
https://<proxy-address>/enterprise/saml-idp/sso
Service provider가 identity provider와 assertions를 교환하는 데 사용하는 URL입니다. 이 URL은 다음 바인딩을 지원합니다:
HTTP-RedirectHTTP-POST
Identity provider 주도 SSO URL#
https://<proxy-address>/enterprise/saml-idp/login/<sp-name>
이 URL은 identity provider 주도 SSO를 트리거합니다. sp-name은 특정 service provider에 대한 service provider 객체의 metadata.name과 일치합니다.
Teleport SAML service provider 객체#
아래는 service provider 객체입니다. Teleport가 외부 service provider를 신뢰하려면 이러한 객체를 Teleport에 추가해야 합니다.
kind: saml_idp_service_provider
metadata:
# The friendly name of the service provider. This is used to manage the
# service provider as well as in identity provider initiated SSO.
name: saml-service-provider
spec:
# The entity_descriptor is the service provider XML.
entity_descriptor: |
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"...
version: v1
Assertions#
현재 Teleport의 SAML identity provider가 제공하는 assertions는 다음과 같습니다.
| 친숙한 이름 | 전체 이름 | 설명 | 형식 |
|---|---|---|---|
uid |
urn:oid:0.9.2342.19200300.100.1.1 |
Teleport의 사용자 ID | urn:oasis:names:tc:SAML:2.0:attrname-format:uri |
eduPersonAffiliation |
urn:oid:1.3.6.1.4.1.5923.1.1.1.1 |
사용자의 Teleport 역할 | urn:oasis:names:tc:SAML:2.0:attrname-format:uri |
RBAC#
SAML IdP service provider에 대한 접근은 saml_idp_service_provider 리소스를 대상으로 하는 허용/거부 규칙과 역할 app_labels를 saml_idp_service_provider 리소스 레이블과 매칭하는 레이블 매처를 사용하여 Teleport 역할로 구성할 수 있습니다.
Teleport에서 SAML IdP Service provider 리소스에 대한 접근을 관리하는 방법을 알아보려면 이 RBAC 가이드를 참조하십시오.
문제 해결#
외부 애플리케이션 로그인 시 Bad Request#
Teleport 서버가 Bad Request를 반환하는 경우, service provider 메타데이터가 Teleport에 제대로 추가되지 않아 Teleport가 service provider를 찾을 수 없는 것일 수 있습니다. Teleport 로그에서 다음 로그 항목을 확인하십시오:
2023-03-01T10:32:34-05:00 INFO [SAMLIDP] failed to validate request: cannot find service provider https://samltest.id/saml/sp: could not find service provider https://samltest.id/saml/sp pid:31036.1 saml@v0.4.12/identity_provider.go:232
