基本的なSAML認証がどのように機能するかを理解しています:
SP のユーザー要求リソース SP
が
認証要求を IDP
に送信 IDP がユーザーを認証し、いくつかの userId
を
返信
私の問題は、何らかの方法で AttributeQuery をバイパスできるかということです。テスト用の Gluu/Shibboleth サーバーに SAML 2.0 リクエストを送信すると、 (名givenName
) とsn
(姓) が返されます。AuthnRequest だけでユーザー ID と電子メールを要求できる方法はありますか?inum
私のリクエストはとてもシンプルです:
<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>
Request I get back は次のようなものです。
<?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 の一部として返すように強制できるかどうかです。