我正在将 Kentor AuthService 用于 SAML 2.0 SSO,并且能够对其进行设置并从 idp 响应中获取声明。
我的问题是:在我的声明中,我从 Idp 中设置的属性中获取用户的电子邮件,但是如何从我的回复中的电子邮件属性中的 External LoginInfo 填充电子邮件属性(见下图) ?
我的 SAML2 服务提供商元数据:
<?xml version="1.0" encoding="UTF-8"?>
<EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" ID="_f386c1a8-42a2-499e-9e8a-90ca3dd41110" entityID="https://localhost:44300/saml2/sp" cacheDuration="PT1H">
<SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://localhost:44300/saml2/sp/metadata/Acs" index="0" isDefault="true" />
<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" Location="https://localhost:44300/saml2/sp/metadata/Acs" index="1" isDefault="false" />
<AttributeConsumingService index="0" isDefault="false">
<ServiceName xml:lang="en">saml2p</ServiceName>
<RequestedAttribute Name="emailAddress" isRequired="true" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" />
</AttributeConsumingService>
</SPSSODescriptor>
<Organization>
<OrganizationName xml:lang="en-US">Foo</OrganizationName>
<OrganizationDisplayName xml:lang="en-US">Foo Inc.</OrganizationDisplayName>
</Organization>
<ContactPerson contactType="support">
<EmailAddress>support@foo.com</EmailAddress>
</ContactPerson>
</EntityDescriptor>