.NET Core/.NET Framework/Mono対応のSASLクライアントライブラリです。 .NET Standard 2.0/1.6に対応しています。

IMAP4クライアントライブラリSmdn.Net.Imap4.ClientおよびPOP3クライアントライブラリSmdn.Net.Pop3.ClientにてSASLによる認証処理で使用しています。

MIT X11ライセンスを採用しています。

実装済み機能一覧

サポートするSASLメカニズムの一覧です。

RFC/document mechanism name status note
[RFC 1731] IMAP4 Authentication Mechanisms KERBEROS_V4 not implemented
[RFC 2195] IMAP/POP AUTHorize Extension for Simple Challenge/Response CRAM-MD5 implemented
[RFC 2444] The One-Time-Password SASL Mechanism OTP not implemented
[RFC 2444] The One-Time-Password SASL Mechanism SKEY not implemented
[RFC 2595] Using TLS with IMAP, POP3 and ACAP PLAIN implemented
[RFC 2808] The SecurID(r) SASL Mechanism SECURID not implemented
[RFC 2831] Using Digest Authentication as a SASL Mechanism DIGEST-MD5 partially implemented realmには対応していません。 また、サーバ側の実装によっては正しく動作しない可能性があります。
[RFC 3163] ISO/IEC 9798-3 Authentication SASL Mechanism 9798-U-RSA-SHA1-ENC not implemented
[RFC 3163] ISO/IEC 9798-3 Authentication SASL Mechanism 9798-M-RSA-SHA1-ENC not implemented
[RFC 3163] ISO/IEC 9798-3 Authentication SASL Mechanism 9798-U-DSA-SHA1 not implemented
[RFC 3163] ISO/IEC 9798-3 Authentication SASL Mechanism 9798-M-DSA-SHA1 not implemented
[RFC 3163] ISO/IEC 9798-3 Authentication SASL Mechanism 9798-U-ECDSA-SHA1 not implemented
[RFC 3163] ISO/IEC 9798-3 Authentication SASL Mechanism 9798-M-ECDSA-SHA1 not implemented
[RFC 4422] Simple Authentication and Security Layer (SASL) EXTERNAL not implemented
[RFC 4505] Anonymous Simple Authentication and Security Layer (SASL) Mechanism ANONYMOUS implemented
[RFC 4752] The Kerberos V5 ("GSSAPI") Simple Authentication and Security Layer (SASL) Mechanism GSSAPI not implemented
[MS-NLMP] NT LAN Manager (NTLM) Authentication Protocol Specification NTLM deprecated
[draft-ietf-sasl-scram-11] draft-ietf-sasl-scram-11 SCRAM-* not implemented
[draft-ietf-sasl-scram-11] draft-ietf-sasl-scram-11 SCRAM-SHA-1 not implemented
[draft-ietf-sasl-scram-11] draft-ietf-sasl-scram-11 SCRAM-SHA-1-PLUS not implemented
The SASL XOAUTH2 Mechanism XOAUTH2 implemented
RFC mechanism name status note

使い方・認証処理の実装はSmdn.Net.Imap4.ClientおよびSmdn.Net.Pop3.Clientをご覧ください。 またデモ用アプリケーションMRAConnector, SimpleMailerもあわせてご覧ください。

ダウンロード

リリース ターゲットフレームワーク 備考
サイズ
241.0kB
sha1sum
c51baa3c8318d19de442ce098811b26d8cb5a1b9
(ソースコード)
.NET Framework 4.5/4/3.5 メンテナンス版
今後重要な更新を除いて機能追加等はしません。
Smdn.Security.Authentication.Sasl (NuGet) .NET Framework 4.7.1/4.5
.NET Standard 2.0/1.6
開発版
v1.01に.NET Standard対応を加えたものに相当します。
サイズ
294.3kB
sha1sum
9dd8ba3157676fdf59a46def8601b7dc4291e362
(ソースコード)
サイズ
304.3kB
sha1sum
8eb332890509aee52a991e7157db49a690871d83
(ソースコード)
開発版(アルファリリース)
機能的には概ね安定していますが、APIが未確定です。

本ライブラリのビルド済みパッケージは用意していません。 必要な場合はNuGetからパッケージを追加するか、あるいはSmdn.Net.Imap4.ClientまたはSmdn.Net.Pop3.Clientのビルド済みパッケージに含まれているものをご利用ください。

不具合・要望・質問等

不具合の報告、ライブラリに対する要望や提案、使い方の質問などは掲示板へどうぞ。

変更履歴

開発版

1.9x系のバージョンは現在開発中の状態です。 APIの破壊的変更を伴う機能追加・実装改善を予定しています。 大まかな予定と方針についてはIMAP4/POP3/MIME関連のロードマップをご覧ください。

2.0alpha1 (2019-01-30)

  • API変更
  • 修正・改善・動作変更
    • 例外SaslMechanismNotSupportedExceptionにプロパティMechanismNameを追加、例外の原因となったSASL mechanism nameを格納するようにした

1.91 (2018-12-15)

  • 重要な変更
    • NuGetパッケージ形式での配布を開始

1.90 (2018-12-04)

(以下はversion 1.00からの変更点となります)

  • 重要な変更
    • .NET Framework 3.5/4.0への対応を廃止
    • NTLM認証のサポートを廃止
    • .NET Standard 2.0/1.6に対応
    • .NET Framework 4.7.1に対応
    • 上位ライブラリ(Smdn.dll, Smdn.Core.Standards.dll)を統合、インターフェイス変更にあわせて実装を修正
      • 上記ライブラリの型を直接使用している場合は、名前空間あるいは型名の修正が必要になる場合あり (詳細)

メンテナンス版

1.0x系のバージョンは現在メンテナンス状態です。 今後は主に不具合修正・セキュリティ対応のみを行い、新規機能の追加は行いません。 開発版が安定次第、バージョンの更新を停止する予定です。

1.01 (2018-12-04)

  • 廃止予定・廃止
    • NTLM認証のサポートを廃止予定にした

ブランチ分岐

v1.00を起点として開発版の1.9x系メンテナンス版の1.0x系の2ブランチに分岐しました。

1.00 (2014-04-23)

  • 修正・改善
    • .NET Framework 2.0のサポートを廃止
    • NTML認証の実装を更新
    • 上位ライブラリを更新
    • その他機能上の変更はなし

0.33 (2013-07-15)

  • 機能追加
  • 修正・改善
    • SaslMechanismAttributeが継承されるように変更

0.32 (2010-01-08)

  • 修正・改善
    • 上位ライブラリのインターフェイス変更にあわせて実装を修正

0.31 (2010-12-11)

  • 修正・改善
    • ライブラリがスローするArgumentExceptionなどいくつかの例外メッセージをよりわかりやすい表記に統一
    • その他上位ライブラリのバグ等細かい修正

0.30 (2010-05-15)

  • 機能追加
    • メカニズム名を取得するSaslClientMechanism.Nameプロパティを追加
    • 平文による認証が行われるかどうかを表すSaslClientMechanism.IsPlainTextプロパティを追加
  • 修正・改善
    • 未完成の実装を無効化

0.29 (2010-04-25)

  • 機能追加
    • .NET Framework 2.0, 3.5, 4の各バージョン用のプロジェクトファイルを追加

0.28 (2010-04-18)

  • 機能追加
    • 現在の状態を取得するためのプロパティSaslClientMechanism.ExchangeStatusを追加
    • SaslClientMechanism.ExchangeStatusがSucceededもしくはFailedの時にExchange()を呼ぼうとした場合にInvalidOperationExceptionをスローするようにした
  • 修正・改善
    • 上位ライブラリのインターフェイス変更にあわせて実装および参照アセンブリを修正
    • 例外クラスのインターフェイスをカスタム例外のガイドラインに適合するように改善

0.27 (2010-04-04)

  • 機能追加
    • 例外クラスにSerializableAttributeを設定
  • 修正・改善
    • SaslExceptionの基底クラスをSystem.SystemExceptionに変更

0.26 (2010-03-22)

  • 修正・改善
    • StringComparison.Ordinal*の動作を期待していた箇所でInvariantCulture*を使用していたのを修正

0.25 (2010-02-15)

  • SaslClientMechanismを継承した任意のクラスを既知の認証メカニズムとして登録・使用できるようにした
  • NetworkCredentialの各プロパティがnullを返すことを期待していた実装を修正、nullではなくstring.Emptyの場合に認証をキャンセルするようにした

0.24 (2010-02-06)

  • Mono.Security.dllがない環境でも動作するように、Mono.Security.Protocol.Ntlmの実装をインポート
  • 認証時に参照するNetworkCredentialのUserNameおよびPasswordプロパティがnullだった場合の動作を整理 (例外はスローせず認証をキャンセル)

0.23 (2010-01-30)

  • initial client responseを取得するメソッドを追加 (RFC 4959, RFC 5034に対応するための拡張)

0.22 (2010-01-23)

0.21 (2009-12-16)

過去のリリース

制限事項・特記事項

  • 実装にあたり、セキュリティ上の考慮はしていますが、十分な検証は行っていないため保証はできません。

関連するページ

関連リンク