SAML(Security Assertion Markup Language) 프로토콜과 호환되는 인증 시스템에서 작동하도록 인증 업무 공간을 사용하여 SaltStack Config에서 SSO를 구성할 수 있습니다.
SAML SSO(Single Sign-On)는 많은 조직이 SaltStack Config를 구현하는 동안 다음을 목적으로 구성하는 기능입니다.
- 사용자가 동일한 ID로 서비스에 로그인하는 데 소요되는 시간을 줄입니다. 사용자가 기관의 서비스 중 하나에 로그인하면 SSO를 사용하는 다른 서비스에 자동으로 인증됩니다.
- 암호 피로를 줄입니다. 사용자가 여러 자격 증명이 아닌 하나의 자격 증명 집합만 기억하면 됩니다.
SAML SSO가 SaltStack Config에서 작동하는 방식
SaltStack Config가 지원되는 인증 통합에서 성공적인 ID 어설션을 수신하면, 어설션된 ID의 값과 일치하는 사용자 로그인을 검색합니다. 일치하는 로그인을 찾으면 연결된 사용자 계정에 로그인합니다.
예를 들어 SaltStack Config가 사용자에 대한 ADFS 어설션을 수신하고 구성된 ID 특성 값이 "fred"이면 SSE는 사용자 이름이"fred"인 로그인을 검색합니다. 해당 항목이 검색되면 연결된 사용자가 로그인됩니다. 그렇지 않으면 로그인이 실패합니다.
SAML 인증 용어
머리글자어 | 정의 |
---|---|
SAML | SAML(Security Assertion Markup Language), 발음: SAM-el SAML은 당사자 간에 인증 및 권한 부여 데이터를 교환하기 위한 개방형 프로토콜(표준이라고도 함)입니다. 특히 ID 제공자와 서비스 제공자 간에 데이터를 교환하는 데 사용됩니다. SAML은 브라우저 기반 SSO(Single Sign-On)입니다. 모든 통신은 사용자 에이전트(브라우저)를 통해 진행됩니다. 서비스 제공자(예: SaltStack Config)와 ID 제공자(예: Okta) 사이에는 통신이 없습니다. 이러한 분리를 통해 하나의(공용) 도메인에 서비스 제공자가 있고 별도의 보안 네트워크 세그먼트에 ID 제공자가 있는 보안 도메인에서 인증이 발생할 수 있습니다. |
IdP | ID 제공자 IdP의 작업은 자격 증명을 기반으로 사용자를 식별하는 것입니다. ID 제공자는 SAML 규격의 ID 제공자 부분을 준수하는 서비스를 제공하는 소프트웨어입니다. IdP는 일반적으로 로그인 화면 인터페이스를 제공하며 인증이 성공한 후에는 인증된 사용자에 대한 정보를 서비스 제공자에 제공합니다. SaltStack Config에 대해 지원되는 ID 제공자는 다음과 같습니다.
* 이 표 다음에 나오는 추가 세부 정보를 참조하십시오. |
SP | 서비스 제공자 또는 신뢰 당사자 SP(서비스 제공자)는 일반적으로 정보, 도구, 보고서 등을 최종 사용자에게 제공하는 웹 사이트입니다. 서비스 제공자는 SAML 규격의 서비스 제공자 부분을 준수하는 서비스를 SaltStack Config에 제공하는 소프트웨어입니다. Microsoft 제품(예: Azure AD 및 ADFS)에서는 SP를 신뢰 당사자라고 합니다. 이 시나리오에서 SaltStack Config가 서비스 제공자입니다. SaltStack Config는 IdP의 인증 어설션을 수락하고 사용자가 로그인하도록 허용합니다. IdP가 승인된 서비스 목록에 없으면 SP는 IdP를 통해 인증할 수 없습니다. 승인된 IdP 목록으로 SP를 구성하는 것은 구성 프로세스의 일부입니다. |
SSO | Single Sign-On Single Sign-On은 사용자가 두 번째 서비스에 로그인할 필요가 없는(인증된 사용자에 대한 정보가 해당 서비스로 전달되기 때문에) 인증 시스템입니다. |
SLO | 단일 로그아웃 사용자가 한 서비스에서 로그아웃하면 일부 IdP는 사용자가 인증한 다른 모든 서비스에서 사용자를 로그아웃할 수 있습니다. SaltStack Config는 현재 SLO를 지원하지 않습니다. |
RBAC | 역할 기반 액세스 제어 역할 기반 액세스 제어는 역할 기반 보안이라고도 하며, 조직 내에서 개인의 역할에 따라 네트워크 액세스를 제한하는 고급 액세스 제어 수단입니다. RBAC의 역할은 직원이 네트워크에 액세스할 수 있는 수준을 나타냅니다. 직원은 자신의 업무를 효과적으로 수행하는 데 필요한 네트워크 리소스에만 액세스하거나 작업을 수행할 수 있습니다. 예를 들어 하위 수준의 직원은 자신의 책임을 완수하는 데 필요한 경우가 아니라면 중요 데이터나 네트워크 리소스에 대한 액세스 권한이 일반적으로 없습니다. SaltStack Config는 역할 업무 공간을 사용하여 SAML 구성으로 RBAC를 지원할 수 있습니다. 단, 사용자를 로컬 사용자 데이터베이스에 추가하고 역할 업무 공간에서 관리하려면 먼저 해당 사용자가 SaltStack Config에 로그인해야 합니다. |
Okta 요구 사항
- 설정하는 동안 SSO(Single Sign-On) URL 필드에는 SAML ACS(Assertion Customer Service) URL이 필요합니다. 끝에 /autho/complete/saml이 있는 SSC의 URL입니다. 예: http://xxx.x.x.x:8080/auth/complete/saml.
- SAML 통합을 위해서는 UI가 SSC에서 제공되어야 합니다. UI가 CDN 또는 SSC 외의 다른 웹 사이트에서 제공되는 경우 통합이 실패합니다.
- 모든 SAML 응답에 서명해야 합니다. Okta에서는 고급 설정에서 이 설정을 사용하도록 설정할 수 있습니다.
- SSC에 구성된 모든 SAML 특성이 존재하고 SAML 응답에 전달되어야 합니다.
사전 요구 사항
SaltStack Config에서 SAML을 구성하기 전에:
- SAML IdP(ID 제공자)를 설치하고 실행 중인지 확인합니다.
- IdP에서 제공한 자격 증명 및 구성 데이터에 대한 액세스 권한이 있는지 확인합니다.
- IdP를 사용하여 SaltStack Config를 승인된 서비스 제공자로 추가하려면 인증서를 생성합니다. SaltStack Config 서비스 제공자는 RSA 키 쌍이 필요합니다. SaltStack Config에 대한 SAML을 구성할 때는 여러 위치에 개인 및 공용 키 값을 입력합니다.
참고: 이 키 쌍은 모든 시스템에서 생성할 수 있습니다. SSE 서버에서는 생성할 필요가 없습니다. 이러한 명령은 openssl 유틸리티가 설치된 모든 시스템에서 실행됩니다. 또는 Salt를 사용하여 자체 서명된 인증서를 생성할 수 있습니다. 자세한 내용은 TLS Salt 모듈을 사용한 자체 서명 인증서를 참조하십시오.인증서를 생성하려면 openssl genrsa -out cert.pem 2048을 사용하여 cert.perm이라는 개인 키를 생성합니다. 그런 다음, openssl req -new -x509 -key cert.pem -out cert.pub -days 1825 명령을 사용하고 프롬프트에 따라 개인 키와 연결된 공용 키를 생성합니다. 나머지 구성 프로세스를 진행할 때 쉽게 액세스할 수 있도록 공용 및 개인 키 쌍을 기록해둡니다.
SAML 구성 설정
- 사이드 메뉴에서 관리 > 인증을 클릭합니다.
- 생성을 클릭합니다.
- 구성 유형 메뉴에서 SAML을 선택합니다.
SAML 구성 유형에 대해 지원되는 설정이 업무 공간에 표시됩니다.
- 설정 탭에서 SaltStack Config 설치에 대한 정보로 다음 필드를 구성합니다.
- 이름
- 기본 URI
- 엔티티 ID
- 회사 이름
- 표시 이름
- 웹사이트
- 개인 키 필드에는 SaltStack Config에 대한 서비스 제공자 인증서를 만들 때 생성한 개인 키를 복사합니다.
- 공용 키 필드에는 SaltStack Config에 대한 서비스 제공자 인증서를 만들 때 생성한 공용 키를 복사합니다.
- 다음에 해당하는 연락처 정보를 필드에 입력합니다.
- 기술 담당자
- 지원 연락처
- 제공자 정보 섹션에서 IdP(ID 제공자)에 대한 메타데이터로 다음 필드를 구성합니다.
- 엔티티 ID
- 사용자 ID - SAML이 IDP로부터 수신하는 특성의 이름으로 SSC에서 사용되는 사용자 ID를 나타냅니다.
- 이메일 - SAML이 IDP로부터 수신하는 특성의 이름으로 사용자의 이메일 주소를 나타냅니다. SSC에는 사용자의 유효한 이메일 주소가 필요합니다.
- 사용자 이름 - SAML이 IDP로부터 수신하는 특성의 이름으로 사용자의 사용자 이름을 나타냅니다. 사용자 ID와 달라야 합니다. 그래야 이것이 나타내는 사용자를 쉽고 간편하게 인식할 수 있습니다.
- URL
- x509 인증서
참고: 이러한 정보는 IdP가 제공합니다. - (선택 사항) SaltStack Config가 사용자 프로파일에 대한 SAML Attribute 문을 확인할 수 있도록 하려면 Attribute 문 확인 확인란을 선택합니다. 이 옵션은 기본적으로 선택되어 있습니다.
- 저장을 클릭합니다.
후속 작업
- AssertionCustomerService URL(예:
https://<your-sse-hostname>/auth/complete/saml
) 및 SaltStack Config에 대해 생성한 공용(x509) 인증서와 키를 IdP에 제공합니다. - 사용자(특히 사용자 ID, 이메일 및 사용자 이름)에 대한 특성 매핑을 생성합니다. 이 세 가지 값 모두를 사용자의 이메일 주소에 단일 특성으로 매핑하는 조직이 많습니다. 해당 값은 일반적으로 조직 전체에서 고유하기 때문입니다. 이러한 특성을 매핑하는 프로세스는 각 SAML ID 제공자마다 다릅니다. 이러한 특성 매핑을 생성하는 데 도움이 필요하면 IdP의 설명서를 참조하거나 관리자에게 문의하십시오.
- 사용자를 SaltStack Config에 추가합니다. 기본적으로 새 사용자는 사용자가 SAML로 처음 로그인한 후에만 SaltStack Config에 등록됩니다. 또는 사용자를 수동으로 추가하여 SaltStack Config에서 해당 사용자를 미리 등록할 수 있습니다. 인증 업무 공간에서 사용자를 수동으로 추가하려면 인증 구성 목록에서 SAML 구성을 선택하고 구성 설정에서 사용자 탭을 클릭합니다. 생성을 클릭하고 사용자 자격 증명을 입력한 후 역할을 선택합니다.
참고: 이 사용자 이름은 정확해야 합니다. 사용자가 생성되면 사용자 이름을 변경하거나 이름을 바꿀 수 없습니다. 사용자를 수동으로 생성하면 처음으로 로그인하기 전에만 삭제할 수 있습니다. 사용자가 처음 로그인한 후에도 이 업무 공간에 삭제 버튼은 계속 표시되지만 더 이상 작동하지 않습니다.
- 일반 사용자로 로그인하여 로그인 프로세스가 예상대로 작동하는지, 역할 및 사용 권한이 올바른지 확인하여 SAML 구성을 검증합니다. Firefox 및 Chrome 웹 브라우저에서 사용할 수 있는 SAML 추적 도구를 사용하고
/var/log/raas/raas
로그 메시지를 확인하여 잠재적 오류를 해결합니다.참고: SAML 인증에 성공한 초기 프로비저닝 후에는 SaltStack Config 사용자 인터페이스를 통해 또는 API를 사용하여 사용자를 삭제할 수 없습니다.