1 //-----------------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation.  All rights reserved.
3 //-----------------------------------------------------------------------------
4 
5 namespace System.IdentityModel.Tokens
6 {
7     using System;
8 
9     public static class SamlConstants
10     {
11         static public int MajorVersionValue { get { return 1; } }
12         static public int MinorVersionValue { get { return 1; } }
13         static public string Namespace { get { return SamlStrings.Namespace; } }
14         static public string HolderOfKey { get { return SamlStrings.HolderOfKey; } }
15         static public string SenderVouches { get { return SamlStrings.SenderVouches; } }
16         static public string UserName { get { return SamlStrings.UserName; } }
17         static public string UserNameNamespace { get { return SamlStrings.UserNameNamespace; } }
18         static public string EmailName { get { return SamlStrings.EmailName; } }
19         static public string EmailNamespace { get { return SamlStrings.EmailNamespace; } }
20 
21         public const string Prefix = "saml";
22 
23         internal static string[] AcceptedDateTimeFormats = new string[] {
24                 "yyyy-MM-ddTHH:mm:ss.fffffffZ",
25                 "yyyy-MM-ddTHH:mm:ss.ffffffZ",
26                 "yyyy-MM-ddTHH:mm:ss.fffffZ",
27                 "yyyy-MM-ddTHH:mm:ss.ffffZ",
28                 "yyyy-MM-ddTHH:mm:ss.fffZ",
29                 "yyyy-MM-ddTHH:mm:ss.ffZ",
30                 "yyyy-MM-ddTHH:mm:ss.fZ",
31                 "yyyy-MM-ddTHH:mm:ssZ",
32                 "yyyy-MM-ddTHH:mm:ss.fffffffzzz",
33                 "yyyy-MM-ddTHH:mm:ss.ffffffzzz",
34                 "yyyy-MM-ddTHH:mm:ss.fffffzzz",
35                 "yyyy-MM-ddTHH:mm:ss.ffffzzz",
36                 "yyyy-MM-ddTHH:mm:ss.fffzzz",
37                 "yyyy-MM-ddTHH:mm:ss.ffzzz",
38                 "yyyy-MM-ddTHH:mm:ss.fzzz",
39                 "yyyy-MM-ddTHH:mm:sszzz" };
40         internal const string AssertionIdPrefix = "SamlSecurityToken-";
41         internal const string GeneratedDateTimeFormat = "yyyy-MM-ddTHH:mm:ss.fffZ";
42 
43 
44         /// <summary>
45         /// Known values for <see cref="System.IdentityModel.Tokens.SamlAuthenticationStatement"/>
46         /// </summary>
47         internal static class AuthenticationMethods
48         {
49             public const string HardwareTokenString = "URI:urn:oasis:names:tc:SAML:1.0:am:HardwareToken";
50             public const string KerberosString = "urn:ietf:rfc:1510";
51             public const string PasswordString = "urn:oasis:names:tc:SAML:1.0:am:password";
52             public const string PgpString = "urn:oasis:names:tc:SAML:1.0:am:PGP";
53             public const string SecureRemotePasswordString = "urn:ietf:rfc:2945";
54             public const string SignatureString = "urn:ietf:rfc:3075";
55             public const string SpkiString = "urn:oasis:names:tc:SAML:1.0:am:SPKI";
56             public const string TlsClientString = "urn:ietf:rfc:2246";
57             public const string UnspecifiedString = "urn:oasis:names:tc:SAML:1.0:am:unspecified";
58             public const string WindowsString = "urn:federation:authentication:windows";
59             public const string X509String = "urn:oasis:names:tc:SAML:1.0:am:X509-PKI";
60             public const string XkmsString = "urn:oasis:names:tc:SAML:1.0:am:XKMS";
61         }
62 
63         internal static class ElementNames
64         {
65             public const string Action = "Action";
66             public const string Advice = "Advice";
67             public const string Assertion = "Assertion";
68             public const string AssertionIdReference = "AssertionIDReference";
69             public const string Attribute = "Attribute";
70             public const string AttributeStatement = "AttributeStatement";
71             public const string AttributeValue = "AttributeValue";
72             public const string Audience = "Audience";
73             public const string AudienceRestrictionCondition = "AudienceRestrictionCondition";
74             public const string AuthenticationStatement = "AuthenticationStatement";
75             public const string AuthorityBinding = "AuthorityBinding";
76             public const string AuthorizationDecisionStatement = "AuthorizationDecisionStatement";
77             public const string Conditions = "Conditions";
78             public const string DoNotCacheCondition = "DoNotCacheCondition";
79             public const string Evidence = "Evidence";
80             public const string NameIdentifier = "NameIdentifier";
81             public const string SubjectConfirmation = "SubjectConfirmation";
82             public const string Subject = "Subject";
83             public const string SubjectConfirmationData = "SubjectConfirmationData";
84             public const string SubjectConfirmationMethod = "ConfirmationMethod";
85             public const string SubjectLocality = "SubjectLocality";
86         }
87 
88         internal static class AttributeNames
89         {
90             public const string AssertionId = "AssertionID";
91             public const string AttributeName = "AttributeName";
92             public const string AttributeNamespace = "AttributeNamespace";
93             public const string AuthenticationInstant = "AuthenticationInstant";
94             public const string AuthenticationMethod = "AuthenticationMethod";
95             public const string AuthorityBinding = "AuthorityBinding";
96             public const string AuthorityKind = "AuthorityKind";
97             public const string Binding = "Binding";
98             public const string Decision = "Decision";
99             public const string Issuer = "Issuer";
100             public const string IssueInstant = "IssueInstant";
101             public const string Location = "Location";
102             public const string MajorVersion = "MajorVersion";
103             public const string MinorVersion = "MinorVersion";
104             public const string OriginalIssuer = "OriginalIssuer";
105             public const string NamespaceAttributePrefix = "xmlns";
106             public const string NameIdentifierFormat = "Format";
107             public const string NameIdentifierNameQualifier = "NameQualifier";
108             public const string Namespace = "Namespace";
109             public const string NotBefore = "NotBefore";
110             public const string NotOnOrAfter = "NotOnOrAfter";
111             public const string Resource = "Resource";
112             public const string SubjectLocalityDNSAddress = "DNSAddress";
113             public const string SubjectLocalityIPAddress = "IPAddress";
114         }
115     }
116 }
117