You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2024/11/14 14:11:32 UTC
(syncope) branch master updated (538aea95ae -> 194fb1ca13)
This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git
from 538aea95ae [SYNCOPE-1842] Adding credentialCriteria support to all relevant auth modules
new c00465084d [SYNCOPE-1843] Support Support Azure AD authentication and attribute resolution
new 194fb1ca13 According external links to updated dependency versions in the docs
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../lib/AbstractAzureActiveDirectoryConf.java | 119 +++++++++++++++++++++
.../syncope/common/lib/attr/AttrRepoConf.java | 2 +
....java => AzureActiveDirectoryAttrRepoConf.java} | 20 ++--
.../syncope/common/lib/auth/AuthModuleConf.java | 2 +
...ava => AzureActiveDirectoryAuthModuleConf.java} | 12 +--
src/main/asciidoc/getting-started/obtain.adoc | 2 +-
.../concepts/attributerepositories.adoc | 11 +-
.../concepts/authenticationmodules.adoc | 33 +++---
.../concepts/clientapplications.adoc | 6 +-
.../reference-guide/concepts/policies.adoc | 8 +-
.../configuration/highavailability.adoc | 4 +-
.../asciidoc/reference-guide/usage/actuator.adoc | 12 +--
.../reference-guide/usage/customization.adoc | 2 +-
.../mapping/AttrRepoPropertySourceMapper.java | 19 ++++
.../mapping/AuthModulePropertySourceMapper.java | 19 ++++
15 files changed, 215 insertions(+), 56 deletions(-)
create mode 100644 common/am/lib/src/main/java/org/apache/syncope/common/lib/AbstractAzureActiveDirectoryConf.java
copy common/am/lib/src/main/java/org/apache/syncope/common/lib/attr/{StubAttrRepoConf.java => AzureActiveDirectoryAttrRepoConf.java} (64%)
copy common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/{StaticAuthModuleConf.java => AzureActiveDirectoryAuthModuleConf.java} (86%)
(syncope) 01/02: [SYNCOPE-1843] Support Support Azure AD authentication and attribute resolution
Posted by il...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git
commit c00465084db463218b8da440d0709f1118ca73de
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Thu Nov 14 15:02:27 2024 +0100
[SYNCOPE-1843] Support Support Azure AD authentication and attribute resolution
---
.../lib/AbstractAzureActiveDirectoryConf.java | 119 +++++++++++++++++++++
.../syncope/common/lib/attr/AttrRepoConf.java | 2 +
....java => AzureActiveDirectoryAttrRepoConf.java} | 27 +++--
.../syncope/common/lib/auth/AuthModuleConf.java | 2 +
.../auth/AzureActiveDirectoryAuthModuleConf.java | 52 +++++++++
.../concepts/attributerepositories.adoc | 1 +
.../concepts/authenticationmodules.adoc | 3 +-
.../mapping/AttrRepoPropertySourceMapper.java | 19 ++++
.../mapping/AuthModulePropertySourceMapper.java | 19 ++++
9 files changed, 232 insertions(+), 12 deletions(-)
diff --git a/common/am/lib/src/main/java/org/apache/syncope/common/lib/AbstractAzureActiveDirectoryConf.java b/common/am/lib/src/main/java/org/apache/syncope/common/lib/AbstractAzureActiveDirectoryConf.java
new file mode 100644
index 0000000000..d0255ed536
--- /dev/null
+++ b/common/am/lib/src/main/java/org/apache/syncope/common/lib/AbstractAzureActiveDirectoryConf.java
@@ -0,0 +1,119 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.common.lib;
+
+import java.io.Serializable;
+
+public abstract class AbstractAzureActiveDirectoryConf implements Serializable {
+
+ private static final long serialVersionUID = 282571926999684266L;
+
+ private String clientId;
+
+ private String clientSecret;
+
+ /**
+ * This URL of the security token service that CAS goes to for acquiring tokens for resources and users.
+ * This URL allows CAS to establish what is called an 'authority'.
+ * You can think of the authority as the directory issuing the identities/tokens. The login URL here is then
+ * composed of {@code https://<instance>/<tenant>}, where 'instance' is the Azure AD host
+ * (such as {@code https://login.microsoftonline.com}) and 'tenant' is the domain name
+ * (such as {@code contoso.onmicrosoft.com}) or tenant ID of the directory.
+ * Examples of authority URL are:
+ *
+ * <ul>
+ * <li>{@code https://login.microsoftonline.com/f31e6716-26e8-4651-b323-2563936b4163}: for a single tenant
+ * application defined in the tenant</li>
+ * <li>{@code https://login.microsoftonline.com/contoso.onmicrosoft.com}: This representation is like the previous
+ * one, but uses the tenant domain name instead of the tenant Id.</li>
+ * <li>{@code https://login.microsoftonline.de/contoso.de}: also uses a domain name, but in this case the Azure AD
+ * tenant admins have set a custom domain for their tenant, and the
+ * instance URL here is for the German national cloud.</li>
+ * <li>{@code https://login.microsoftonline.com/common}: in the case of a multi-tenant application, that is an
+ * application available in several Azure AD tenants.</li>
+ * <li>It can finally be an Active Directory Federation Services (ADFS) URL, which is recognized
+ * with the convention that the URL should contain adfs like {@code https://contoso.com/adfs}.</li>
+ * </ul>
+ */
+ private String loginUrl = "https://login.microsoftonline.com/common/";
+
+ /**
+ * Resource url for the graph API to fetch attributes.
+ */
+ private String resource = "https://graph.microsoft.com/";
+
+ /**
+ * The microsoft tenant id.
+ */
+ private String tenant;
+
+ /**
+ * Scope used when fetching access tokens.
+ * Multiple scopes may be separated using a comma.
+ */
+ private String scope = "openid,email,profile,address";
+
+ public String getClientId() {
+ return clientId;
+ }
+
+ public void setClientId(final String clientId) {
+ this.clientId = clientId;
+ }
+
+ public String getClientSecret() {
+ return clientSecret;
+ }
+
+ public void setClientSecret(final String clientSecret) {
+ this.clientSecret = clientSecret;
+ }
+
+ public String getLoginUrl() {
+ return loginUrl;
+ }
+
+ public void setLoginUrl(final String loginUrl) {
+ this.loginUrl = loginUrl;
+ }
+
+ public String getResource() {
+ return resource;
+ }
+
+ public void setResource(final String resource) {
+ this.resource = resource;
+ }
+
+ public String getTenant() {
+ return tenant;
+ }
+
+ public void setTenant(final String tenant) {
+ this.tenant = tenant;
+ }
+
+ public String getScope() {
+ return scope;
+ }
+
+ public void setScope(final String scope) {
+ this.scope = scope;
+ }
+}
diff --git a/common/am/lib/src/main/java/org/apache/syncope/common/lib/attr/AttrRepoConf.java b/common/am/lib/src/main/java/org/apache/syncope/common/lib/attr/AttrRepoConf.java
index 18edec4b4e..682d875f94 100644
--- a/common/am/lib/src/main/java/org/apache/syncope/common/lib/attr/AttrRepoConf.java
+++ b/common/am/lib/src/main/java/org/apache/syncope/common/lib/attr/AttrRepoConf.java
@@ -35,6 +35,8 @@ public interface AttrRepoConf extends BaseBean {
Map<String, Object> map(AttrRepoTO attrRepo, JDBCAttrRepoConf conf);
Map<String, Object> map(AttrRepoTO attrRepo, SyncopeAttrRepoConf conf);
+
+ Map<String, Object> map(AttrRepoTO attrRepo, AzureActiveDirectoryAttrRepoConf conf);
}
Map<String, Object> map(AttrRepoTO attrRepo, Mapper mapper);
diff --git a/common/am/lib/src/main/java/org/apache/syncope/common/lib/attr/AttrRepoConf.java b/common/am/lib/src/main/java/org/apache/syncope/common/lib/attr/AzureActiveDirectoryAttrRepoConf.java
similarity index 55%
copy from common/am/lib/src/main/java/org/apache/syncope/common/lib/attr/AttrRepoConf.java
copy to common/am/lib/src/main/java/org/apache/syncope/common/lib/attr/AzureActiveDirectoryAttrRepoConf.java
index 18edec4b4e..11d657a280 100644
--- a/common/am/lib/src/main/java/org/apache/syncope/common/lib/attr/AttrRepoConf.java
+++ b/common/am/lib/src/main/java/org/apache/syncope/common/lib/attr/AzureActiveDirectoryAttrRepoConf.java
@@ -18,24 +18,29 @@
*/
package org.apache.syncope.common.lib.attr;
-import com.fasterxml.jackson.annotation.JsonTypeInfo;
import java.util.Map;
-import org.apache.syncope.common.lib.BaseBean;
+import org.apache.syncope.common.lib.AbstractAzureActiveDirectoryConf;
import org.apache.syncope.common.lib.to.AttrRepoTO;
-@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "_class")
-public interface AttrRepoConf extends BaseBean {
+public class AzureActiveDirectoryAttrRepoConf extends AbstractAzureActiveDirectoryConf implements AttrRepoConf {
- interface Mapper {
+ private static final long serialVersionUID = -2365294132437794196L;
- Map<String, Object> map(AttrRepoTO attrRepo, StubAttrRepoConf conf);
+ /**
+ * Whether attribute repository should consider the underlying attribute names in a case-insensitive manner.
+ */
+ private boolean caseInsensitive;
- Map<String, Object> map(AttrRepoTO attrRepo, LDAPAttrRepoConf conf);
-
- Map<String, Object> map(AttrRepoTO attrRepo, JDBCAttrRepoConf conf);
+ public boolean isCaseInsensitive() {
+ return caseInsensitive;
+ }
- Map<String, Object> map(AttrRepoTO attrRepo, SyncopeAttrRepoConf conf);
+ public void setCaseInsensitive(final boolean caseInsensitive) {
+ this.caseInsensitive = caseInsensitive;
}
- Map<String, Object> map(AttrRepoTO attrRepo, Mapper mapper);
+ @Override
+ public Map<String, Object> map(final AttrRepoTO attrRepo, final Mapper mapper) {
+ return mapper.map(attrRepo, this);
+ }
}
diff --git a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/AuthModuleConf.java b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/AuthModuleConf.java
index 1f20f073df..265b4b457b 100644
--- a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/AuthModuleConf.java
+++ b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/AuthModuleConf.java
@@ -52,6 +52,8 @@ public interface AuthModuleConf extends BaseBean {
Map<String, Object> map(AuthModuleTO authModule, SyncopeAuthModuleConf conf);
+ Map<String, Object> map(AuthModuleTO authModule, AzureActiveDirectoryAuthModuleConf conf);
+
Map<String, Object> map(AuthModuleTO authModule, X509AuthModuleConf conf);
Map<String, Object> map(AuthModuleTO authModule, GoogleMfaAuthModuleConf conf);
diff --git a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/AzureActiveDirectoryAuthModuleConf.java b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/AzureActiveDirectoryAuthModuleConf.java
new file mode 100644
index 0000000000..5c0933a746
--- /dev/null
+++ b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/AzureActiveDirectoryAuthModuleConf.java
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.common.lib.auth;
+
+import java.util.Map;
+import org.apache.syncope.common.lib.AbstractAzureActiveDirectoryConf;
+import org.apache.syncope.common.lib.to.AuthModuleTO;
+
+public class AzureActiveDirectoryAuthModuleConf extends AbstractAzureActiveDirectoryConf implements AuthModuleConf {
+
+ private static final long serialVersionUID = 6053163884651768614L;
+
+ /**
+ * A number of authentication handlers are allowed to determine whether they can operate on the provided credential
+ * and as such lend themselves to be tried and tested during the authentication handler selection phase.
+ * The credential criteria may be one of the following options:<ul>
+ * <li>A regular expression pattern that is tested against the credential identifier.</li>
+ * <li>A fully qualified class name of your own design that implements {@code Predicate}.</li>
+ * <li>Path to an external Groovy script that implements the same interface.</li>
+ * </ul>
+ */
+ private String credentialCriteria;
+
+ public String getCredentialCriteria() {
+ return credentialCriteria;
+ }
+
+ public void setCredentialCriteria(final String credentialCriteria) {
+ this.credentialCriteria = credentialCriteria;
+ }
+
+ @Override
+ public Map<String, Object> map(final AuthModuleTO authModule, final Mapper mapper) {
+ return mapper.map(authModule, this);
+ }
+}
diff --git a/src/main/asciidoc/reference-guide/concepts/attributerepositories.adoc b/src/main/asciidoc/reference-guide/concepts/attributerepositories.adoc
index c8299a7137..26da7b278f 100644
--- a/src/main/asciidoc/reference-guide/concepts/attributerepositories.adoc
+++ b/src/main/asciidoc/reference-guide/concepts/attributerepositories.adoc
@@ -27,6 +27,7 @@ Some attribute repositories are provided:
* https://apereo.github.io/cas/6.6.x/integration/Attribute-Resolution-LDAP.html[LDAP^]
* https://apereo.github.io/cas/6.6.x/integration/Attribute-Resolution-Stub.html[Stub^]
* https://apereo.github.io/cas/6.6.x/integration/Attribute-Resolution-Syncope.html[Syncope^]
+* https://apereo.github.io/cas/6.6.x/integration/Attribute-Resolution-AzureAD.html[Azure Active Directory^]
[TIP]
====
diff --git a/src/main/asciidoc/reference-guide/concepts/authenticationmodules.adoc b/src/main/asciidoc/reference-guide/concepts/authenticationmodules.adoc
index f99e87a2e6..e45ea041d2 100644
--- a/src/main/asciidoc/reference-guide/concepts/authenticationmodules.adoc
+++ b/src/main/asciidoc/reference-guide/concepts/authenticationmodules.adoc
@@ -29,12 +29,13 @@ Several authentication modules are provided:
** https://apereo.github.io/cas/6.6.x/authentication/LDAP-Authentication.html[LDAP^]
** https://apereo.github.io/cas/6.6.x/authentication/SPNEGO-Authentication.html[SPNEGO^]
** https://apereo.github.io/cas/6.6.x/authentication/Syncope-Authentication.html[Syncope^]
+ ** https://apereo.github.io/cas/6.6.x/authentication/Azure-ActiveDirectory-Authentication.html[Azure Active Directory^]
** https://apereo.github.io/cas/6.6.x/authentication/X509-Authentication.html[X509^]
** https://apereo.github.io/cas/6.6.x/integration/Delegate-Authentication-Generic-OpenID-Connect.html[OpenID Connect^]
** https://apereo.github.io/cas/6.6.x/integration/Delegate-Authentication-OAuth20.html[OAuth2^]
** https://apereo.github.io/cas/6.6.x/integration/Delegate-Authentication-SAML.htmll[SAML^]
** https://apereo.github.io/cas/6.6.x/integration/Delegate-Authentication-Apple.html[Apple Signin^]
- ** https://apereo.github.io/cas/6.6.x/integration/Delegate-Authentication-Azure-AD.html[Azure Active Directory^]
+ ** https://apereo.github.io/cas/6.6.x/integration/Delegate-Authentication-Azure-AD.html[Azure Active Directory (OIDC)^]
** https://apereo.github.io/cas/6.6.x/integration/Delegate-Authentication-Google-OpenID-Connect.html[Google OpenID^]
** https://apereo.github.io/cas/6.6.x/integration/Delegate-Authentication-Keycloak.html[Keycloak^]
* MFA:
diff --git a/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/mapping/AttrRepoPropertySourceMapper.java b/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/mapping/AttrRepoPropertySourceMapper.java
index b24ef8d064..a42880a42b 100644
--- a/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/mapping/AttrRepoPropertySourceMapper.java
+++ b/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/mapping/AttrRepoPropertySourceMapper.java
@@ -23,6 +23,7 @@ import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.lib.SyncopeClient;
import org.apache.syncope.common.lib.attr.AttrRepoConf;
+import org.apache.syncope.common.lib.attr.AzureActiveDirectoryAttrRepoConf;
import org.apache.syncope.common.lib.attr.JDBCAttrRepoConf;
import org.apache.syncope.common.lib.attr.LDAPAttrRepoConf;
import org.apache.syncope.common.lib.attr.StubAttrRepoConf;
@@ -32,6 +33,7 @@ import org.apache.syncope.common.lib.to.Item;
import org.apache.syncope.wa.bootstrap.WARestClient;
import org.apereo.cas.configuration.model.core.authentication.AttributeRepositoryStates;
import org.apereo.cas.configuration.model.core.authentication.StubPrincipalAttributesProperties;
+import org.apereo.cas.configuration.model.support.azuread.AzureActiveDirectoryAttributesProperties;
import org.apereo.cas.configuration.model.support.jdbc.JdbcPrincipalAttributesProperties;
import org.apereo.cas.configuration.model.support.ldap.LdapPrincipalAttributesProperties;
import org.apereo.cas.configuration.model.support.syncope.SyncopePrincipalAttributesProperties;
@@ -115,4 +117,21 @@ public class AttrRepoPropertySourceMapper extends PropertySourceMapper implement
return prefix("cas.authn.attribute-repository.syncope.", WAConfUtils.asMap(props));
}
+
+ @Override
+ public Map<String, Object> map(final AttrRepoTO attrRepoTO, final AzureActiveDirectoryAttrRepoConf conf) {
+ AzureActiveDirectoryAttributesProperties props = new AzureActiveDirectoryAttributesProperties();
+ props.setId(attrRepoTO.getKey());
+ props.setOrder(attrRepoTO.getOrder());
+ props.setClientId(conf.getClientId());
+ props.setClientSecret(conf.getClientSecret());
+ props.setLoginBaseUrl(conf.getLoginUrl());
+ props.setResource(conf.getResource());
+ props.setTenant(conf.getTenant());
+ props.setScope(conf.getScope());
+ props.setCaseInsensitive(conf.isCaseInsensitive());
+ props.setAttributes(attrRepoTO.getItems().stream().map(Item::getExtAttrName).collect(Collectors.joining(",")));
+
+ return prefix("cas.authn.attribute-repository.azure-active-directory[].", WAConfUtils.asMap(props));
+ }
}
diff --git a/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/mapping/AuthModulePropertySourceMapper.java b/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/mapping/AuthModulePropertySourceMapper.java
index a975bc4ad3..36a0f061b7 100644
--- a/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/mapping/AuthModulePropertySourceMapper.java
+++ b/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/mapping/AuthModulePropertySourceMapper.java
@@ -28,6 +28,7 @@ import org.apache.syncope.client.lib.SyncopeClient;
import org.apache.syncope.common.lib.auth.AbstractOIDCAuthModuleConf;
import org.apache.syncope.common.lib.auth.AppleOIDCAuthModuleConf;
import org.apache.syncope.common.lib.auth.AuthModuleConf;
+import org.apache.syncope.common.lib.auth.AzureActiveDirectoryAuthModuleConf;
import org.apache.syncope.common.lib.auth.AzureOIDCAuthModuleConf;
import org.apache.syncope.common.lib.auth.DuoMfaAuthModuleConf;
import org.apache.syncope.common.lib.auth.GoogleMfaAuthModuleConf;
@@ -49,6 +50,7 @@ import org.apache.syncope.common.lib.to.Item;
import org.apache.syncope.common.lib.types.AuthModuleState;
import org.apache.syncope.wa.bootstrap.WARestClient;
import org.apereo.cas.configuration.model.core.authentication.AuthenticationHandlerStates;
+import org.apereo.cas.configuration.model.support.azuread.AzureActiveDirectoryAuthenticationProperties;
import org.apereo.cas.configuration.model.support.generic.AcceptAuthenticationProperties;
import org.apereo.cas.configuration.model.support.jaas.JaasAuthenticationProperties;
import org.apereo.cas.configuration.model.support.jdbc.authn.QueryJdbcAuthenticationProperties;
@@ -394,6 +396,23 @@ public class AuthModulePropertySourceMapper extends PropertySourceMapper impleme
return prefix("cas.authn.syncope.", WAConfUtils.asMap(props));
}
+ @Override
+ public Map<String, Object> map(final AuthModuleTO authModuleTO, final AzureActiveDirectoryAuthModuleConf conf) {
+ AzureActiveDirectoryAuthenticationProperties props = new AzureActiveDirectoryAuthenticationProperties();
+ props.setName(authModuleTO.getKey());
+ props.setOrder(authModuleTO.getOrder());
+ props.setState(AuthenticationHandlerStates.valueOf(authModuleTO.getState().name()));
+ props.setLoginUrl(conf.getLoginUrl());
+ props.setResource(conf.getResource());
+ props.setClientId(conf.getClientId());
+ props.setClientSecret(conf.getClientSecret());
+ props.setTenant(conf.getTenant());
+ props.setScope(conf.getScope());
+ props.setCredentialCriteria(conf.getCredentialCriteria());
+
+ return prefix("cas.authn.azure-active-directory.", WAConfUtils.asMap(props));
+ }
+
@Override
public Map<String, Object> map(final AuthModuleTO authModuleTO, final GoogleMfaAuthModuleConf conf) {
GoogleAuthenticatorMultifactorProperties props = new GoogleAuthenticatorMultifactorProperties();
(syncope) 02/02: According external links to updated dependency versions in the docs
Posted by il...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git
commit 194fb1ca137dce9da681e8fe0f764133ace765e2
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Thu Nov 14 15:11:22 2024 +0100
According external links to updated dependency versions in the docs
---
src/main/asciidoc/getting-started/obtain.adoc | 2 +-
.../concepts/attributerepositories.adoc | 12 ++++----
.../concepts/authenticationmodules.adoc | 34 +++++++++++-----------
.../concepts/clientapplications.adoc | 6 ++--
.../reference-guide/concepts/policies.adoc | 8 ++---
.../configuration/highavailability.adoc | 4 +--
.../asciidoc/reference-guide/usage/actuator.adoc | 12 ++++----
.../reference-guide/usage/customization.adoc | 2 +-
8 files changed, 40 insertions(+), 40 deletions(-)
diff --git a/src/main/asciidoc/getting-started/obtain.adoc b/src/main/asciidoc/getting-started/obtain.adoc
index 02db024810..a345144dd4 100644
--- a/src/main/asciidoc/getting-started/obtain.adoc
+++ b/src/main/asciidoc/getting-started/obtain.adoc
@@ -104,7 +104,7 @@ Environment variables:
* `DB_POOL_MIN`: internal storage connection pool: floor
* `OPENJPA_REMOTE_COMMIT`: configure multiple instances, with high availability; valid values are the ones accepted by
OpenJPA for
-https://openjpa.apache.org/builds/3.2.2/apache-openjpa/docs/ref_guide_event.html[remote event notification^] including
+https://openjpa.apache.org/builds/4.0.1/apache-openjpa/docs/ref_guide_event.html[remote event notification^] including
`sjvm` (single instance)
===== Console
diff --git a/src/main/asciidoc/reference-guide/concepts/attributerepositories.adoc b/src/main/asciidoc/reference-guide/concepts/attributerepositories.adoc
index 26da7b278f..163d017c43 100644
--- a/src/main/asciidoc/reference-guide/concepts/attributerepositories.adoc
+++ b/src/main/asciidoc/reference-guide/concepts/attributerepositories.adoc
@@ -23,11 +23,11 @@ certain <<policies-attribute-release,Attribute Release Policy>>.
Some attribute repositories are provided:
-* https://apereo.github.io/cas/6.6.x/integration/Attribute-Resolution-JDBC.html[Database^]
-* https://apereo.github.io/cas/6.6.x/integration/Attribute-Resolution-LDAP.html[LDAP^]
-* https://apereo.github.io/cas/6.6.x/integration/Attribute-Resolution-Stub.html[Stub^]
-* https://apereo.github.io/cas/6.6.x/integration/Attribute-Resolution-Syncope.html[Syncope^]
-* https://apereo.github.io/cas/6.6.x/integration/Attribute-Resolution-AzureAD.html[Azure Active Directory^]
+* https://apereo.github.io/cas/7.1.x/integration/Attribute-Resolution-JDBC.html[Database^]
+* https://apereo.github.io/cas/7.1.x/integration/Attribute-Resolution-LDAP.html[LDAP^]
+* https://apereo.github.io/cas/7.1.x/integration/Attribute-Resolution-Stub.html[Stub^]
+* https://apereo.github.io/cas/7.1.x/integration/Attribute-Resolution-Syncope.html[Syncope^]
+* https://apereo.github.io/cas/7.1.x/integration/Attribute-Resolution-AzureAD.html[Azure Active Directory^]
[TIP]
====
@@ -50,4 +50,4 @@ class.
[NOTE]
Attribute Repositories are dynamically translated into
-https://apereo.github.io/cas/6.6.x/integration/Attribute-Resolution.html[CAS Attribute Resolution^] configuration.
+https://apereo.github.io/cas/7.1.x/integration/Attribute-Resolution.html[CAS Attribute Resolution^] configuration.
diff --git a/src/main/asciidoc/reference-guide/concepts/authenticationmodules.adoc b/src/main/asciidoc/reference-guide/concepts/authenticationmodules.adoc
index e45ea041d2..692d920c18 100644
--- a/src/main/asciidoc/reference-guide/concepts/authenticationmodules.adoc
+++ b/src/main/asciidoc/reference-guide/concepts/authenticationmodules.adoc
@@ -24,23 +24,23 @@ technology or repository, in the context of a certain <<policies-authentication,
Several authentication modules are provided:
* Principal Authentication:
- ** https://apereo.github.io/cas/6.6.x/authentication/Database-Authentication.html[Database^]
- ** https://apereo.github.io/cas/6.6.x/authentication/JAAS-Authentication.html[JAAS^]
- ** https://apereo.github.io/cas/6.6.x/authentication/LDAP-Authentication.html[LDAP^]
- ** https://apereo.github.io/cas/6.6.x/authentication/SPNEGO-Authentication.html[SPNEGO^]
- ** https://apereo.github.io/cas/6.6.x/authentication/Syncope-Authentication.html[Syncope^]
- ** https://apereo.github.io/cas/6.6.x/authentication/Azure-ActiveDirectory-Authentication.html[Azure Active Directory^]
- ** https://apereo.github.io/cas/6.6.x/authentication/X509-Authentication.html[X509^]
- ** https://apereo.github.io/cas/6.6.x/integration/Delegate-Authentication-Generic-OpenID-Connect.html[OpenID Connect^]
- ** https://apereo.github.io/cas/6.6.x/integration/Delegate-Authentication-OAuth20.html[OAuth2^]
- ** https://apereo.github.io/cas/6.6.x/integration/Delegate-Authentication-SAML.htmll[SAML^]
- ** https://apereo.github.io/cas/6.6.x/integration/Delegate-Authentication-Apple.html[Apple Signin^]
- ** https://apereo.github.io/cas/6.6.x/integration/Delegate-Authentication-Azure-AD.html[Azure Active Directory (OIDC)^]
- ** https://apereo.github.io/cas/6.6.x/integration/Delegate-Authentication-Google-OpenID-Connect.html[Google OpenID^]
- ** https://apereo.github.io/cas/6.6.x/integration/Delegate-Authentication-Keycloak.html[Keycloak^]
+ ** https://apereo.github.io/cas/7.1.x/authentication/Database-Authentication.html[Database^]
+ ** https://apereo.github.io/cas/7.1.x/authentication/JAAS-Authentication.html[JAAS^]
+ ** https://apereo.github.io/cas/7.1.x/authentication/LDAP-Authentication.html[LDAP^]
+ ** https://apereo.github.io/cas/7.1.x/authentication/SPNEGO-Authentication.html[SPNEGO^]
+ ** https://apereo.github.io/cas/7.1.x/authentication/Syncope-Authentication.html[Syncope^]
+ ** https://apereo.github.io/cas/7.1.x/authentication/Azure-ActiveDirectory-Authentication.html[Azure Active Directory^]
+ ** https://apereo.github.io/cas/7.1.x/authentication/X509-Authentication.html[X509^]
+ ** https://apereo.github.io/cas/7.1.x/integration/Delegate-Authentication-Generic-OpenID-Connect.html[OpenID Connect^]
+ ** https://apereo.github.io/cas/7.1.x/integration/Delegate-Authentication-OAuth20.html[OAuth2^]
+ ** https://apereo.github.io/cas/7.1.x/integration/Delegate-Authentication-SAML.htmll[SAML^]
+ ** https://apereo.github.io/cas/7.1.x/integration/Delegate-Authentication-Apple.html[Apple Signin^]
+ ** https://apereo.github.io/cas/7.1.x/integration/Delegate-Authentication-Azure-AD.html[Azure Active Directory (OIDC)^]
+ ** https://apereo.github.io/cas/7.1.x/integration/Delegate-Authentication-Google-OpenID-Connect.html[Google OpenID^]
+ ** https://apereo.github.io/cas/7.1.x/integration/Delegate-Authentication-Keycloak.html[Keycloak^]
* MFA:
- ** https://apereo.github.io/cas/6.6.x/mfa/DuoSecurity-Authentication.html[Duo Security^]
- ** https://apereo.github.io/cas/6.6.x/mfa/GoogleAuthenticator-Authentication.html[Google Authenticator^]
+ ** https://apereo.github.io/cas/7.1.x/mfa/DuoSecurity-Authentication.html[Duo Security^]
+ ** https://apereo.github.io/cas/7.1.x/mfa/GoogleAuthenticator-Authentication.html[Google Authenticator^]
[TIP]
====
@@ -63,4 +63,4 @@ class.
[NOTE]
Authentication Modules are dynamically translated into
-https://apereo.github.io/cas/6.6.x/authentication/Configuring-Authentication-Components.html#authentication-handlers[CAS Authentication Handlers^].
+https://apereo.github.io/cas/7.1.x/authentication/Configuring-Authentication-Components.html#authentication-handlers[CAS Authentication Handlers^].
diff --git a/src/main/asciidoc/reference-guide/concepts/clientapplications.adoc b/src/main/asciidoc/reference-guide/concepts/clientapplications.adoc
index 4f297be7f3..744b1a81f2 100644
--- a/src/main/asciidoc/reference-guide/concepts/clientapplications.adoc
+++ b/src/main/asciidoc/reference-guide/concepts/clientapplications.adoc
@@ -34,17 +34,17 @@ When defining a client application, the following parameters shall be specified:
. name - regular expression to match requests
. description - optional textual description
. username attribute provider, mapping to
-https://apereo.github.io/cas/6.6.x/integration/Attribute-Release-PrincipalId-Attribute.html[CAS Attribute-based Principal Id^]
+https://apereo.github.io/cas/7.1.x/integration/Attribute-Release-PrincipalId-Attribute.html[CAS Attribute-based Principal Id^]
. <<policies-authentication,authentication policy>>
. <<policies-access,access policy>>
. <<policies-attribute-release,attribute release policy>>
. <<policies-ticket-expiration,ticket expiration policy>>
. additional properties
. logout type, mapping to
-https://apereo.github.io/cas/6.6.x/installation/Logout-Single-Signout.html#slo-requests[the equivalent CAS setting^]
+https://apereo.github.io/cas/7.1.x/installation/Logout-Single-Signout.html#slo-requests[the equivalent CAS setting^]
More parameters are required to be specified depending on the actual client application type.
[NOTE]
Client Applications are dynamically translated into
-https://apereo.github.io/cas/6.6.x/services/Service-Management.html[CAS Services^].
+https://apereo.github.io/cas/7.1.x/services/Service-Management.html[CAS Services^].
diff --git a/src/main/asciidoc/reference-guide/concepts/policies.adoc b/src/main/asciidoc/reference-guide/concepts/policies.adoc
index de5297b4e0..c9d4a1af87 100644
--- a/src/main/asciidoc/reference-guide/concepts/policies.adoc
+++ b/src/main/asciidoc/reference-guide/concepts/policies.adoc
@@ -320,7 +320,7 @@ endif::[]
[NOTE]
Access Policy instances are dynamically translated into
-https://apereo.github.io/cas/6.6.x/services/Configuring-Service-Access-Strategy.html#configure-service-access-strategy[CAS Service Access Strategy^].
+https://apereo.github.io/cas/7.1.x/services/Configuring-Service-Access-Strategy.html#configure-service-access-strategy[CAS Service Access Strategy^].
[[policies-attribute-release]]
==== Attribute Release
@@ -332,7 +332,7 @@ values.
[NOTE]
Attribute Release Policy instances are dynamically translated into
-https://apereo.github.io/cas/6.6.x/integration/Attribute-Release-Policies.html#attribute-release-policies[CAS Attribute Release Policy^].
+https://apereo.github.io/cas/7.1.x/integration/Attribute-Release-Policies.html#attribute-release-policies[CAS Attribute Release Policy^].
[[policies-authentication]]
==== Authentication
@@ -359,7 +359,7 @@ be considered successful.
[NOTE]
Authentication Policy instances are dynamically translated into
-https://apereo.github.io/cas/6.6.x/authentication/Configuring-Authentication-Policy.html#authentication-policy[CAS Authentication Policy^].
+https://apereo.github.io/cas/7.1.x/authentication/Configuring-Authentication-Policy.html#authentication-policy[CAS Authentication Policy^].
[[policies-propagation]]
==== Propagation
@@ -478,4 +478,4 @@ Ticket Expiration policies control the duration of various types of WA sessions.
[NOTE]
Ticket Expiration Policy instances are dynamically translated into
-https://apereo.github.io/cas/6.6.x/ticketing/Configuring-Ticket-Expiration-Policy.html[their CAS equivalent^].
+https://apereo.github.io/cas/7.1.x/ticketing/Configuring-Ticket-Expiration-Policy.html[their CAS equivalent^].
diff --git a/src/main/asciidoc/reference-guide/configuration/highavailability.adoc b/src/main/asciidoc/reference-guide/configuration/highavailability.adoc
index 920423f48e..ac4d7b89a4 100644
--- a/src/main/asciidoc/reference-guide/configuration/highavailability.adoc
+++ b/src/main/asciidoc/reference-guide/configuration/highavailability.adoc
@@ -23,7 +23,7 @@
When deploying multiple Syncope <<core>> instances with a single database or database cluster, it is of
fundamental importance that the contained OpenJPA instances are correctly configured for
-https://openjpa.apache.org/builds/3.2.2/apache-openjpa/docs/ref_guide_event.html[remote event notification^]. +
+https://openjpa.apache.org/builds/4.0.1/apache-openjpa/docs/ref_guide_event.html[remote event notification^]. +
Such configuration, in fact, allows the OpenJPA data cache to remain synchronized when deployed in multiple JVMs, thus
enforcing data consistency across all Syncope Core instances.
@@ -39,7 +39,7 @@ are available; see the OpenJPA documentation for reference.
[WARNING]
====
-The https://openjpa.apache.org/builds/3.2.2/apache-openjpa/docs/ref_guide_event.html[OpenJPA documentation^]'s XML
+The https://openjpa.apache.org/builds/4.0.1/apache-openjpa/docs/ref_guide_event.html[OpenJPA documentation^]'s XML
snippets refer to a different configuration style; for example, when used in `core.properties`, this:
[source,xml]
diff --git a/src/main/asciidoc/reference-guide/usage/actuator.adoc b/src/main/asciidoc/reference-guide/usage/actuator.adoc
index 3e56563944..7049df1cbe 100644
--- a/src/main/asciidoc/reference-guide/usage/actuator.adoc
+++ b/src/main/asciidoc/reference-guide/usage/actuator.adoc
@@ -40,7 +40,7 @@ The pre-defined `health` endpoint is typically used for liveness and readiness p
|===
| `entityCache`
-a| Allows to work with https://openjpa.apache.org/builds/3.2.2/apache-openjpa/docs/#ref_guide_cache_statistics[JPA cache statistics^]
+a| Allows to work with https://openjpa.apache.org/builds/4.0.1/apache-openjpa/docs/ref_guide_caching.html#ref_guide_cache_statistics[JPA cache statistics^]
* `GET` - shows JPA cache statistics
* `POST {ENABLE,DISABLE,RESET}` - performs the requested operation onto JPA cache
@@ -55,15 +55,15 @@ a| Allows to work with https://openjpa.apache.org/builds/3.2.2/apache-openjpa/do
|===
| `ssoSessions`
-| https://apereo.github.io/cas/6.6.x/authentication/Configuring-SSO.html#actuator-endpoints[More details^]
+| https://apereo.github.io/cas/7.1.x/authentication/Configuring-SSO.html#actuator-endpoints[More details^]
| `registeredServices`
-| https://apereo.github.io/cas/6.6.x/services/Service-Management.html#actuator-endpoints[More details^]
+| https://apereo.github.io/cas/7.1.x/services/Service-Management.html#actuator-endpoints[More details^]
| `authenticationHandlers`
-| https://apereo.github.io/cas/6.6.x/authentication/Configuring-Authentication-Components.html#actuator-endpoints[More details^]
+| https://apereo.github.io/cas/7.1.x/authentication/Configuring-Authentication-Components.html#actuator-endpoints[More details^]
| `authenticationPolicies`
-| https://apereo.github.io/cas/6.6.x/authentication/Configuring-Authentication-Policy.html#actuator-endpoints[More details^]
+| https://apereo.github.io/cas/7.1.x/authentication/Configuring-Authentication-Policy.html#actuator-endpoints[More details^]
| `resolveAttributes`
-| https://apereo.github.io/cas/6.6.x/integration/Attribute-Resolution.html#actuator-endpoints[More details^]
+| https://apereo.github.io/cas/7.1.x/integration/Attribute-Resolution.html#actuator-endpoints[More details^]
|===
diff --git a/src/main/asciidoc/reference-guide/usage/customization.adoc b/src/main/asciidoc/reference-guide/usage/customization.adoc
index 0257dd29c0..cd7222be13 100644
--- a/src/main/asciidoc/reference-guide/usage/customization.adoc
+++ b/src/main/asciidoc/reference-guide/usage/customization.adoc
@@ -275,7 +275,7 @@ components:
===== Customize OpenJPA settings
Apache OpenJPA is at the core of the <<persistence,persistence>> layer; its configuration can be tweaked under several
-aspects - including https://openjpa.apache.org/builds/3.2.2/apache-openjpa/docs/ref_guide_caching.html[caching^] for
+aspects - including https://openjpa.apache.org/builds/4.0.1/apache-openjpa/docs/ref_guide_caching.html[caching^] for
example, to best suit the various environments.
The main configuration classes are: