OAuth 및 OIDC 프로토콜과 호환되는 인증 시스템에서 작동하도록 인증 업무 공간을 사용하여 SaltStack Config에서 SSO를 구성할 수 있습니다.

OAuth SSO(Single Sign-On)는 많은 조직이 SaltStack Config를 구현하는 동안 다음을 목적으로 구성하는 기능입니다.

  • 사용자가 동일한 ID로 서비스에 로그인하는 데 소요되는 시간을 줄입니다. 사용자가 기관의 서비스 중 하나에 로그인하면 SSO를 사용하는 다른 서비스에 자동으로 인증됩니다.
  • 암호 피로를 줄입니다. 사용자가 여러 자격 증명이 아닌 하나의 자격 증명 집합만 기억하면 됩니다.

OKTA, Google, Microsoft, GitLab, Zendesk, Apple, Keycloak, Salesforce 등을 포함한 많은 서비스가 OIDC를 지원하는 OAuth 프로토콜 구현을 제공합니다.

참고: SaltStack Config는 현재 OKTA 및 Google을 통한 OAuth 및 OIDC 인증만 지원합니다.
참고: 필요한 경우 한 번에 둘 이상의 시스템을 사용하여 SaltStack Config에서 사용자를 인증할 수 있습니다. 예를 들어, SAML 기반 IdP 또는 LDAP 기반 IdP를 둘 다 사용하는 동시에 RaaS 서버에 기본적으로 일부 사용자 자격 증명을 저장할 수 있습니다. 단, SaltStack Config는 두 개를 초과하는 SAML 제공자 또는 두 개의 LDAP 제공자를 동시에 구성하도록 허용하지 않습니다.
표 1. OAuth 및 OIDC 인증 용어
용어 정의
OAuth

OAuth 2.0은 액세스 위임을 위한 개방형 프로토콜이며(표준이라고도 함), 이를 통해 보안 토큰으로 사용자의 ID가 인증되면 사용자가 웹 사이트에서 작업을 수행할 수 있습니다. 일반적으로 사용자가 애플리케이션에 자신의 액세스 자격 증명(암호)을 제공하지 않고 다른 타사 애플리케이션의 정보에 대한 액세스 권한을 부여하는 방법으로 사용됩니다.

OAuth는 브라우저 기반 SSO(Single Sign-On)입니다. OAuth를 사용하면 권한 부여 서버에서 리소스 소유자의 승인을 통해 타사 클라이언트에 액세스 토큰을 발급할 수 있습니다. 그러면 타사는 액세스 토큰을 사용하여 리소스 서버에서 호스팅되는 보호된 리소스에 액세스합니다.

OIDC(Open ID Connect)

OIDC(Open ID Connect)는 OAuth 2.0 프로토콜 위에 있는 간단한 ID 레이어입니다. OIDC를 통해 클라이언트는 인증 서버에서 수행한 인증을 기반으로 사용자의 ID를 확인할 수 있습니다. 또한 여러 애플리케이션에서 사용자에 대한 기본 프로파일 정보를 얻을 수도 있습니다.

리소스 소유자 리소스 소유자는 자신의 계정에 액세스할 수 있도록 애플리케이션에 권한을 부여하는 사용자입니다. 사용자 계정에 대한 애플리케이션의 액세스는 부여된 권한의 범위(예: 읽기 또는 쓰기 액세스 권한)로 제한됩니다.
클라이언트 클라이언트는 사용자 계정에 대한 액세스 권한이 필요한 타사 애플리케이션이며, 이 경우 SaltStack Config입니다.
권한 부여 서버 권한 부여 서버는 보호된 사용자 계정 및 자격 증명을 호스팅합니다. 사용자의 ID를 확인한 다음 클라이언트에 액세스 토큰을 발급합니다. 서비스의 API를 통해 자주 액세스됩니다.
리소스 서버

리소스 서버는 사용자 정보에 액세스하는 데 사용되는 API 서버입니다. 클라이언트가 액세스 토큰을 얻은 후 인증된 요청을 처리합니다. 소규모 배포에는 일반적으로 리소스 서버가 하나만 있으며 권한 부여 서버와 동일한 코드 기반 또는 동일한 배포의 일부로 구축되는 경우가 많습니다.

대규모 배포에는 리소스 서버가 둘 이상 있을 수 있습니다. 각 리소스 서버는 뚜렷하게 구분되지만 모두 동일한 권한 부여 서버를 공유합니다.

OIDC의 경우 로컬 사용자 데이터베이스에 사용자로 추가되려면 먼저 해당 사용자가 SaltStack Config에 로그인해야 합니다. 사용자가 처음 로그인하면 자격 증명이 RaaS 서버의 SaltStack Config에 로컬로 저장된 사용자를 관리하는 것과 같은 방식으로 사용자의 역할 및 사용 권한이 관리됩니다. 사용자가 처음 로그인한 후에 역할 업무 공간을 사용하여 해당 사용자에게 적절한 역할 및 사용 권한을 할당할 수 있습니다.

OAuth 및 OIDC가 SaltStack Config에서 작동하는 방식

OAuth ID를 사용하여 SaltStack Config에 로그인을 시도하면:

  1. SaltStack Config는 사용자에게 서비스 리소스에 대한 액세스 권한 부여를 요청합니다.
  2. 사용자가 요청에 권한을 부여하면 SaltStack Config에 권한이 부여됩니다.
  3. SaltStack Config는 자체 ID의 인증을 제공하여 권한 부여 서버(API)의 액세스 토큰을 요청합니다.
  4. 애플리케이션 ID가 인증되고 권한 부여가 유효한 경우 권한 부여 서버(API)는 SaltStack Config에 액세스 토큰을 발급합니다.
  5. SaltStack Config는 리소스 서버(API)의 리소스를 요청하고 인증을 위한 액세스 토큰을 제공합니다.
  6. 액세스 토큰이 유효하면 리소스 서버(API)가 애플리케이션에 리소스를 제공하고 사용자가 SaltStack Config에 로그인하도록 허용됩니다.

사전 요구 사항

SaltStack Config에서 OAuth 및 OIDC를 구성하려면 그 전에 조직의 OAuth 2.0 서비스(OKTA 또는 Google)에 필요한 액세스 권한이 있어야 하며 애플리케이션 등록 프로세스를 비교적 잘 알고 있어야 합니다.

OAuth 서비스 웹 사이트에서 SaltStack Config에 대한 기본 정보(예: 이름, 웹 사이트 등)를 입력합니다. 애플리케이션을 등록하면 클라이언트 비밀이 제공되며 이것을 SaltStack Config에 제공해야 합니다.

애플리케이션 생성 시 가장 중요한 것 중 하나는 애플리케이션에서 사용할 리디렉션 URL을 하나 이상 등록하는 것입니다. 리디렉션 URL은 애플리케이션에 권한을 부여한 후 OAuth 2.0 서비스가 사용자를 반환하는 위치입니다.

ID 제공자 구성

조직의 기본 OAuth 및 OIDC 서비스를 사용하여 SSO를 설정하려면:

  1. 사이드 메뉴에서 관리 > 인증을 클릭합니다.
  2. 생성을 클릭합니다.
  3. 구성 유형 메뉴에서 OIDC를 선택합니다.
  4. 이름 필드에서 이 구성에 알아보기 쉬운 이름을 지정합니다.
  5. OIDC 제공자 메뉴에서 OKTA 또는 Google을 선택합니다.
  6. 다음 필수 필드에 SaltStack Config 설치에 대한 정보를 작성합니다.
    필드 설명
    기본 URI 조직에서 SaltStack Config에 사용하는 기본 URL이며 호스트 서버 주소라고도 합니다. 이 URL은 FQDN 또는 IP 주소 형식(예: https://example.com)입니다.
    API URL ID 제공자가 제공한 API URL입니다. 이 필드는 ID 제공자가 OKTA인 경우에만 표시됩니다.
    Key ID 제공자가 제공한 키입니다. OKTA에서는 키를 클라이언트 ID라고 합니다.
    비밀 ID 제공자가 제공한 비밀입니다. OKTA에서는 키를 클라이언트 암호라고 합니다.
  7. 저장을 클릭합니다.

SaltStack Config에 대한 OIDC 구성이 이제 완료되었습니다.