Language

TestTokenCreator クラス

定義

Microsoftに応じて単体テストの実装で使用するテスト トークンを作成するクラス。IdentityModel トークンの検証。

public class TestTokenCreator
type TestTokenCreator = class
Public Class TestTokenCreator
継承
TestTokenCreator

例

次に、共通のテスト フレームワークである Xunit を使用してこのクラスを利用する方法の例を示します。 ただし、コア概念は、任意のフレームワークを使用した単体テストに適用されます。

この例では、Microsoftを呼び出すメソッド ValidateToken を公開するクラス ClassWithMicrosoftIdentityModelDependency を想定しています。IdentityModel ライブラリと GetTokenValidationParameters。テスト対象のコードが実際に使用するTokenValidationParametersを取得します。 検証にギャップがあるかどうかを単体テストで実際に確認できるため、実際の TokenValidationParameters を使用することが重要です (たとえば、特定の重要な検証が無効になっている、 ValidateAudience、 ValidateIssuerなど)。

次のコード例では、generateTokenToTest がこのクラスのメソッドの 1 つである必要があります。

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 のトークン検証メソッド。

コンストラクター

名前 説明
TestTokenCreator()

Microsoftに応じて単体テストの実装で使用するテスト トークンを作成するクラス。IdentityModel トークンの検証。

プロパティ

名前 説明
Audience

作成されたトークンにスタンプを付ける対象ユーザーを取得または設定します。

Issuer

作成されたトークンにスタンプを付ける発行者を取得または設定します。

SigningCredentials

作成されたトークンの署名に使用する SigningCredentials を取得または設定します。

メソッド

名前 説明
CreateClaimsSetWithInstanceOverrides()

インスタンス値に基づいて要求の既定のセットを作成します。

CreateDefaultValidToken()

クラスの Issuer、 Audience 、および SigningCredentials 値に基づいて、既定の有効なテスト トークンを作成します。

CreateExpiredToken()

有効期限を過ぎたテスト JWS トークンを作成します。

CreateJsonPayload(IDictionary<String,Object>)

渡された要求の IDictionary<TKey,TValue>に基づいて JSON ペイロードを作成します。

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()

IssuedAt (iat) 要求が見つからないテスト JWS トークンを作成します。

CreateTokenWithMissingIssuer()

発行者 (iss) 要求が見つからないテスト JWS トークンを作成します。

CreateTokenWithMissingKey()

署名キーなしでテスト JWS トークンを作成します (つまり、alg=none、署名なし)。

CreateTokenWithMissingNotBefore()

NotBefore (nbf) 要求がないテスト JWS トークンを作成します。

CreateTokenWithNoSignature()

署名なしでテスト JWS トークンを作成します。

適用対象