<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Ndaya,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal">&gt;Does Validated-SPN validated write allow an account to set an object's SPN to the following values:<br>
&gt;HOST/samAccountName (without the &quot;$&quot;)<br>
&gt;HOST/dnsDomainName<br>
&gt;if the object is a regular computer object and NOT a DC?<br>
<span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;&nbsp;
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#002060">ANS:&nbsp;&nbsp;&nbsp; Since they are &nbsp;two part SPNs, &nbsp;they should be allowed &nbsp;to be written to the &nbsp;ServicePrincipleName attribute based on Validated-SPN access right , as
 per MS-DRSR 5.5 (for DRS) and MS-ADTS 3.1.1.5.3.1.1.4 (for LDAP).&nbsp;&nbsp; If you look closely at the algorithm &nbsp;you referenced,&nbsp; it is the same as the AccessCheckWriteToSpnAttribute in DRSR.&nbsp;&nbsp; It means that the SPN is a correct two-part SPN&nbsp; , OR SPN is a correct
 three-part SPN and the object is a DC&#8217;s domain controller object. &nbsp;&nbsp;It basically allows the three part SPN only on Domain Controllers. &nbsp;&nbsp;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#002060"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt">&gt;In addition, I did the following test:<br>
&gt;Gave Validated-SPN right to a user on a regular computer object, and got CONSTRAINT_VIOLATION when setting its servicePrincipalName with the above described values.<br>
&gt;Gave Validated-SPN right to a user on a DC object, and these values were set successfully.<span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#002060"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#002060">ANS:&nbsp;&nbsp;&nbsp; I did the similar testing to set the servicePrincipleName to the two part SPN on a non-DC computer object and I don&#8217;t see any error. &nbsp;If I set a three
 part SPN on non-DC computer object , then I receive a CONSTRAINT_VIOLATION error.&nbsp;&nbsp; There is no error if I set either form of the SPN on a DC object.&nbsp;&nbsp; The result matches the logic in the documents.&nbsp;&nbsp; I used &nbsp;one account that doesn&#8217;t have &nbsp;RIGHT_DS_WRITE_PROPERTY
 right, but has only RIGHT_DS_WRITE_PROPERTY_EXTENDED right with Object type set to ServicePrincipleName.&nbsp;&nbsp;&nbsp; I got the same result when I use an admin account that has all the rights.&nbsp;&nbsp; Could you share more information about your testing ?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#002060"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal">&gt;Is the behavior of setting servicePrincipalName supposed to be different between LDAP and DRS?<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">ANS:&nbsp; &nbsp;Yes, it should the same , see the answer above.&nbsp;
</span><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#002060">The DRSR replication routine will use the same logic as LDAP modify operation&nbsp; to modify the object attribute, so the object access control logic is the same.&nbsp;&nbsp; The &nbsp;AccessCheckAttr
 (5.2 MS-DRSR) just refers to the related sections in MS-ADTS.<o:p></o:p></span></p>
<p class="MsoNormal"><br>
&gt;Does servicePrincipalName modification depend on things other then the syntax restrictions described in MS-DRSR and MS-ADTS?<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">ANS:&nbsp; &nbsp;&nbsp;Besides the constraint as a validate write (3.1.1.5.3.1.1.4 MS-ADTS),&nbsp; it should also meet the constraint for being a modify operation as in 3.1.1.5.3.2
 MS-ADTS.&nbsp; <o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
&gt;If an object does not have Validated-SPN on Principal-Self, should the account still be allowed to set the above values via DRS?<span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#002060"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">ANS:&nbsp; Any SID substitution for Principal Self should be performed before any access checking behavior (5.1.3.3.&nbsp; MS-ADTS),&nbsp; thus the real user SID will not
 have Validated-SPN right if the Principal Self doesn&#8217;t have it.&nbsp;&nbsp;&nbsp; It should not be allowed to set servicePrincipleName via either DRSR or LDAP since this is a mandatory requirement for the requester to have a Validated-SPN right.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Please let me know if this makes sense and if you have more questions.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Thanks!<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Hongwei<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> cifs-protocol-bounces@cifs.org [mailto:cifs-protocol-bounces@cifs.org]
<b>On Behalf Of </b>Nadezhda Ivanova<br>
<b>Sent:</b> Friday, December 17, 2010 5:08 AM<br>
<b>To:</b> Interoperability Documentation Help<br>
<b>Cc:</b> cifs-protocol@samba.org<br>
<b>Subject:</b> [cifs-protocol] Questions about Validated-SPN validated write<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt">Hello,<br>
Does Validated-SPN validated write allow an account to set an object's SPN to the following values:<br>
HOST/samAccountName (without the &quot;$&quot;)<br>
HOST/dnsDomainName<br>
if the object is a regular computer object and NOT a DC?<br>
<br>
The algorithm described in MS-DRSR 5.5 AccessCheckWriteToSpnAttribute seems to indicate that yes, this should be allowed. Ot the other hand, MS-ADTS 3.1.1.5.3.1.1.4 servicePrincipalName leads me to believe that the object being a DC is mandatory constraint:
 &quot;The SPN is a syntactically correct two-part SPN, or it is a syntactically correct three-part SPN (see<br>
Mutual Authentication (section 5.1.1.4)) and the object is a DC&#8217;s domain controller object (see<br>
sections7.1.1.3.1 and 7.1.1.3.2). &quot;<br>
<br>
In addition, I did the following test:<br>
Gave Validated-SPN right to a user on a regular computer object, and got CONSTRAINT_VIOLATION when setting its servicePrincipalName with the above described values.<br>
Gave Validated-SPN right to a user on a DC object, and these values were set successfully.<br>
<br>
So my questions are:<br>
Is the behaviour of setting servicePrincipalName supposed to be different between LDAP and DRS?<br>
Does servicePrincipalName modification depend on things other then the syntax restrictions described in MS-DRSR and MS-ADTS?<br>
If an object does not have Validated-SPN on Principal-Self, should the account still be allowed to set the above values via DRS?<br>
<br>
Best Regards,<br>
Nadezhda Ivanova<o:p></o:p></p>
</div>
</body>
</html>