我有點明白應該SAML如何基本驗證工作:SAML請求屬性在AuthnRequest
用戶請求資源的SP
SP將auth請求IDP
IDP認證用戶,併發送回一些用戶id
SP發送屬性查詢到IDP瞭解更多詳細信息用戶id
IDP發回屬性
SP給用戶資源
我的問題是,你能不能以任何方式繞過Attribut equery的。當我向我的測試Gluu/Shibboleth服務器發出SAML 2.0請求時,我返回givenName
(firstname)和sn
(lastname)。 無論如何,我可以請求inum
用戶ID和電子郵件只是在AuthnRequest?
我的要求很簡單:
<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="MyPrefix1457456412304" Version="2.0" IssueInstant="2016-03-08T17:00:12Z" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST">
<saml:Issuer>me.com</saml:Issuer>
</samlp:AuthnRequest>
請求我得到的回覆是這樣的:
<?xml version="1.0" encoding="UTF-8"?>
<saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" ID="_bff09cf745ea5722aac3f3ec57c0ecf3" IssueInstant="2016-03-08T17:01:06.140Z" Version="2.0">
<saml2:Issuer ....
<saml2:AttributeStatement>
<saml2:Attribute FriendlyName="sn" Name="urn:oid:2.5.4.4" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
<saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">User</saml2:AttributeValue>
</saml2:Attribute>
<saml2:Attribute FriendlyName="givenName" Name="urn:oid:2.5.4.42" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
<saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Admin</saml2:AttributeValue>
</saml2:Attribute>
</saml2:AttributeStatement>
</saml2:Assertion>
我讀了規範的相關部分,它似乎是說服務器可以放棄任何想要的東西(以及它想要的屬性數量)? 同樣,我的問題是我是否可以強制SAML Gluu/Shibboleth服務器將特定屬性作爲AuthnRequest的一部分給予我。
我討厭你..... – jn1kk
@Mike git good。 – jn1kk