Delen via


Beveiligingsdescriptors

Een beveiligingsdescriptorregeltekenreeks bevat een sequentiële lijst met een of meer protectors. Er moet ten minste één protector zijn. Als er meer dan één is, moeten de protectors in de tekenreeks worden gescheiden door EN of OF. Deze waarden moeten worden gekapitaliseerd. De volgende syntaxis toont de tekenreeksindeling van een beveiligingsdescriptor.

Descriptor = [ Protector-or
              *( OR-separator Protector-or ) ]

    Protector-or = Protector-and
              *( AND-separator Protector-and )

    OR-separator = "OR"
    AND-separator = "AND"

    Protector-and = providerName EQUALS providerAttributes

    providerName = descr

    providerAttribute = string | hexstring

      ; The following characters are to be escaped when they appear
      ; in the value to be encoded: ESC, one of <escaped>, leading
      ; SHARP or SPACE, trailing SPACE, and NULL.
      string =   [ ( leadchar / pair ) [ *( stringchar / pair )
         ( trailchar / pair ) ] ]

      leadchar = LUTF1 / UTFMB
      LUTF1 = %x01-1F / %x21 / %x24-2A / %x2D-3A / %x3D / %x3F-5B / %x5D-7F

      trailchar  = TUTF1 / UTFMB
      TUTF1 = %x01-1F / %x21 / %x23-2A / %x2D-3A / %x3D / %x3F-5B / %x5D-7F

      stringchar = SUTF1 / UTFMB
      SUTF1 = %x01-21 / %x23-2A / %x2D-3A / %x3D / %x3F-5B / %x5D-7F

      pair = ESC ( ESC / special / hexpair )
      special = escaped / SPACE / SHARP / EQUALS
      escaped = DQUOTE / PLUS / COMMA / SEMI / LANGLE / RANGLE
      hexstring = SHARP 1*hexpair
      hexpair = HEX HEX

      descr   = leadkeychar *keychar
      leadkeychar = ALPHA
      keychar = ALPHA / DIGIT / HYPHEN
      number  = DIGIT / ( LDIGIT 1*DIGIT )

      ALPHA   = %x41-5A / %x61-7A   ; "A"-"Z" / "a"-"z"
      DIGIT   = %x30 / LDIGIT       ; "0"-"9"
      LDIGIT  = %x31-39             ; "1"-"9"
      HEX     = DIGIT / %x41-46 / %x61-66 ; "0"-"9" / "A"-"F" / "a"-"f"

      NULL    = %x00 ; null (0)
      SPACE   = %x20 ; space (" ")
      DQUOTE  = %x22 ; quote (""")
      SHARP   = %x23 ; octothorpe (or sharp sign) ("#")
      DOLLAR  = %x24 ; dollar sign ("$")
      SQUOTE  = %x27 ; single quote ("'")
      LPAREN  = %x28 ; left paren ("(")
      RPAREN  = %x29 ; right paren (")")
      PLUS    = %x2B ; plus sign ("+")
      COMMA   = %x2C ; comma (",")
      HYPHEN  = %x2D ; hyphen ("-")
      DOT     = %x2E ; period (".")
      SEMI    = %x3B ; semicolon (";")
      LANGLE  = %x3C ; left angle bracket ("<")
      EQUALS  = %x3D ; equals sign ("=")
      RANGLE  = %x3E ; right angle bracket (">")
      ESC     = %x5C ; backslash ("\")
      USCORE  = %x5F ; underscore ("_")
      LCURLY  = %x7B ; left curly brace "{"
      RCURLY  = %x7D ; right curly brace "}"

      ; Any UTF-8 [RFC3629] encoded Unicode [Unicode] character
      UTF8    = UTF1 / UTFMB
      UTFMB   = UTF2 / UTF3 / UTF4
      UTF0    = %x80-BF
      UTF1    = %x00-7F
      UTF2    = %xC2-DF UTF0
      UTF3    = %xE0 %xA0-BF UTF0 / %xE1-EC 2(UTF0) /
                %xED %x80-9F UTF0 / %xEE-EF 2(UTF0)
      UTF4    = %xF0 %x90-BF 2(UTF0) / %xF1-F3 3(UTF0) /
                %xF4 %x80-8F 2(UTF0)

      OCTET   = %x00-FF ; Any octet (8-bit data unit)

Beveiligingsdescriptors kunnen momenteel worden gedefinieerd voor de volgende typen autorisatie:

  • Een groep in een Active Directory-forest.
  • Een set webreferenties.
  • Een certificaat in het certificaatarchief van de gebruiker.

Voorbeelden van beveiligingsdescriptorregelreeksen voor een Active Directory-groep zijn onder andere:

  • "SID=S-1-5-21-4392301 EN SID=S-1-5-21-3101812"
  • "SDDL=O:S-1-5-5-0-290724G:SYD:(A;; CCDC;;; S-1-5-5-0-290724)(A;; DC;;; WD)"
  • "LOCAL=user"
  • "LOCAL=machine"

Voorbeelden van beveiligingsdescriptorregeltekenreeksen voor een set webreferenties zijn onder andere:

  • "WEBCREDENTIALS=MyPasswordName"
  • "WEBCREDENTIALS=MyPasswordName,myweb.com"

Voorbeelden van tekenreeksen voor beveiligingsdescriptorregels voor een certificaat zijn onder andere:

  • "CERTIFICATE=HashID:sha1_hash_of_certificate"
  • "CERTIFICATE=CertBlob:base64String"

De beveiligingsdescriptor die u opgeeft, bepaalt automatisch welke sleutelbeveiligingsprovider wordt gebruikt. Zie Protection Providersvoor meer informatie.

Houd er rekening mee dat de linkerkant van het gelijkteken (=) moet zijn SID-, SDDL-, LOCAL, WEBCREDENTIALSof CERTIFICATE. Deze waarden zijn niet hoofdlettergevoelig.

U moet een regeltekenreeks (of een weergavenaam die is gekoppeld aan een regeltekenreeks) opgeven wanneer u de NCryptCreateProtectionDescriptor functie aanroept. U kunt ook een weergavenaam koppelen aan de regelreeks en beide registreren met behulp van de NCryptRegisterProtectionDescriptorName functie. Vervolgens kunt u de weergavenaam gebruiken in NCryptCreateProtectionDescriptor.

CNG DPAPI-

Protection Providers