Azure Container Apps에서 인증 및 권한 부여 구현
Azure Container Apps는 코드를 최소화하거나 사용하지 않고 외부 수신 지원 컨테이너 앱을 보호하기 위해 기본 제공 인증 및 권한 부여 기능을 제공합니다. Container Apps를 위한 기본 제공 인증 기능은 페더레이션 ID 공급자를 통해 기본 인증을 제공하여 시간과 노력을 절감할 수 있으므로 애플리케이션의 나머지 부분에 집중할 수 있습니다.
- Azure Container Apps는 다양한 기본 제공 인증 공급자에 대한 액세스를 제공합니다.
- 기본 제공 인증 기능에는 특정 언어, SDK, 보안 전문 지식 또는 코드 작성이 필요하지 않습니다.
이 기능은 HTTPS를 통해서만 사용해야 합니다. 컨테이너 앱의 수신 구성에서 allowInsecure
가 사용하지 않도록 설정되었는지 확인합니다. 사이트 콘텐츠 및 API에 대한 액세스를 제한하거나 제한하지 않고 인증을 위해 컨테이너 앱을 구성할 수 있습니다.
- 앱 액세스를 인증된 사용자로만 제한하려면 액세스 제한 설정을 인증 요구로 설정합니다.
- 액세스를 인증하되 제한하지 않으려면 액세스 제한 설정을 인증되지 않은 액세스 허용으로 설정합니다.
ID 공급자
Container Apps는 페더레이션 ID를 사용하며 여기서 타사 ID 공급자는 사용자 ID와 인증 흐름을 관리합니다. 기본적으로 다음 5가지 ID 공급자를 사용할 수 있습니다.
공급자 | 로그인 엔드포인트 | 방법 가이드 |
---|---|---|
Microsoft ID 플랫폼 | /.auth/login/aad |
Microsoft ID 플랫폼 |
/.auth/login/facebook |
||
GitHub | /.auth/login/github |
GitHub |
/.auth/login/google |
||
X | /.auth/login/twitter |
X |
임의 OpenID Connect 공급자 | /.auth/login/<providerName> |
OpenID Connect |
이러한 공급자중 하나를 사용하면 사용자 인증과 공급자의 인증 토큰 유효성 검사에 로그인 엔드포인트를 사용할 수 있습니다. 사용자에게 여러 공급자 옵션을 제공할 수 있습니다.
기능 아키텍처
인증 및 권한 부여 미들웨어 구성 요소는 애플리케이션의 각 복제본에서 사이드카 컨테이너로 실행되는 플랫폼의 기능입니다. 이 기능이 활성화되면 들어오는 모든 HTTP 요청이 애플리케이션에서 처리되기 전에 보안 계층을 통과합니다.
플랫폼 미들웨어는 다음과 같은 앱의 여러 작업을 처리합니다.
- 지정된 ID 공급자를 사용하여 사용자와 클라이언트를 인증합니다.
- 인증된 세션 관리
- HTTP 요청 헤더에 ID 정보 삽입
인증 및 권한 부여 모듈은 애플리케이션 코드와 분리된 별도의 컨테이너에서 실행됩니다. 처리 중에는 보안 컨테이너가 실행되지 않으므로 특정 언어 프레임워크와 직접 통합할 수 없습니다. 그러나 앱에 필요한 관련 정보는 요청 헤더에 제공됩니다.
인증 흐름
인증 흐름은 모든 공급자에 대해 동일하지만 공급자의 SDK로 로그인하는지 여부에 따라 다릅니다.
공급자 SDK 사용 안 함(서버 지향 흐름 또는 서버 흐름): 애플리케이션이 Container Apps에 페더레이션된 로그인을 위임합니다. 위임은 일반적으로 공급자의 로그인 페이지를 사용자에게 제공하는 브라우저 앱을 사용하는 경우입니다.
공급자 SDK 사용(클라이언트 지향 흐름 또는 클라이언트 흐름): 애플리케이션은 사용자를 수동으로 공급자에 로그인시킨 다음, 유효성 검사를 위해 인증 토큰을 Container Apps에 제출합니다. 이 접근 방식은 공급자의 로그인 페이지를 사용자에게 표시하지 않는 브라우저가 없는 앱에서 일반적입니다. 예를 들어 공급자의 SDK를 사용하여 사용자를 로그인시키는 네이티브 모바일 앱이 있습니다.