[java-idp-oidc] branch main updated: JOIDC-13 - Support for OIDC Logout
Henri Mikkonen
henri.mikkonen at iki.fi
Fri Mar 22 13:09:28 UTC 2024
This is an automated email from the git hooks/post-receive script.
hjmikkon pushed a commit to branch main
in repository java-idp-oidc.
View the commit online:
http://git.shibboleth.net/view/?p=java-idp-oidc.git;a=commit;h=9cf74672b0111d9fed379b5b4bad750866af3b74
The following commit(s) were added to refs/heads/main by this push:
new 9cf74672 JOIDC-13 - Support for OIDC Logout
9cf74672 is described below
commit 9cf74672b0111d9fed379b5b4bad750866af3b74
Author: Henri Mikkonen <henri.mikkonen at iki.fi>
AuthorDate: Fri Mar 22 15:09:06 2024 +0200
JOIDC-13 - Support for OIDC Logout
https://shibboleth.atlassian.net/browse/JOIDC-13
Wired the properties to OIDC.Logout and OIDC.Logout.MDDriven.
---
.../idp/service/relying-party/postconfig.xml | 54 ++++++++++++++++++++--
.../idp/plugin/oidc/op/conf/oidc.properties | 20 ++++++++
2 files changed, 71 insertions(+), 3 deletions(-)
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/service/relying-party/postconfig.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/service/relying-party/postconfig.xml
index c5a1c038..eb6b777f 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/service/relying-party/postconfig.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/service/relying-party/postconfig.xml
@@ -76,8 +76,12 @@
class="net.shibboleth.oidc.profile.config.impl.DefaultOIDCLogoutConfiguration"
p:issuer-ref="shibboleth.oidc.issuer"
p:logoutHintMatchingStrategy-ref="%{idp.oidc.logout.logoutHintMatchingStrategy:DefaultLogoutHintMatchingPredicate}"
- p:securityConfiguration-ref="%{idp.security.oidc.logout.config:shibboleth.oidc.logout.DefaultSecurityConfiguration}" />
- <!-- TODO: default values via configuration properties once the set is final -->
+ p:securityConfiguration-ref="%{idp.security.oidc.logout.config:shibboleth.oidc.logout.DefaultSecurityConfiguration}"
+ p:preferFrontChannel="%{idp.oidc.logout.preferFrontChannel:true}"
+ p:frontChannelSuccess="%{idp.oidc.logout.frontChannelSuccess:false}"
+ p:revokeTokens="%{idp.oidc.logout.revokeTokens:true}"
+ p:requireIdTokenHint="%{idp.oidc.logout.requireIdTokenHint:true}"
+ p:encryptionOptional="%{idp.oidc.logout.encryptionOptional:true}"/>
<bean id="DefaultLogoutHintMatchingPredicate"
class="net.shibboleth.idp.plugin.oidc.op.profile.logic.DefaultLogoutHintMatchingPredicate"/>
@@ -572,7 +576,51 @@
<bean parent="shibboleth.MDDrivenStringProperty" p:propertyName="issuer"
p:defaultValue-ref="shibboleth.oidc.issuer"/>
</property>
- <!-- TODO: wire other properties with their default values via conf properties once the set is final -->
+ <property name="encryptionOptionalPredicate">
+ <bean class="net.shibboleth.shared.logic.PredicateSupport" factory-method="fromFunction">
+ <constructor-arg>
+ <bean parent="shibboleth.MDDrivenBoolProperty" p:propertyName="encryptionOptional" />
+ </constructor-arg>
+ <constructor-arg value="%{idp.oidc.logout.encryptionOptional:true}" />
+ </bean>
+ </property>
+ <property name="preferFrontChannelPredicate">
+ <bean class="net.shibboleth.shared.logic.PredicateSupport" factory-method="fromFunction">
+ <constructor-arg>
+ <bean parent="shibboleth.MDDrivenBoolProperty" p:propertyName="preferFrontChannel" />
+ </constructor-arg>
+ <constructor-arg value="%{idp.oidc.logout.preferFrontChannel:true}" />
+ </bean>
+ </property>
+ <property name="frontChannelSuccessPredicate">
+ <bean class="net.shibboleth.shared.logic.PredicateSupport" factory-method="fromFunction">
+ <constructor-arg>
+ <bean parent="shibboleth.MDDrivenBoolProperty" p:propertyName="frontChannelSuccess" />
+ </constructor-arg>
+ <constructor-arg value="%{idp.oidc.logout.frontChannelSuccess:false}" />
+ </bean>
+ </property>
+ <property name="revokeTokensPredicate">
+ <bean class="net.shibboleth.shared.logic.PredicateSupport" factory-method="fromFunction">
+ <constructor-arg>
+ <bean parent="shibboleth.MDDrivenBoolProperty" p:propertyName="revokeTokens" />
+ </constructor-arg>
+ <constructor-arg value="%{idp.oidc.logout.revokeTokens:true}" />
+ </bean>
+ </property>
+ <property name="requireIdTokenHintPredicate">
+ <bean class="net.shibboleth.shared.logic.PredicateSupport" factory-method="fromFunction">
+ <constructor-arg>
+ <bean parent="shibboleth.MDDrivenBoolProperty" p:propertyName="requireIdTokenHint" />
+ </constructor-arg>
+ <constructor-arg value="%{idp.oidc.logout.requireIdTokenHint:true}" />
+ </bean>
+ </property>
+ <property name="logoutHintMatchingStrategyLookupStrategy">
+ <bean parent="shibboleth.MDDrivenBeanProperty" p:propertyName="logoutHintMatchingStrategy"
+ p:propertyType="#{T(java.util.function.BiPredicate)}"
+ p:defaultValue-ref="%{idp.oidc.logout.logoutHintMatchingStrategy:DefaultLogoutHintMatchingPredicate}" />
+ </property>
</bean>
<!-- Default client-auth JWT validation wiring. -->
diff --git a/idp-oidc-extension-impl/src/main/resources/net/shibboleth/idp/plugin/oidc/op/conf/oidc.properties b/idp-oidc-extension-impl/src/main/resources/net/shibboleth/idp/plugin/oidc/op/conf/oidc.properties
index cb7e822e..4657b3ce 100644
--- a/idp-oidc-extension-impl/src/main/resources/net/shibboleth/idp/plugin/oidc/op/conf/oidc.properties
+++ b/idp-oidc-extension-impl/src/main/resources/net/shibboleth/idp/plugin/oidc/op/conf/oidc.properties
@@ -123,6 +123,26 @@ idp.oidc.subject.salt = this_too_should_be_ch4ng3d
# ObjectMapper bean used for pretty-printing JSON in rotocol messages. Defaults to shibboleth.oidc.JSONObjectMapper
#idp.oidc.logging.objectMapper = shibboleth.oidc.JSONObjectMapper
+# Settings related to OIDC logout functionality
+
+# Whether to automatically disable back-channel logout token encryption if the relying party does not possess a suitable key (defaults to true).
+#idp.oidc.logout.encryptionOptional = true
+
+# Whether to prefer front-channel logout propagation if both front and back -channel URIs are defined in the RP metadata (defaults to true).
+#idp.oidc.logout.preferFrontChannel = true
+
+# Whether to consider front-channel logout propagation success in the propagation UI (defaults to false).
+#idp.oidc.logout.frontChannelSuccess = false
+
+# Whether to revoke the access and refresh tokens related to the session (defaults to true). Note that the OAUTH2.Revocation profile must be enabled for the RP.
+#idp.oidc.logout.revokeTokens = true
+
+# Whether to require the use of id_token_hint parameter in the RP-initiated logout request.
+#idp.oidc.logout.requireIdTokenHint = true
+
+# Bean (BiPredicate<String,SPSession>) used for matching logout hint to the SP session
+#idp.oidc.logout.logoutHintMatchingStrategy =
+
# Settings for issue-registration-access-token flow
#idp.oidc.admin.registration.logging = IssueRegistrationAccessToken
#idp.oidc.admin.registration.nonBrowserSupported = true
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list