ACS 성능 지침
적용 대상
Microsoft Azure Active Directory 액세스 제어(액세스 제어 서비스 또는 ACS라고도 함)
WIF(Windows Identity Foundation)
요약
이 항목에서는 ACS를 사용하는 애플리케이션 및 서비스를 개발할 때 고려해야 하는 주요 성능 지침을 간략하게 설명합니다. 특히 토큰 크기와 암호화와 관련된 지침에 대해 설명하고 이들이 전체 성능에 어떠한 영향을 미치는지에 대해서도 알려줍니다.
개요
일반적으로 성능의 주요 특성으로는 응답 시간, 처리량 및 리소스 사용률을 들 수 있습니다. 예를 들어 응용 프로그램에 메모리 등과 같은 제한된 리소스가 있는 경우 일부 정보는 메모리 내 작업보다 훨씬 느리게 파일 시스템에 표시되며, 이는 전체 응답 시간에 영향을 주게 됩니다. 또 다른 예로, 응용 프로그램이 제한된 대역폭을 가진 네트워크를 통해 대량의 데이터를 전송할 경우 응답 시간이 원하는 시간보다 느려지게 됩니다. 성능 문제를 해결하기 위한 첫 번째 방법은 네트워크 대역폭, 더 빠른 CPU, 추가 메모리 등과 같이 리소스를 추가하는 것입니다. 이 방법으로 항상 문제가 해결되는 것은 아닙니다. 또 다른 방법은 코드를 개선하여 리소스 사용량을 줄이고 데이터 교환량을 줄이는 것입니다. 클레임 인식 애플리케이션의 컨텍스트와 개발자가 제어하는 것을 고려하면 성능, 즉 토큰 및 토큰과 관련된 암호화 작업에 영향을 주는 ACS 사용과 관련된 몇 가지 주요 요소가 있습니다.
목표
ACS를 사용하는 애플리케이션의 성능에 영향을 주는 측면을 정의합니다.
각 측면에 대해 성능을 개선하는 방법과 관련한 지침을 제공합니다.
토큰 크기 및 암호화
토큰 크기 및 암호화는 ACS와 통합된 애플리케이션의 성능에 영향을 주는 개발자가 제어하는 주요 요소입니다.
토큰 크기. 토큰 크기는 두 가지 방식으로 성능에 영향을 줍니다. 첫 번째로 네트워크 대역폭과 관련된 성능에 어느 정도 직접적으로 영향을 줍니다. 토큰이 클수록 네트워크 대역폭 사용량이 많아지며 이로써 응답이 전체적으로 느려집니다. 두 번째로 토큰이 클수록 토큰에서 클레임을 추출하고 무결성을 확인하는 데 필요한 CPU 주기가 길어집니다. 토큰 처리에는 토큰 구문 분석, 코드에서 사용할 수 있도록 토큰을 이진 형식으로 역직렬화, 여러 암호화 작업(예: 서명 유효성 검사, 암호 해독(선택 사항)) 등이 포함됩니다. 토큰이 클수록 처리에 소요되는 CPU 주기가 길어지며 이로써 리소스 사용률이 높아지고 전체 응답이 느려집니다. 토큰 크기는 토큰 형식, 토큰에 적용된 암호화 및 토큰의 클레임과 같은 여러 요인에 따라 달라집니다. ACS에서는 SAML, SWT 및 JWT 토큰이 지원됩니다. 일반적으로 SWT 또는 JWTJWT 토큰은 동일한 양의 정보를 전달하는 SAML 토큰보다 작습니다. 자세한 내용은 ACS에서 지원되는 토큰 형식을 참조하세요. 서로 다른 프로토콜 및 응용 프로그램 아키텍처마다 그에 맞도록 토큰 형식이 최적화되어 있습니다.
SWT 토큰은 WS-Federation, WS-Trust 및 OAuth WRAP 또는 OAuth 2.0 프로토콜을 통해 발급됩니다. 즉 SWT 토큰은 웹 응용 프로그램, WCF(SOAP) 서비스 및 WCF(REST) 서비스에서 사용할 수 있습니다. WIF에서는 SWT 토큰 처리기가 지원되지 않습니다.
SAML 토큰은 WS-Trust 및 WS-Federation 프로토콜을 통해 발급됩니다. 즉 SAML 토큰은 웹 응용 프로그램, WCF(SOAP) 서비스에서 사용할 수 있습니다. WIF에서는 SAML 2.0 및 SAML 1.1 토큰이 모두 지원됩니다. 다음 항목 Windows Identity Foundation에서 WIF에 대해 자세히 알아보세요.
JWT 토큰은 WS-Federation, WS-Trust 및 OAuth 2.0 프로토콜을 통해 발급됩니다. 즉 SWT 토큰은 웹 응용 프로그램, WCF(SOAP) 서비스 및 WCF(REST) 서비스에서 사용할 수 있습니다.
토큰 크기에 많은 영향을 주는 요인 중 하나는 토큰에 포함된 클레임입니다. 클레임이 많을수록 토큰이 전달하는 크기가 커집니다. 대부분의 경우 토큰과 함께 제공되는 클레임은 개발자의 제어 하에 있습니다. 애플리케이션에서 사용하는 클레임은 AD FS 또는 ACS와 같은 STS(보안 토큰 서비스)에 의해 추가, 제거 또는 변경됩니다. ACS는 규칙 그룹 및 규칙을 사용하여 토큰에서 클레임을 추가, 제거 또는 변경합니다. 자세한 내용은 규칙 그룹 및 규칙을 참조하세요.
암호화. 암호화 및 기타 암호화 작업(예: 서명, 서명 유효성 검사, 암호 해독 등)은 성능에 직접적으로 영향을 미칩니다. 암호화 작업은 관련된 복잡한 알고리즘으로 인해 계산 성능을 소모합니다. ACS는 변조 공격에 대응하기 위해 무결성 척도로 발급된 모든 토큰에 서명합니다. 토큰의 서명에 대한 유효성 검사는 선택 사항이 아닙니다. 신뢰 당사자 응용 프로그램이 통신을 암호화하기 위해 SSL을 사용하지 않은 웹 서비스인 경우 토큰 암호화는 필수입니다. SOAP를 사용하는 WCF 기반 서비스의 경우 WS-Trust 프로토콜을 지원하는 암호화된 POP(Proof-Of-P) 토큰이 필요합니다. 암호화되지 않은 채널을 통해 전송되는 중요한 정보를 보호하려면 토큰 암호화가 필요합니다. 단, 통신 채널이 암호화된 경우(예: SSL 암호화 사용) 토큰 암호화는 선택 사항이며, 성능 개선을 위해 암호화를 적용하지 않을 수도 있습니다.