@@ -175,3 +175,48 @@ func TestScopingIDProviderOmitted(t *testing.T) {
175
175
require .Nil (t , el )
176
176
}
177
177
}
178
+
179
+ func TestScopingNameIDPolicyIncluded (t * testing.T ) {
180
+ spURL := "https://sp.test"
181
+ sp := SAMLServiceProvider {
182
+ AssertionConsumerServiceURL : spURL ,
183
+ AudienceURI : spURL ,
184
+ IdentityProviderIssuer : spURL ,
185
+ IdentityProviderSSOURL : "https://idp.test/saml/sso" ,
186
+ SignAuthnRequests : false ,
187
+ NameIdFormat : NameIdFormatPersistent ,
188
+ }
189
+
190
+ request , err := sp .BuildAuthRequest ()
191
+ require .NoError (t , err )
192
+
193
+ doc := etree .NewDocument ()
194
+ err = doc .ReadFromString (request )
195
+ require .NoError (t , err )
196
+
197
+ idpEntry := doc .FindElement ("./AuthnRequest/NameIDPolicy" )
198
+
199
+ require .Equal (t , idpEntry .SelectAttrValue ("Format" , "" ), NameIdFormatPersistent )
200
+ }
201
+
202
+ func TestScopingNameIDPolicyOmitted (t * testing.T ) {
203
+ spURL := "https://sp.test"
204
+
205
+ sp := SAMLServiceProvider {
206
+ AssertionConsumerServiceURL : spURL ,
207
+ AudienceURI : spURL ,
208
+ IdentityProviderIssuer : spURL ,
209
+ IdentityProviderSSOURL : "https://idp.test/saml/sso" ,
210
+ SignAuthnRequests : false ,
211
+ }
212
+
213
+ request , err := sp .BuildAuthRequest ()
214
+ require .NoError (t , err )
215
+
216
+ doc := etree .NewDocument ()
217
+ err = doc .ReadFromString (request )
218
+ require .NoError (t , err )
219
+
220
+ el := doc .FindElement ("./AuthnRequest/NameIDPolicy" )
221
+ require .Nil (t , el )
222
+ }
0 commit comments