2013-04-29 5 views
0

У нас есть правило выдать атрибут к одному из наших Опираясь третьих сторон, что соответствует следующим точно (очевидно, я сделал некоторые изменения):Issue неизменный атрибут в формуле изобретения

<Attribute Name="http://example.com/#Something" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"> 
    <AttributeValue xsi:type="xsd:string">http://example.com</AttributeValue> 
</Attribute> 

Я не» t видеть что-либо в Claim Rule language, что позволило бы мне сделать выше - получить деталь Attribute Name легко, а получить значение AttributeValue легко, но добавление NameFormat и получение типа AttributeValue похоже не идет.

Например, это:

=> issue(Type = "http://example.com/#Something", 
     Value = "http://example.com", 
     ValueType = "string"); 

Может заставить нас здесь:

<Attribute Name="http://example.com/#Something"> 
    <AttributeValue a:type="tn:string" xmlns:tn=" http://www.w3.org/2001/XMLSchema" xmlns:a="http://www.w3.org/2001/XMLSchema-instance">http://something.com</AttributeValue> 
</Attribute> 

Мы также пытались http://www.w3.org/2001/XMLSchema#string для ValueType с довольно сходными результатами. Я не вижу ничего, что может добавить NameFormat, и есть определенная информация, добавленная к AttributeValue, чем нам нужно.

Есть ли способ получить постоянное требование? В значениях нет ничего переменного; Я хотел бы просто убрать XML где-нибудь и интегрировать его в общее сообщение SAML.

ответ

1

Немного поздно, но надеюсь, что это поможет другим.

Помогает ли приведенный ниже пример?

c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"] 
=> issue( 
Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", 
Issuer = c.Issuer, 
OriginalIssuer = c.OriginalIssuer, 
Value = c.Value, 
ValueType = c.ValueType, 
Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename"] = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri"); 

Ключевая часть манипулирует свойства с NameFormat, идентифицированной URI http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename. http://blogs.msdn.com/b/card/archive/2010/06/21/a-quick-walkthrough-setting-up-ad-fs-saml-federation-with-a-shibboleth-sp.aspx имеет более подробную информацию о nameformat.

Вы можете пропустить проверить состояние и претензию только выпуск следующий

=> issue( 
    Type = "http://example.com/#Something", 
    Value = "http://example.com", 
    Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename"] = "urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"); 
+0

Прекрасно работает :-) Кроме того, если вам нужно отправить несколько констант, они отправляются в отдельных правилах претензии. –