개발자는 ASP.NET Core를 사용하여 보안을 구성 및 관리할 수 있습니다. 다음 목록에서는 ASP.NET Core 보안 작업에 대한 문서에 대한 링크를 제공합니다.
이러한 보안 기능을 사용하여 강력하고 안전한 ASP.NET Core 앱을 빌드할 수 있습니다.
Blazor 이 노드의 지침을 보완하거나 대체하는 보안 관련 내용은 ASP.NET Core Blazor 인증 및 권한 부여와 Blazor의 보안 및 Identity 노드에 있는 다른 문서를 참조하세요.
ASP.NET Core 보안 기능
ASP.NET Core 기본 제공 ID 공급자 및 Facebook, Twitter 및 LinkedIn 같은 비 Microsoft ID 서비스와 같은 ASP.NET Core 앱을 보호하기 위한 많은 도구와 라이브러리를 제공합니다. ASP.NET Core는 앱 비밀을 저장하는 몇 가지 접근 방식을 제공합니다.
인증 및 권한 부여
인증 은 사용자가 운영 체제, 데이터베이스, 앱 또는 리소스에 저장된 자격 증명과 비교되는 자격 증명을 제공하는 프로세스입니다. 두 자격 증명 집합이 일치하면 사용자가 성공적으로 인증됩니다. 그런 다음 권한이 부여된 작업을 수행할 수 있습니다. 권한 부여 프로세스는 사용자가 수행할 수 있는 작업을 결정합니다.
인증을 고려하는 또 다른 방법은 공간이 서버, 데이터베이스, 앱 또는 리소스인 공간을 입력 하는 방법으로 간주하는 것입니다. 권한 부여는 사용자가 해당 공간 내의 개체(서버, 데이터베이스 또는 앱)에 대해 수행할 수 있는 작업을 정의합니다.
소프트웨어의 일반적인 취약성
ASP.NET Core 및 Entity Framework에는 앱을 보호하고 보안 위반을 방지하는 데 도움이 되는 기능이 포함되어 있습니다. 다음 링크 목록을 선택하면 웹앱의 가장 일반적인 보안 취약점을 방지하는 기술을 구체적으로 설명하는 문서로 이동합니다.
그 외에도 알고 계셔야 하는 취약점이 더 있습니다. 자세한 내용은 목차의 보안 및 Identity 섹션에 있는 다른 문서를 참조하세요.
보안 인증 흐름
가장 안전한 인증 옵션을 사용하는 것이 좋습니다. Azure 서비스의 경우 가장 안전한 인증은 관리 ID입니다.
ROPG(리소스 소유자 암호 자격 증명) 부여를 사용하지 마세요.
- 클라이언트에 사용자의 암호를 노출합니다.
- 이는 심각한 보안 위험입니다.
- 다른 인증 흐름이 가능하지 않은 경우에만 사용합니다.
관리 ID는 코드, 환경 변수 또는 구성 파일에 자격 증명을 저장할 필요 없이 서비스를 인증하는 안전한 방법입니다. 관리 ID는 Azure 서비스에 사용할 수 있으며 Azure SQL, Azure Storage 및 기타 Azure 서비스에서 사용할 수 있습니다.
앱이 테스트 서버에 배포되면 환경 변수를 사용하여 연결 문자열 테스트 데이터베이스 서버로 설정할 수 있습니다. 자세한 내용은 구성을 참고하시기 바랍니다. 환경 변수는 일반적으로 암호화되지 않은 일반 텍스트로 저장됩니다. 컴퓨터 또는 프로세스가 손상된 경우 신뢰할 수 없는 당사자가 환경 변수에 액세스할 수 있습니다. 가장 안전한 접근 방식이 아니므로 프로덕션용 연결 문자열을 저장하는 데 환경 변수를 사용하지 않는 것이 좋습니다.
구성 데이터 지침:
- 구성 공급자 코드 또는 일반 텍스트 구성 파일에 암호 또는 기타 중요한 데이터를 절대 저장하지 마세요. 비밀 관리자 도구를 사용하여 개발에 사용되는 비밀을 저장할 수 있습니다.
- 개발 또는 테스트 환경에서 프로덕션 비밀을 사용하지 마세요.
- 의도치 않게 소스 코드 리포지토리에 커밋되는 일이 없도록 프로젝트 외부에서 비밀을 지정하세요.
자세한 내용은 다음을 참조하세요.
- 관리 ID 모범 사례 권장 사항
- 코드에서 자격 증명을 처리하지 않고 애플리케이션에서 리소스에 연결
- 관리 ID를 사용하여 다른 서비스에 액세스할 수 있는 Azure 서비스
- IETF OAuth 2.0 보안 모범 사례(섹션 2.4. 리소스 소유자 암호 자격 증명 부여)
다른 클라우드 공급자에 대한 자세한 내용은 다음을 참조하세요.
엔터프라이즈 웹앱 패턴
신뢰할 수 있고, 안전하고, 성능이 뛰어나고, 테스트 가능하고, 확장 가능한 ASP.NET Core 앱을 만드는 방법에 대한 지침은 Enterprise 웹앱 패턴참조하세요. 패턴을 구현하는 완전한 프로덕션 품질 샘플 웹앱을 사용할 수 있습니다.
관련 콘텐츠
ASP.NET Core