summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.OpenId/OpenId/Extensions/ProviderAuthenticationPolicy/NistAssuranceLevel.cs
blob: 95977affa32627f500cc993ff3eef2a3fc968a9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//-----------------------------------------------------------------------
// <copyright file="NistAssuranceLevel.cs" company="Outercurve Foundation">
//     Copyright (c) Outercurve Foundation. All rights reserved.
// </copyright>
//-----------------------------------------------------------------------

namespace DotNetOpenAuth.OpenId.Extensions.ProviderAuthenticationPolicy {
	using System;
	using System.Collections.Generic;
	using System.Diagnostics.CodeAnalysis;
	using System.Text;

	/// <summary>
	/// Descriptions for NIST-defined levels of assurance that a credential
	/// has not been compromised and therefore the extent to which an
	/// authentication assertion can be trusted.
	/// </summary>
	/// <remarks>
	/// <para>One using this enum should review the following publication for details
	/// before asserting or interpreting what these levels signify, notwithstanding
	/// the brief summaries attached to each level in DotNetOpenAuth documentation.
	/// http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf</para>
	/// <para>
	/// See PAPE spec Appendix A.1.2 (NIST Assurance Levels) for high-level example classifications of authentication methods within the defined levels.
	/// </para>
	/// </remarks>
	[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Nist", Justification = "By design")]
	public enum NistAssuranceLevel {
		/// <summary>
		/// Not an assurance level defined by NIST, but rather SHOULD be used to 
		/// signify that the OP recognizes the parameter and the End User 
		/// authentication did not meet the requirements of Level 1.
		/// </summary>
		InsufficientForLevel1 = 0,

		/// <summary>
		/// See this document for a thorough description:
		/// http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf
		/// </summary>
		Level1 = 1,

		/// <summary>
		/// See this document for a thorough description:
		/// http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf
		/// </summary>
		Level2 = 2,

		/// <summary>
		/// See this document for a thorough description:
		/// http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf
		/// </summary>
		Level3 = 3,

		/// <summary>
		/// See this document for a thorough description:
		/// http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf
		/// </summary>
		Level4 = 4,
	}
}