Hi David,
I'm not sure if you still need it, but If you don't mind modifying your
simpleSAMLphp source code a bit, here is the 'solution' which works for me:
1. You'll have to edit file
/modules/saml/lib/Auth/Process/PersistentNameID.php
and replace the line:
return sha1($uidData);
with the following block of code:
if( $state['Destination']['entityid'] == '
http://www.webtma.net' ){
return $uid;
}
else{
return sha1($uidData);
}
2. Your sp-remote configuration should look like (you have to replace
'nameid_attribute' with name of the attribute whose value you want to
pass as NameID):
$metadata['
http://www.webtma.net'] = array (
'entityid' => '
http://www.webtma.net',
'contacts' => array (
),
'metadata-set' => 'saml20-sp-remote',
'AssertionConsumerService' => array (
0 => array (
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
'Location' => '
https://www.webtma.net/SAMLService.aspx?c=jefferson',
'index' => 1,
'isDefault' => true,
),
),
'SingleLogoutService' => array (
),
'authproc' => array(
20 => array(
'class' => 'saml:PersistentNameID',
'attribute' => 'nameid_attribute',
'NameQualifier' => TRUE,
),
),
'attributes.NameFormat' =>
'urn:oasis:names:tc:SAML:2.0:attrname-format:uri',
);
I'm aware this may be not the most elegant way of solving things, but
it's the only solution that I came up with and so far it works for me.
Best regards,
--
Dubravko Voncina
Information Systems and Applications Department
University of Zagreb, University Computing Centre,
www.srce.unizg.hr
dubravko...@srce.hr, tel:
+385 1 616 5852, fax:
+385 1 616 5559
On 06/07/2013 05:44 PM, David P wrote:
> Extra thanks for the follow-up. I didn't have to get involved before
> dealing with the NameID, so I'm hoping to avoid forever more after this
> situation.
>
> On Friday, June 7, 2013 11:29:21 AM UTC-4, Peter Schober wrote:
>
> * David P <
david.p...@gmail.com <javascript:>> [2013-06-07 17:10]:
> > Thank you for the clarification on the issue. So, in summation,
> it should
> > neither be plain text or trusted for any form of identity.
>
> Mostly yes to the latter (not usable as identifier other than
> temporily). Mostly no to the former (it /is/ plain text), but it's
> slightly complicated by your choice of words.
>
> On the wire the attribute (and it's qualifiers) is presented in an XML
> structure. For some that still passes as "plain text", though within
> SAML it's not a simple string (but structured).
> So depending on what you mean with plain text the answer will change.
> Best to avoid that term here.
>
> And while you can encrypt NameIDs within SAML...
> 1. that doesn't make too much sense with transient ones
> 2. that is not the case here
> 3. the encryption only covers the "transport", i.e., is undone by the
> SAML SP upon reception. So even there it would be considered "plain
> text" at the SP.
>
> With SAML2 most people and deployments simply ignore transient NameIDs
> and you probably should too.
> -peter
>