Windows의 자격 증명 공급자
자격 증명 공급자는 사용자 인증을 위한 기본 메커니즘입니다. 현재 사용자가 로그온 및 기타 시스템 인증 시나리오에 필요한 ID를 증명하는 유일한 방법입니다. Windows 10 및 Microsoft Passport 도입 이후 자격 증명 공급자는 그 어느 때보다 중요해졌습니다. 앱, 웹 사이트 등에 대한 인증에 사용됩니다.
Microsoft는 암호, PIN, 스마트카드 및 Windows Hello(지문, 얼굴 및 붓꽃 인식)와 같은 다양한 자격 증명 공급자를 Windows의 일부로 제공합니다. 이를 이 문서에서 "시스템 자격 증명 공급자"라고 합니다. OEM, 엔터프라이즈 및 기타 엔터티는 자체 자격 증명 공급자를 작성하고 Windows에 쉽게 통합할 수 있습니다. 이를 이 문서에서 "타사 자격 증명 공급자"라고 합니다. V1 및 V2 자격 증명 공급자는 모두 Windows에서 지원됩니다. 타사 자격 증명 공급자의 작성자 및 관리자는 이러한 권장 사항을 이해하는 것이 중요합니다.
시스템 자격 증명 공급자
타사 자격 증명 공급자 외에도 디바이스의 모든 사용자에 대해 항상 하나 이상의 시스템 자격 증명 공급자를 사용할 수 있는 것이 좋습니다. 또한 타사 자격 증명 공급자를 설정하는 동안 디바이스의 각 사용자에게 하나 이상의 시스템 자격 증명 공급자를 구성하라는 메시지가 표시됩니다(다른 복구 옵션을 사용할 수 없는 경우, 아래 시나리오 A 참조).
시나리오 A
로컬 계정 사용자가 타사 자격 증명 공급자를 설정하고 정기적으로 이를 사용하여 디바이스에 로그인합니다. 어느 날, 사용자는 타사 자격 증명 공급자를 중단하는 디바이스에 일부 업데이트를 설치하고, 사용자는 컴퓨터를 다시 시작하기 전에 이 변경 사항을 인식하지 못합니다.
다음 다시 시작에서 사용자는 로그온 화면에 있으며 예상된 타사 자격 증명 공급자를 사용할 수 없습니다. 사용자가 시스템 자격 증명 공급자를 설정한 경우 사용자는 시스템 자격 증명 공급자를 사용하여 컴퓨터에 로그인할 수 있습니다. 그렇지 않은 경우 사용자는 컴퓨터에서 계정을 복구할 방법이 없습니다.
시나리오 B
MSA(Microsoft 계정), AD(Active Directory) 또는 Microsoft Entra ID 계정 사용자는 타사 자격 증명 공급자를 설정하고 정기적으로 이를 사용하여 디바이스에 로그인합니다. 어느 날, 사용자는 타사 자격 증명 공급자를 중단하는 디바이스에 일부 업데이트를 설치하고, 사용자는 컴퓨터를 다시 시작하기 전에 이 변경 사항을 인식하지 못합니다.
다음 다시 시작에서 사용자는 로그온 화면에 있으며 예상된 타사 자격 증명 공급자를 사용할 수 없습니다. 사용자가 시스템 자격 증명 공급자를 구성한 경우 사용자는 이를 사용하여 컴퓨터에 로그인할 수 있습니다. 또는 시스템의 암호 자격 증명 공급자를 사용할 수 있는 경우 사용자는 원격으로 암호를 요청/재설정하고 이를 사용하여 컴퓨터에 로그인할 수 있습니다. 두 옵션을 모두 사용할 수 없는 경우 사용자는 컴퓨터에서 계정을 복구할 방법이 없습니다.
결론
요약하면 디바이스에서 모든 시스템 자격 증명 공급자를 사용하지 않도록 설정하는 것은 권장되지 않습니다. 타사 자격 증명 공급자는 특정 사용자 그룹에 대한 추가 인증 요구 사항을 충족할 수 있지만, 호환성이 손상되는 변경이 발생할 때 사용자가 항상 컴퓨터에 다시 액세스할 수 있도록 하는 것이 매우 중요합니다. 시스템 자격 증명 공급자는 이 보증을 제공합니다.
사용자 지정 자격 증명 공급자
Windows 자격 증명 공급자 프레임워크를 사용하면 개발자가 사용자 지정 자격 증명 공급자를 만들 수 있습니다. Winlogon이 자격 증명을 수집하려는 경우 로그온 UI는 각 자격 증명 공급자에게 열거하려는 자격 증명 수를 쿼리합니다. 모든 공급자가 타일을 열거하면 로그온 UI가 사용자에게 표시됩니다. 그런 다음 사용자는 타일과 상호 작용하여 필요한 자격 증명을 제공합니다. 로그온 UI는 인증을 위해 이러한 자격 증명을 제출합니다. 자격 증명 공급자는 자격 증명이 필요한 경우 자격 증명 UI에서 사용할 수도 있습니다. 자격 증명 공급자가 지원될 수 있는 시나리오 목록은 CREDENTIAL_PROVIDER_USAGE_SCENARIO 참조하세요.
이 시스템 덕분에 이전보다 자격 증명 공급자를 만드는 것이 훨씬 쉽습니다. 대부분의 작업은 Winlogon, 로그온 UI 및 자격 증명 UI의 조합으로 처리됩니다. 이렇게 하려면 ICredentialProvider 및 ICredentialProviderCredential의 고유한 구현을 만들어야 합니다. 권장되는 V2 자격 증명 공급자를 구현하는 경우 ICredentialProviderCredential2도 구현해야 합니다.
자격 증명 공급자는 적용 메커니즘이 아니라는 점에 유의해야 합니다. 자격 증명을 수집하고 직렬화하여 권한 부여를 위해 제출하는 데 사용됩니다. 로컬 기관 및 인증 패키지가 처리하고 필요한 보안 적용을 수행합니다.
자격 증명 공급자를 지원되는 하드웨어와 결합하여 Windows를 확장하여 바이오 메트릭 정보, 암호, PIN, 스마트 카드 인증서 또는 만들려는 사용자 지정 인증 패키지로 로그온을 지원할 수 있습니다. 다양한 방법으로 사용자의 로그온 환경을 사용자 지정할 수 있습니다. 예를 들어 로그온 UI가 자격 증명 공급자에게 자격 증명 타일을 쿼리하는 경우 기본 타일을 지정하여 사용자에게 사용자 지정된 환경을 제공할 수 있습니다. 자격 증명 공급자는 SSO(Single Sign-On)를 지원하도록 설계하여 사용자를 보안 액세스 지점 및 컴퓨터 로그온에 인증할 수도 있습니다.
자격 증명 공급자는 Windows 컴퓨터에 등록되며 다음을 담당합니다.
- 인증에 필요한 자격 증명 정보를 설명합니다.
- 외부 인증 기관과의 통신 및 논리 처리
- 대화형 및 네트워크 로그온을 위한 자격 증명 패키징
팁
여러 자격 증명 공급자를 단일 컴퓨터에 설치할 수 있습니다.
자격 증명 공급자 래핑
시스템 자격 증명 공급자 래핑을 수행하여 기본적으로 지원되지 않는 자격 증명 공급자에 기능을 추가할 수 있습니다. 문제가 발생할 수 있으므로 권장되지 않습니다. 래퍼와 충돌할 수 있는 자격 증명 공급자를 변경하여 사용자 환경이 저하되거나 사용자가 디바이스에 액세스하지 못하게 할 수도 있습니다. 이는 특히 Windows의 빈번한 업데이트 주기에 해당합니다.
기본적으로 포함되지 않은 자격 증명 공급자의 기능이 필요한 경우 권장 경로는 사용자 지정 자격 증명 공급자를 만드는 것입니다. 시스템 공급자에 대한 종속성이 없는 보다 안정적인 방법입니다.