Tôi hiện đang chạy Shib SP (v3) để bảo vệ trang web, hãy gọi nó là site1.example.com
. Giả sử example.com sử dụng IDP được gọi là ví dụ1_auth
và nó đang hoạt động như mong đợi. Tôi có các trang web khác trên cùng một máy chủ, chúng hoàn toàn tách biệt với ví dụ.com
chúng có tên miền phụ khác nhau, mục đích khác nhau chúng chỉ chia sẻ tài nguyên của máy chủ (Hãy gọi máy chủ máy chủ 1
)
Bây giờ tôi cần định cấu hình Shib SP để bảo vệ một trong những trang web khác này, hãy gọi trang web khác này site2.example.com
và nó sẽ sử dụng ví dụ2_auth
như IDP của nó
Câu hỏi của tôi là làm cách nào để bảo vệ trang web bổ sung, những thay đổi nào được yêu cầu đối với shibboleth2.xml
tập tin và thuộc tính-map.xml
Từ những gì tôi hiểu tôi cần phải làm ít nhất như sau
Thêm một trang web bổ sung vào <InProcess>
tiết diện
<InProcess>
<ISAPI normalizeRequest="true" safeHeaderNames="true">
<Site id="5" name="site1.example.com" scheme="https" port="443"/>
<Site id="15" name="site2.example.com" scheme="https" port="443"/> <!--New-->
</ISAPI>
</InProcess>
Thêm một máy chủ bổ sung vào <RequestMapper>
phần, vì vậy nó sẽ trông giống như thế này
<RequestMapper type="Native">
<RequestMap>
<Host name="site1.example.com" port="443" scheme="https">
<Path name="secure" authType="shibboleth" requireSession="true"/>
</Host>
<!--New-->
<Host name="site2.example.com" port="443" scheme="https">
<Path name="secure" authType="shibboleth" requireSession="true"/>
</Host>
</RequestMap>
</RequestMapper>
Giả sử những phần đó là chính xác. Những thay đổi nào được yêu cầu ở đây?
<ApplicationDefaults entityID="https://site1.example.com/Shibboleth"
REMOTE_USER="eppn subject-id pairwise-id persistent-id"
cipherSuites="DEFAULT:!EXP:!LOW:!aNULL:!eNULL:!DES:!IDEA:!SEED:!RC4:!3DES:!kRSA:!SSLv2:!SSLv3:!TLSv1:!TLSv1.1">
<Sessions lifetime="28800" timeout="3600" checkAddress="false" relayState="cookie" handlerSSL="false" cookieProps="; HttpOnly; path=/; secure" >
<SSO entityID="site1_auth">
SAML2 SAML1
</SSO>
<Logout>SAML2 Local</Logout>
<LogoutInitiator type="Admin" Location="/Logout/Admin" acl="127.0.0.1 ::1" />
<Handler type="MetadataGenerator" Location="/Metadata" signing="false"/>
</Sessions>
<MetadataProvider type="XML" validate="true" path="C:\opt\SSO_Metadata\site1.xml"/>
<MetadataProvider type="XML" validate="true" path="C:\opt\SSO_Metadata\site2.xml"/>
<!-- Map to extract attributes from SAML assertions. -->
<AttributeExtractor type="XML" validate="true" reloadChanges="false" path="attribute-map.xml"/>
<!-- Default filtering policy for recognized attributes, lets other data pass. -->
<AttributeFilter type="XML" validate="true" path="attribute-policy.xml"/>
<!-- Simple file-based resolvers for separate signing/encryption keys. -->
<CredentialResolver type="File" use="signing"
key="sp-signing-key.pem" certificate="sp-signing-cert.pem"/>
<CredentialResolver type="File" use="encryption"
key="sp-encrypt-key.pem" certificate="sp-encrypt-cert.pem"/>
Tôi nghĩ rằng tôi cần phải thêm một <ApplicationOverride>
trong phần này nhưng tôi không chắc điều đó đúng, nhưng tài liệu chỉ ra một cách tốt hơn nhưng không bao giờ thực sự giải thích đầy đủ điều đó có thể là gì, hoặc ít nhất là từ những gì tôi đã thấy. Tôi thấy tài liệu hợp lưu thiếu các ví dụ chính thức đầy đủ để bắt đầu.
Xin lỗi vì bài viết dài