TestTokenCreator 클래스

정의

Microsoft 따라 단위 테스트 구현에 사용할 테스트 토큰을 만드는 클래스입니다. IdentityModel 토큰 유효성 검사

public class TestTokenCreator
type TestTokenCreator = class
Public Class TestTokenCreator
상속
TestTokenCreator

예제

다음은 일반적인 테스트 프레임워크인 Xunit을 사용하여 이 클래스를 활용하는 방법에 대한 예제를 제공합니다. 그러나 핵심 개념은 프레임워크를 사용하는 단위 테스트에 적용할 수 있습니다.

이 예제에서는 Microsoft 호출하는 메서드인 ValidateToken을 노출하는 ClassWithMicrosoftIdentityModelDependency 클래스를 상상합니다. 테스트 중인 코드를 검색하는 IdentityModel 라이브러리 및 GetTokenValidationParameters TokenValidationParameters 는 실제로 사용합니다. 단위 테스트를 통해 유효성 검사에 간격이 있는지 실제로 확인할 수 있으므로 실제 TokenValidationParameters 유효성 검사를 사용하는 것이 중요합니다(예: 특정 중요한 유효성 검사가 사용하지 않도록 설정됨, ValidateAudienceValidateIssuer등).

다음 코드 예제에서 generateTokenToTest는 이 클래스의 메서드 중 하나여야 합니다.

internal void AssertValidationException(Func{string} generateTokenToTest, Type innerExceptionType, string innerExceptionMessagePart)
{
    try
    {
        ClassWithMicrosoftIdentityModelDependency.ValidateToken(
            generateTokenToTest,
            ClassWithMicrosoftIdentityModelDependency.GetTokenValidationParameters());

        if (innerExceptionType != null || innerExceptionType != null)
            throw new TestException(
                string.Format(
                    "Expected an exception of type '{0}' containing '{1}' in the message.",
                    innerExceptionType,
                    innerExceptionMessagePart));
    }
    catch (Exception e)
    {
        Assert.Equal(typeof(SampleTestTokenValidationException), e.GetType());
        Assert.Equal(innerExceptionType, e.InnerException.GetType());

        if (!string.IsNullOrEmpty(innerExceptionMessagePart))
        {
            Assert.Contains(innerExceptionMessagePart, e.InnerException.Message);
        }
    }
}

[Fact]
public void TokenWithoutSignature()
{
    var testTokenCreator = new TestTokenCreator();
    AssertValidationException(
        testTokenCreator.CreateTokenWithNoSignature,
        typeof(ArgumentException),
        "IDX14111");
}

설명

Microsoft. IdentityModel.SampleTests.SampleTokenValidationClassTests에는 이 클래스를 활용하여 Microsoft 종속된 간단한 토큰 유효성 검사 클래스의 유효성을 검사하는 방법에 대한 예제가 포함되어 있습니다. IdentityModel의 토큰 유효성 검사 메서드입니다.

생성자

Name Description
TestTokenCreator()

Microsoft 따라 단위 테스트 구현에 사용할 테스트 토큰을 만드는 클래스입니다. IdentityModel 토큰 유효성 검사

속성

Name Description
Audience

만든 토큰에 스탬프를 찍을 대상 그룹을 가져오거나 설정합니다.

Issuer

만든 토큰에 스탬프를 찍을 발급자를 가져오거나 설정합니다.

SigningCredentials

만든 토큰에 서명하는 데 사용되는 SigningCredentials를 가져오거나 설정합니다.

메서드

Name Description
CreateClaimsSetWithInstanceOverrides()

인스턴스 값을 기반으로 기본 클레임 집합을 만듭니다.

CreateDefaultValidToken()

클래스 IssuerAudienceSigningCredentials 값을 기반으로 유효한 기본 테스트 토큰을 만듭니다.

CreateExpiredToken()

만료가 지난 테스트 JWS 토큰을 만듭니다.

CreateJsonPayload(IDictionary<String,Object>)

전달된 클레임에 따라 JSON 페이로드를 IDictionary<TKey,TValue>만듭니다.

CreateNotYetValidToken()

아직 유효하지 않은 테스트 JWS 토큰을 만듭니다.

CreateToken(Dictionary<String,Object>)

전달된 토큰을 기반으로 토큰을 Dictionary<TKey,TValue>만듭니다.

CreateToken(SecurityTokenDescriptor)

전달된 토큰을 기반으로 토큰을 SecurityTokenDescriptor만듭니다.

CreateTokenDescriptorWithInstanceOverrides()

인스턴스 값을 기반으로 기본값 SecurityTokenDescriptor 을 만듭니다.

CreateTokenWithBadAudience()

구성된 인스턴스 값과 일치하지 않는 대상 그룹을 사용하여 테스트 JWS 토큰을 만듭니다.

CreateTokenWithBadIssuer()

구성된 인스턴스 값과 일치하지 않는 발급자를 사용하여 테스트 JWS 토큰을 만듭니다.

CreateTokenWithBadSignatureKey()

구성된 인스턴스 값과 일치하지 않는 키로 서명된 테스트 JWS 토큰을 만듭니다.

CreateTokenWithFutureIssuedAt()

나중에 발급되는 테스트 JWS 토큰을 만듭니다.

CreateTokenWithInvalidSignature()

페이로드와 일치하지 않는 서명이 있는 테스트 토큰을 만듭니다.

CreateTokenWithMissingAudience()

누락된 대상 그룹(aud) 클레임을 사용하여 테스트 JWS 토큰을 만듭니다.

CreateTokenWithMissingExpires()

만료 시간(exp) 클레임이 누락된 테스트 JWS 토큰을 만듭니다.

CreateTokenWithMissingIssuedAt()

iat(IssuedAt) 클레임이 누락된 테스트 JWS 토큰을 만듭니다.

CreateTokenWithMissingIssuer()

누락된 발급자(iss) 클레임을 사용하여 테스트 JWS 토큰을 만듭니다.

CreateTokenWithMissingKey()

서명 키 없이 테스트 JWS 토큰을 만듭니다(예: alg=none, 서명 없음).

CreateTokenWithMissingNotBefore()

nbf(NotBefore) 클레임이 누락된 테스트 JWS 토큰을 만듭니다.

CreateTokenWithNoSignature()

서명 없이 테스트 JWS 토큰을 만듭니다.

적용 대상