SCIM(System for Cross-domain Identity Management)은 ID 도메인 또는 IT 시스템 간의 사용자 ID 정보 교환을 자동화하기 위한 표준을 의미합니다. SCIM을 SAS Viya에 도입하여 LDAP 제공자로부터 ID 정보를 가져오는 대신 ID 정보를 Identities 마이크로서비스로 푸시할 수 있습니다. SCIM을 사용할 때 Identities 마이크로 서비스는 SCIM 서버가 되며 ID 제공자는 SCIM 클라이언트라고 이해하시면 됩니다. 이 포스팅에서는 SCIM을 사용하기 위한 조건과 SCIM 사용에 대한 몇 가지 고려 사항을 다루고자 합니다. 다른 포스팅에서 SAS Viya 환경과 dentity Provider의 구성을 자세히 살펴보겠습니다.
지원 범위
SAS Viya 3.5 및 SAS Viya 2020.1 상위 버전은 모두 SCIM을 지원하고 있습니다. SAS Viya는 SCIM ver.2만 지원합니다. SCIM 2.0은 SCIM 1.1 또는 더 이상 사용되지 않는 SCIM 1.0과 역호환되지 않습니다.
SAS Viya는 현재 Azure Active Directory 또는 OKTA를 SCIM 클라이언트로 지원합니다. Azure Active Directory는 클라우드 기반 Identity Provider입니다. OKTA는 클라우드 기반 Identity Provider이기도 합니다. OKTA는 온프레미스 프로비저닝 에이전트를 제공하나 SCIM 1.1만 지원하므로 SAS Viya에서는 지원하지 않습니다.
LDAP와 SCIM은 단일 SAS Viya 환경에서 동시에 사용될 수 없습니다. SCIM을 사용하려면 LDAP를 비활성화해야 합니다. LDAP가 비활성화된 경우 SAS Logon Manager는 더 이상 사용자 이름 및 암호 연결을 인증할 수 없습니다. 따라서 SCIM을 사용하는 경우 SAS Logon Manager에 대해 SAML 또는 OpenID Connect를 구성해야 합니다.
Kerberos 인증은 SCIM에서 의미가 없습니다. Kerberos 인증의 경우 KDC가 필요하며 대부분의 경우 KDC는 LDAP 서버와 함께 실행됩니다. Kerberos 사용자 계정 이름은 Identities 마이크로 서비스 내의 사용자 이름과 일치해야 합니다. 따라서 Kerberos 인증을 사용할 때 LDAP를 ID 공급자로 사용하는 것이 합리적입니다.
단일 SAS Viya 환경에서 여러 SCIM 클라이언트를 사용하는 것을 금지하지 않습니다. 주의해야 할 점은 한 SCIM 클라이언트가 다른 SCIM 클라이언트로 생성된 사용자 또는 그룹을 덮어쓰는 것을 방지하지도 않습니다. 따라서 다중 SCIM 클라이언트의 사용은 신중히 다뤄야하며 충돌을 방지하기 위해 대체 메커니즘을 사용해야 합니다.
SCIM 조건
무엇보다도 Identities 마이크로 서비스는 SCIM 서버입니다. 이는 Azure Active Directory 또는 OKTA과 같은 SCIM 클라이언트가 SCIM 서버에 연결할 수 있어야 함을 의미합니다. 자세한 조건은 다음과 같습니다.
1.SAS Viya 환경을 가리키는 공용 인터넷에서 확인이 가능한 외부 DNS 이름이 있어야 합니다. SCIM 클라이언트는 이 DNS 이름을 확인할 수 있어야 하며 SCIM 클라이언트는 자체 네트워크의 일부가 아니여야 합니다.
2.SCIM 클라이언트는 보안 연결을 통해서만 작동됩니다. 즉, Identities 마이크로 서비스에 대한 연결에 HTTPS를 사용해야 합니다. 외부 SCIM 클라이언트는 SCIM 서버에서 제공한 인증서를 신뢰할 수 있어야 합니다. 즉, 인증서는 산업용 인증 기관에 등록된 기업에서 구입해야 합니다. Azure Active Directory와 관련한 인증 기관은 여기를 클릭하셔서 확인하실 수 있습니다.
3.SCIM 클라이언트는 SAS Viya 환경에 대한 액세스를 허용하기 위해 방화벽이 있는 Identities 마이크로서비스에 연결할 수 있어야 합니다. Azure Active Directory와 OKTA는 모두 다양한 IP 주소에서 실행됩니다. Azure Active Directory IP addresses와 OKTA IP addresses을 확인하실수 있습니다.
다음으로 SCIM 클라이언트는 SCIM 서버에 인증해야 합니다. Identities 마이크로 서비스는 OAuth 2.0 Bearer 토큰 인증을 지원합니다. SCIM 클라이언트가 SAS Logon Manager에 등록되어 있어야 하며 클라이언트 자격 증명으로 생성된 유효기간이 긴 토큰이어야 합니다. SCIM 클라이언트 구성을 자주 업데이트하지 않으려면 토큰의 수명이 반드시 길어야 합니다.
SCIM 클라이언트는 Identities 마이크로 서비스의 SCIM 엔드포인트에 액세스할 수 있는 권한이 있어야 합니다. SCIM 클라이언트가 /identities/scim/v2/**에 액세스할 수 있도록 승인 규칙을 만들어야 합니다. 인증 및 권한 부여에 대한 자세한 내용은 차후에 다루도록 하겠습니다.
RFC 7643에서 정의한 표준 SCIM 코어 스키마에는 UID 및 GID 정보가 포함되어 있지 않습니다. 따라서 SAS Viya는 최종 사용자로서 프로세스를 실행할 수 있도록 일부 다른 프로세스를 활용해야 합니다. 이는 SAS Viya 2020.1(이상)과 SAS Viya 3.5 환경에서 상이하며 하단에서 확인하실 수 있습니다.
SAS Viya 2020.1 및 상위 버전에 대한 SCIM 고려 사항
SAS Viya 2020.1 및 상위 버전은 최종 사용자가 운영 체제를 자유자재로 다룰 것이라는 것을 전제로 하지 않습니다. 기본 구성에서 Identities 마이크로 서비스는 최종 사용자에 대한 UID/GID 정보를 생성하며 이러한 정보는 LDAP 제공자로부터 반환되지 않을 경우를 뜻합니다. 이 UID/GID 정보는 SAS Compute Server, SAS Connect Spawner 및 SAS Cloud Analytic Services 컨트롤러에서 최종 사용자 프로세스를 시작하는 데 사용됩니다.
Identities 마이크로 서비스는 사용자 및 그룹의 고유 식별자를 해싱하여 UID/GID 정보를 생성합니다. 이 SHA-256은 UID/GID를 생성하기 위해 수치에 매핑됩니다. 해시가 더 작은 숫자 공간에 매핑되기 때문에 낮은 확률로 충돌이 발생할 수도 있습니다. 문서를 통해 충돌이 발생한 경우 처리하는 방법을 확인하실 수 있습니다.
개별 최종 사용자의 경우 UID 및 GID는 Identities 마이크로서비스가 생성할 때 동일한 값이 됩니다. UID/GID 값은 DEV, TEST 및 PROD와 같은 여러 환경에서도 동일합니다. 또한 요청 시에만 생성되며 사전에는 알 수 없습니다. 이로 인해 공유 스토리지에 운영 체제 수준 권한을 제공하는 방식이 복잡해질 수 있습니다.
SCIM을 사용할 때 SAS Viya 2020.1 및 상위 버전에 대한 사용자 이름 및 암호 연결은 지원되지 않습니다. 이는 SAS Viya CLI와 SAS Cloud Analytic Services에 대한 직접 연결하는 방식에 모두에 영향을 미칩니다. SAS Viya 2020.1 및 상위 버전은 CLI는 인증 코드로 인증을 지원합니다. 최종 사용자가 브라우저에서 SAS Logon Manager로 인증하여 SAS Viya CLI에 대한 인증 코드를 얻을 수 있도록 합니다.
마찬가지로 SAS Cloud Analytic Services에 대한 직접 연결하는 방식은 SAS Logon Manager에서 얻은 ID 토큰을 사용한 인증을 지원합니다. 이 ID 토큰은 별도로 획득해야 합니다. 예를 들어 Jupyter Hub는 SAS Logon Manager와 통합이 가능하며 인증 시 얻은 ID 토큰은 이 문서에서 확인하실 수 있듯이 CAS에 대한 직접 연결에 활용됩니다.
마지막으로 CAS 및 SAS Compute Server의 공유 계정 또는 SAS Compute Server 서비스 계정은 SCIM용으로 구성된 SAS Viya 2020.1 및 상위 버전에서 작동하지 않습니다.
SAS Viya 3.5에 대한 SCIM 고려 사항
SAS Viya 3.5는 최종 사용자 친화적인 환경을 제공합니다. 예를 들어, 기본적으로 SAS Compute Server 세션을 시작할 때 내부 OAuth 토큰의 사용자 이름이 운영 체제에 알려져 있다고 가정합니다. SCIM 최종 사용자를 유효한 운영 체제 최종 사용자로 변환하고 매핑하면 SAS Viya 3.5에서 SCIM을 활용하는 것이 훨씬 더 복잡해집니다.
주로 SAS Visual Analytic 및 SAS Cloud Analytic Services만 활용하는 보고 환경의 경우 최종 사용자로 프로세스를 실행할 필요가 없기 때문에 그다지 문제가 되지 않습니다. 그러나 SAS Studio 5.2 Enterprise 또는 SAS Compute Server를 사용하는 다른 솔루션을 활용하는 환경은 다소 어려울 수 있습니다.
SAS Cloud Analytic Services 또는 SAS Viya CLI에 대한 동일한 직접 연결은 SAS Logon Manager에서 사용자 이름 및 암호가 유효하지 않기 때문에 문제가 됩니다. SAS Viya 2020.1 및 상위 버전과 마찬가지로 SAS Viya CLI와 CAS는 모두 SAS Logon Manager가 있는 브라우저에서 별도의 인증을 활용하여 인증 코드 또는 ID 토큰을 획득해야 합니다. 최신 버전의 SAS Viya CLI만 인증 코드를 사용한 인증을 지원하므로 업데이트가 필요할 수 있습니다.
결론
이번 포스팅에서는 SAS Viya로 SCIM을 구성하는 환경에 대한 내용을 살펴보았습니다. SCIM 사용에 대한 조건과 몇 가지 고려 사항에 도움이 되었기를 바랍니다. 다음 포스팅에서는 SAS Viya 구성을 자세히 살펴보겠습니다. 향후 게시될 포스팅에서는 Azure Active Directory 또는 OKTA와 같은 SCIM 클라이언트의 구성을 다룰 계획입니다.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.