인증 및 권한 부여의 기본

인증 및 권한 부여는 대부분의 애플리케이션 제품군에서 중요한 기능을 합니다. 이 페이지는 개념과 용어에 대한 일반적인 개요를 설명합니다. 이 주제를 처음 접하거나 기억을 되새기고자 하는 경우 유용할 것입니다. 일반적인 내용을 잘 숙지하고 있다면 CXone에서 인증 및 권한 부여의 작동 방식 부분으로 넘어가셔도 좋습니다.

사용자가 CXone 등의 애플리케이션 제품군에 로그인할 때 일반적으로 다음 두 단계가 설명된 순서대로 발생합니다.

  • 인증—사용자가 자신이 주장하는 사용자가 맞습니까?
  • 권한 부여 - 인증된 사용자에게 요청한 액세스 권한을 부여해야 합니까?

모든 사용자는 반드시 인증 및 권한 부여를 받아야 CXone에 액세스할 수 있습니다.

사용자란 사람 또는 애플리케이션이 될 수 있습니다. 예를 들어, 사용자 계정을 통해 챗봇과 가상 도우미를 실행하기도 합니다. 대부분의 애플리케이션 제품군은 사람과 가상 사용자에 대해 동일한 프로세스를 사용합니다. 인증 및 권한 부여에 대한 이 온라인 도움말 페이지에서 사용자라는 용어는 사람과 애플리케이션에 모두 적용됩니다. 차이가 있는 경우 명확하게 설명되어 있습니다.

사용자 측에서 보면 로그인은 단순합니다. 인증 및 권한 부여는 보이지 않게 진행되어 로그인을 성공적으로 완료합니다. 로그인 시작 시점에 사용자는 인증되어 있지 않습니다. 즉, 시스템이 사용자의 ID를 모른다는 뜻입니다. 로그인이 끝나면 사용자는 인증 및 권한 부여를 받은 상태입니다. 즉, 시스템이 사용자가 누구인지 어떤 액세스 권한을 가져야 하는지 알고 있다는 뜻입니다.

시스템은 사용자를 인증하고 권한을 부여하기 위해 다음 작업을 수행합니다.

  1. 인증 프로세스가 두 가지 이상 지원되는 경우 사용할 프로세스를 결정합니다. 대부분의 시스템은 여러 가지 방식을 지원합니다. 예를 들어, 시스템은 단일 로그인(SSO, Single Sign-On) 또는 다단계 인증(MFA, Multi-Factor Authentication)을 통해 사용자 이름 및 암호로 사용자를 식별할 수 있습니다. 일반적으로 사용자는 로그인 페이지의 목록에서 인증 옵션을 선택하지만 필요한 경우 시스템에서 특정 프로세스를 요구할 수 있습니다.

  2. 인증 자격 증명을 수집합니다(예: 사용자에게 사용자 이름과 암호 요청).

  3. ID 공급자를 사용하여 자격 증명을 확인합니다. ID 공급자는 자격 증명을 포함하여 사용자와 그 ID에 대한 정보를 유지 관리하는 별도의 시스템입니다.

  4. 인증된 개인 또는 프로그램에 권한을 부여합니다. 사용자가 인증되면 시스템은 권한 부여 서버를 사용하여 사용자에게 액세스 권한을 부여합니다. 시스템은 역할과 권한에 따라 사용자에게 액세스 권한을 부여합니다. 시스템은 사용자가 볼 권한 또는 사용할 권한이 있는 기능에 대해서만 액세스 권한을 부여합니다.

인증 관련 용어

ID 공급자

ID 공급자(IdP)는 사용자의 ID를 설정하는 시스템입니다. 아래 시스템이 될 수 있습니다.

  • 내부—사용자가 로그인하는 시스템의 일부. 예를 들어, Facebook에 로그인하는 사용자는 Facebook IdP를 사용하여 Facebook 애플리케이션에 인증을 받습니다.
  • 외부—사용자가 로그인하는 시스템과는 별도의 시스템. 예를 들어 사용자가 Facebook IdP 인증을 사용하여 스마트폰 앱에 로그인합니다.

호스팅 IdP 또는 클라우드 기반 IdP일 수 있습니다. Microsoft ADFS 및 Shibboleth는 일반적인 호스팅 IdP입니다. Microsoft Azure AD, Okta 및 Ping은 클라우드 IdP입니다.

인증 프로토콜

인증 프로토콜은 애플리케이션과 IdP 간 또는 서로 다른 IdP 간의 통신을 설정합니다. 인증 프로토콜의 예로 OpenID ConnectSAML 2.0이(가) 있습니다. 일부 인증 프로토콜은 암호화와 같은 추가 기능을 제공하지만 애플리케이션이 이러한 기능을 사용할 수도 있고 사용하지 않을 수도 있습니다. 시스템이 기본 제공 IdP를 사용하는 경우 인증 프로토콜은 고려 사항이 아닙니다.

인증 절차

대부분의 외부 IdP는 인증 프로세스에 대해 다음 절차 중 하나 또는 둘 모두를 지원합니다.

  • SP 시작: 서비스 공급자 또는 애플리케이션에 의해 인증이 시작됩니다. 사용자가 자격 증명을 입력하면 애플리케이션이 외부 IdP에 연락하여 ID를 확인합니다. 이는 가장 일반적인 절차입니다.
  • IdP 시작: 사용자가 먼저 IdP에 로그인하면 IdP가 사용자를 확인한 후에 애플리케이션을 시작합니다.

연합 ID 관리(FIM)

페더레이션 ID 관리는 FIM 또는 페더레이션이라고도 합니다. 단일 외부 IdP를 사용하여 하나 이상의 애플리케이션에 대한 인증을 제공하는 프로세스를 일컫는 포괄적인 용어입니다. 일반적으로 페더레이션은 어떤 식으로든 시간이 제한되어 있습니다. 예를 들어, 사용자는 작업을 시작할 때 한 번 로그인할 수 있습니다. 그러면 그 날 사용하는 모든 애플리케이션에 대해 인증됩니다. 단, 전날 로그아웃하지 않았더라도 다음 날 다시 로그인해야 재인증을 받을 수 있습니다.

단일 로그인

단일 로그인(SSO)은 한 번의 로그인을 기반으로 여러 애플리케이션 또는 시스템에 대한 액세스를 제공하는 데 사용됩니다. 예를 들어 사용자가 Microsoft 365에 로그인하여 회사가 승인한 모든 Microsoft 애플리케이션에 대한 액세스 권한을 받습니다. SSO라는 용어가 페더레이션의 의미로 사용되기도 하지만, 두 개념이 정확히 같지는 않습니다.

다단계 인증

다단계 인증(MFA)은 기본 사용자 이름/암호 인증에 또 다른 보안 수준을 추가합니다. MFA는 IdP가 사용자의 ID를 확인하기 전에 코드를 입력하거나, 질문에 답하거나, 토큰을 사용하도록 요구합니다.

트러스트

인증에서 트러스트(Trust)란 애플리케이션이나 시스템 및 외부 IdP가 공유하는 정보 또는 지식을 의미합니다. 이 지식은 둘 사이의 관계를 설정하여 상대의 정확하고 신뢰성 있는 통신에 의존할 수 있음을 알려 줍니다. 트러스트를 구축하는 방식은 인증 프로토콜에 따라 다릅니다. 다음 예는 OpenID ConnectSAML 2.0에 근거하고 있습니다.

OpenID Connect

OpenID Connect의 트러스트는 발급자를 기반으로 합니다. 발급자는 URL과 형식이 유사한 값입니다. 이는 사용자의 ID 공급자를 설정합니다. 예를 들어, Google이 OpenID Connect을(를) 지원하면 발급자는 https://accounts.google.com입니다.

발급자에 따라 몇 가지 추가 구성 항목이 있습니다. 예를 들어, OpenID Connect에서는 공용/개인 인증서 서명을 통해 트러스트가 설정됩니다. 이는 JWKS라는 산업 표준을 사용합니다. 따라서 구성 중에 이러한 공용 인증서를 얻는 방법을 결정합니다.

대부분의 ID 공급자는 발급자에게 /.well-known/openid-configuration을 추가하여 이 정보를 검색할 수 있도록 지원합니다. Google 검색 문서는 https://accounts.google.com/.well-known/openid-configuration에 있습니다.

SAML 2.0

SAML 2.0에서, 트러스트는 엔터티 식별자를 기반으로 합니다. OpenID Connect와(과) 달리, 엔터티 식별자와 다른 구성 값 사이에는 강력한 관계가 없습니다. SAML 2.0와(과)의 트러스트를 설정하는 데 사용되는 몇 가지 구성 매개변수가 있습니다.

  • 엔티티 식별자—애플리케이션 또는 시스템이 ID를 확인하기 위해 설정한 값

  • 엔드포인트 URL— 외부 IdP가 인증 요청을 수신하는 위치로 지정한 값

  • 어설션 URL— 외부 IdP가 인증 응답을 보내도록 애플리케이션 또는 시스템이 지정한 값

  • 인증서— 외부 IdP가 응답에 서명하기 위해 사용하는 문서