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