diff --git a/readme.md b/readme.md
index 7c692b1..48e5d3c 100644
--- a/readme.md
+++ b/readme.md
@@ -1,26 +1,28 @@
-AEM 6.1 LDAP Authentication Tutorial
-===========================================
+AEM 6.1 External Authentication Tutorial
+========================================
-This tutorial goes through the steps to setup and configure a LDAP server and the configure AEM to use example data for authentication.
+This tutorial goes through the steps to setup and configure a LDAP server and the configure AEM to use example data for authentication.
+
+As a bonus track, we show how to build and configure your own identity provider.
Sections
--------
-1 [Setup Apache Directory Server](tutorial-01-install-ldap.md)
-2 [Configure LDAP Authentication in AEM](tutorial-02-configure-aem.md)
-3 [Test LDAP Authentication in AEM](tutorial-03-test.md)
+1 [Setup Apache Directory Server](step-01/tutorial-01-install-ldap.md)
+2 [Configure LDAP Authentication in AEM](step-02/tutorial-02-configure-aem.md)
+3 [Test LDAP Authentication in AEM](step-03/tutorial-03-test.md)
Bonus
-----
-4 [Create your own IDP](tutorial-04-example-idp.md)
+4 [Create your own IDP](step-04/tutorial-04-example-idp.md)
Resources
---------
-* Example ldiff file: [apache-ds-tutorial.ldif](apache-ds-tutorial.ldif)
+* Example ldif file: [apache-ds-tutorial.ldif](step-01/apache-ds-tutorial.ldif)
* Package with AEM 6.1 LDAP example configurations:
- * First config: [ldap-first-config-pkg.zip](ldap-first-config-pkg.zip)
- * Config with profile: [ldap-config-with-profile-pkg.zip](ldap-config-with-profile-pkg.zip)
+ * First config: [ldap-first-config-pkg.zip](step-02/ldap-first-config-pkg.zip)
+ * Config with profile: [ldap-config-with-profile-pkg.zip](step-03/ldap-config-with-profile-pkg.zip)
Links
-----
diff --git a/apache-ds-tutorial.ldif b/step-01/apache-ds-tutorial.ldif
similarity index 100%
rename from apache-ds-tutorial.ldif
rename to step-01/apache-ds-tutorial.ldif
diff --git a/ldap-00-create-server.png b/step-01/images/ldap-00-create-server.png
similarity index 100%
rename from ldap-00-create-server.png
rename to step-01/images/ldap-00-create-server.png
diff --git a/ldap-01-configure-server.png b/step-01/images/ldap-01-configure-server.png
similarity index 100%
rename from ldap-01-configure-server.png
rename to step-01/images/ldap-01-configure-server.png
diff --git a/ldap-02-create-partition.png b/step-01/images/ldap-02-create-partition.png
similarity index 100%
rename from ldap-02-create-partition.png
rename to step-01/images/ldap-02-create-partition.png
diff --git a/ldap-03-start-server.png b/step-01/images/ldap-03-start-server.png
similarity index 100%
rename from ldap-03-start-server.png
rename to step-01/images/ldap-03-start-server.png
diff --git a/ldap-04-create-connection.png b/step-01/images/ldap-04-create-connection.png
similarity index 100%
rename from ldap-04-create-connection.png
rename to step-01/images/ldap-04-create-connection.png
diff --git a/ldap-05-import-ldiff.png b/step-01/images/ldap-05-import-ldiff.png
similarity index 100%
rename from ldap-05-import-ldiff.png
rename to step-01/images/ldap-05-import-ldiff.png
diff --git a/ldap-06-select-ldiff.png b/step-01/images/ldap-06-select-ldiff.png
similarity index 100%
rename from ldap-06-select-ldiff.png
rename to step-01/images/ldap-06-select-ldiff.png
diff --git a/ldap-07-browse-structure.png b/step-01/images/ldap-07-browse-structure.png
similarity index 100%
rename from ldap-07-browse-structure.png
rename to step-01/images/ldap-07-browse-structure.png
diff --git a/tutorial-01-install-ldap.md b/step-01/tutorial-01-install-ldap.md
similarity index 53%
rename from tutorial-01-install-ldap.md
rename to step-01/tutorial-01-install-ldap.md
index 4c3d3db..a9a0ed0 100644
--- a/tutorial-01-install-ldap.md
+++ b/step-01/tutorial-01-install-ldap.md
@@ -2,9 +2,9 @@ AEM 6.1 LDAP Authentication Tutorial
====================================
Step 01 - Install Apache Directory Server
--------------------------------
+-----------------------------------------
-In this step we install Apache Directory Server and Studio, create and configure a new LDAP server and load it with example data.
+In this step we install _Apache Directory Server_ and _Apache Directory Studio_, create and configure a new LDAP server and load it with example data.
### Requirements
1. Apache Directory Server
@@ -12,15 +12,15 @@ In this step we install Apache Directory Server and Studio, create and configure
2. Example data: http://directory.apache.org/apacheds/basic-ug/resources/apache-ds-tutorial.ldif
#### 1. install apache directory server
-folow: http://directory.apache.org/apacheds/basic-ug/1.3-installing-and-starting.html
+Folow: http://directory.apache.org/apacheds/basic-ug/1.3-installing-and-starting.html
#### 2. install apache directory studio
-see: http://directory.apache.org/studio/
+See: http://directory.apache.org/studio/
#### 3. create a new server
- In directory studio, select the server tab and click the icon for create server.
- choose some meaningful name and click finish
-
+
#### 4. configure server
Doubleclick the newly created server to open its configuration.
@@ -28,7 +28,7 @@ Doubleclick the newly created server to open its configuration.
- disable anonymous access
- enable access control
-
+
- open _Advanced Partions Configuration_
- delete the _example_ partition
@@ -36,41 +36,37 @@ Doubleclick the newly created server to open its configuration.
- for id enter: `SevenSeas`
- for suffix enter: `o=SevenSeas`
-
+
**Save the configuration !!**
#### 5. start the server
Click on the "Start" in the servers tab
-
+
#### 6. create connection
+Right click the server and select _Create a Connection_
-right click the server and select _Create a Connection_
+
-
-
-#### 7. open connection
-
-double click on the newly created connection in order to connect to the server.
+#### 7. connect to server
+Double click on the newly created connection in order to connect to the server.
#### 8. import ldif
-
Import the example data:
- right click on the _o=SevenSeas_ node
-- select import -> ldiff
+- select: _Import_ -> _LDIF Import..._
-
+
- choose the `apache-ds-tutorial.ldif` file and click _Finish_
-
+
#### 9. browse structure
+You can verify the newly imported entries by browsing the structure below the _o=SevenSeas_ node.
-you can verify the newly imported entries
-
-
+
diff --git a/aem-00-setup-logging.png b/step-02/images/aem-00-setup-logging.png
similarity index 100%
rename from aem-00-setup-logging.png
rename to step-02/images/aem-00-setup-logging.png
diff --git a/aem-01-find-ldap-idp.png b/step-02/images/aem-01-find-ldap-idp.png
similarity index 100%
rename from aem-01-find-ldap-idp.png
rename to step-02/images/aem-01-find-ldap-idp.png
diff --git a/aem-02-configure-ldap-idp.png b/step-02/images/aem-02-configure-ldap-idp.png
similarity index 100%
rename from aem-02-configure-ldap-idp.png
rename to step-02/images/aem-02-configure-ldap-idp.png
diff --git a/aem-03-find-synchandler.png b/step-02/images/aem-03-find-synchandler.png
similarity index 100%
rename from aem-03-find-synchandler.png
rename to step-02/images/aem-03-find-synchandler.png
diff --git a/aem-04-configure-synchandler.png b/step-02/images/aem-04-configure-synchandler.png
similarity index 100%
rename from aem-04-configure-synchandler.png
rename to step-02/images/aem-04-configure-synchandler.png
diff --git a/aem-05-find-loginmodule.png b/step-02/images/aem-05-find-loginmodule.png
similarity index 100%
rename from aem-05-find-loginmodule.png
rename to step-02/images/aem-05-find-loginmodule.png
diff --git a/aem-06-configure-loginmodule.png b/step-02/images/aem-06-configure-loginmodule.png
similarity index 100%
rename from aem-06-configure-loginmodule.png
rename to step-02/images/aem-06-configure-loginmodule.png
diff --git a/aem-07-jaas-console.png b/step-02/images/aem-07-jaas-console.png
similarity index 100%
rename from aem-07-jaas-console.png
rename to step-02/images/aem-07-jaas-console.png
diff --git a/ldap-first-config-pkg.zip b/step-02/ldap-first-config-pkg.zip
similarity index 100%
rename from ldap-first-config-pkg.zip
rename to step-02/ldap-first-config-pkg.zip
diff --git a/tutorial-02-configure-aem.md b/step-02/tutorial-02-configure-aem.md
similarity index 84%
rename from tutorial-02-configure-aem.md
rename to step-02/tutorial-02-configure-aem.md
index b7e6ab4..648e100 100644
--- a/tutorial-02-configure-aem.md
+++ b/step-02/tutorial-02-configure-aem.md
@@ -6,6 +6,8 @@ Step 02 - Configure LDAP Authentication in AEM
In this step we configure AEM 6.1 to use our newly created LDAP server for login.
+**!** If you want to fast forward, here's the [ldap-first-config-pkg.zip](ldap-first-config-pkg.zip) package with the resuling configuration of this step.
+
### Requirements
1. LDAP Server with example data (preferably from previous step 01)
2. Running vanilla AEM 6.1 installation
@@ -16,15 +18,16 @@ It is always advisable to configure LDAP related logging during initial setup.
- open [Sling Log Support](http://localhost:4502/system/console/slinglog) in the Felix console
- add `org.apache.jackrabbit.oak.spi.security.authentication.external` as category for controlling the logging of the external login module and sync handler
- add `org.apache.jackrabbit.oak.security.authentication.ldap` as category for controlling the logging of the LDAP identity provider.
+- optionally, add `org.apache.directory` as a category for very lowlevel logging of the ldap client calls.
-
+
#### 2. configure LDAP identity provider
Now we configure the LDAP idp. this is the piece that connects to the LDAP server.
- open the [Felix Configuration Manager](http://localhost:4502/system/console/configMgr) and search for the _"ldap identity provider"_ factory config and click on the plus **+** button.
-
+
Enter the following information:
@@ -55,14 +58,14 @@ Enter the following information:
And save the config.
-
+
#### 3. configure Default Sync Handler
The sync handler is responsible to synchronize the external users with the local repository.
- open the [Felix Configuration Manager](http://localhost:4502/system/console/configMgr) and search for the _"Default Sync Handler"_ factory config and click on the plus **+** button.
-
+
Enter the following information:
@@ -82,14 +85,14 @@ Enter the following information:
And save the config
-
+
#### 4. configure the external login module
The external login module is the bridge between the login, the idp and the sync handler.
- open the [Felix Configuration Manager](http://localhost:4502/system/console/configMgr) and search for the _"External Login Module"_ factory config and click on the plus **+** button.
-
+
Enter the following information:
@@ -103,14 +106,14 @@ Enter the following information:
And save the config
-
+
#### 5. verify the JAAS console
The external login module should now show up in the JAAS console:
- open the [Felix JAAS Console](http://localhost:4502/system/console/jaas)
-
+
diff --git a/test-01-useradmin.png b/step-03/images/test-01-useradmin.png
similarity index 100%
rename from test-01-useradmin.png
rename to step-03/images/test-01-useradmin.png
diff --git a/test-02-newconfig.png b/step-03/images/test-02-newconfig.png
similarity index 100%
rename from test-02-newconfig.png
rename to step-03/images/test-02-newconfig.png
diff --git a/test-03-useradmin-withprops.png b/step-03/images/test-03-useradmin-withprops.png
similarity index 100%
rename from test-03-useradmin-withprops.png
rename to step-03/images/test-03-useradmin-withprops.png
diff --git a/test-04-jmx-console.png b/step-03/images/test-04-jmx-console.png
similarity index 100%
rename from test-04-jmx-console.png
rename to step-03/images/test-04-jmx-console.png
diff --git a/test-05-jmx-synchandler.png b/step-03/images/test-05-jmx-synchandler.png
similarity index 100%
rename from test-05-jmx-synchandler.png
rename to step-03/images/test-05-jmx-synchandler.png
diff --git a/test-06-jmx-syncexternalusers.png b/step-03/images/test-06-jmx-syncexternalusers.png
similarity index 100%
rename from test-06-jmx-syncexternalusers.png
rename to step-03/images/test-06-jmx-syncexternalusers.png
diff --git a/test-07-useradmin-more.png b/step-03/images/test-07-useradmin-more.png
similarity index 100%
rename from test-07-useradmin-more.png
rename to step-03/images/test-07-useradmin-more.png
diff --git a/ldap-config-with-profile-pkg.zip b/step-03/ldap-config-with-profile-pkg.zip
similarity index 100%
rename from ldap-config-with-profile-pkg.zip
rename to step-03/ldap-config-with-profile-pkg.zip
diff --git a/log-snip-01.md b/step-03/log-snip-01.md
similarity index 100%
rename from log-snip-01.md
rename to step-03/log-snip-01.md
diff --git a/tutorial-03-test.md b/step-03/tutorial-03-test.md
similarity index 68%
rename from tutorial-03-test.md
rename to step-03/tutorial-03-test.md
index 46569e6..548ee9f 100644
--- a/tutorial-03-test.md
+++ b/step-03/tutorial-03-test.md
@@ -6,6 +6,9 @@ Step 03 - Test that it works!
In this step we verify that the LDAP authentication works and if the users are synced properly.
+**!** If you want to fast forward, here's the [ldap-config-with-profile-pkg.zip](ldap-config-with-profile-pkg.zip) package with the resuling configuration of this step.
+
+
### Requirements
1. LDAP Server with example data (from step 01)
2. AEM 6.1 installation with configured LDAP authentication (from step 02)
@@ -24,14 +27,14 @@ Looking at the users and groups should show the user _William Bush_ and his grou
- open the [AEM useradmin](http://localhost:4502/useradmin)
- search for `seven`
-
+
-If you look at the log files, you should see something like here: [log-snip-01.md](log-snip-01.md)
+If you look at the log files, you should see something like this here: [log-snip-01.md](log-snip-01.md)
#### 2. add more config for first- and givenname
-as you can see in the AEM user admin, the fields for _First Name_ and _Last Name_ are empty, because the useradmin reads the `profile/givenName` and `profile/familyName`.
+As you can see in the AEM user admin, the fields for _First Name_ and _Last Name_ are empty, because the AEM useradmin uses the `profile/givenName` and `profile/familyName` properties.
-so let's alter the config so that this information is populated as well.
+So let's alter the config so that this information is populated as well.
- open the [Felix Configuration Manager](http://localhost:4502/system/console/configMgr) and search for the _"Default Sync Handler"_ factory config and click on the first confg to edit it
@@ -46,31 +49,30 @@ Enter the following information:
| User Expiration Time | `10s`
| User property mapping | `rep:fullname=cn`
`profile/nt:primaryType="nt:unstructured"`
`profile/givenName=givenname`
`profile/familyName=sn` |
-
+
And save the config.
-Now if you logout and login again with `wbush` the user should be resynced.
+Now, if you logout and login again with `wbush` the user should be resynced.
-
+
#### 3. use JMX console to sync more users
-
Oak comes with a default JMX mbean that allows you to control the sync handler.
- open the [Felix JMX Console](http://localhost:4502/system/console/jmx) and search for the _"External Identity"_ bean and select it
-
+
-
+
-- click on `syncAllExternalUsers()` and then on `invoke`. this will collect all the users from the IDP and sync them with the repository. you will see an `add` op property for all newly added users, and an `upd` for the updated ones.
+- click on `syncAllExternalUsers()` and then on `invoke`. this will collect all the users from the IDP and sync them with the repository. you will see an `add` _op_ property for all newly added users, and an `upd` for the updated ones.
-
+
checking back the user admin shows the newly imported users and groups
-
+
diff --git a/step-04/authorizables.json b/step-04/authorizables.json
new file mode 100644
index 0000000..a0fe6de
--- /dev/null
+++ b/step-04/authorizables.json
@@ -0,0 +1,65 @@
+{
+ "enterprise": {
+ "id": "enterprise",
+ "members": ["kirk", "spock", "mccoy"]
+ },
+ "kirk": {
+ "id": "kirk",
+ "fullname": "James T. Kirk",
+ "givenname": "James T.",
+ "familyname": "Kirk",
+ "email": "kirk@seven_skies.example.com",
+ "password": "pass",
+ "groups": ["enterprise"]
+ },
+ "spock": {
+ "id": "spock",
+ "fullname": "Spock",
+ "givenname": "Spock",
+ "familyname": "",
+ "email": "spock@seven_skies.example.com",
+ "password": "pass",
+ "groups": ["enterprise"]
+ },
+ "mccoy": {
+ "id": "mcccoy",
+ "fullname": "Leonard McCoy",
+ "givenname": "Leonard",
+ "familyname": "McCoy",
+ "email": "mccoy@seven_skies.example.com",
+ "password": "pass",
+ "groups": ["enterprise"]
+ },
+
+ "voyager": {
+ "id": "voyager",
+ "members": ["janeway", "chakotay", "tuvok"]
+ },
+ "janeway": {
+ "id": "janeway",
+ "fullname": "Kathryn Janeway",
+ "givenname": "Kathryn",
+ "familyname": "Janeway",
+ "email": "janeway@seven_skies.example.com",
+ "password": "pass",
+ "groups": ["voyager"]
+ },
+ "chakotay": {
+ "id": "chakotay",
+ "fullname": "Chakotay",
+ "givenname": "Chakotay",
+ "familyname": "",
+ "email": "chakotay@seven_skies.example.com",
+ "password": "pass",
+ "groups": ["voyager"]
+ },
+ "tuvok": {
+ "id": "tuvok",
+ "fullname": "Tuvok",
+ "givenname": "Tuvok",
+ "familyname": "",
+ "email": "tuvok@seven_skies.example.com",
+ "password": "pass",
+ "groups": ["voyager"]
+ }
+}
diff --git a/example-idp/.gitignore b/step-04/example-idp/.gitignore
similarity index 100%
rename from example-idp/.gitignore
rename to step-04/example-idp/.gitignore
diff --git a/example-idp/pom.xml b/step-04/example-idp/pom.xml
similarity index 100%
rename from example-idp/pom.xml
rename to step-04/example-idp/pom.xml
diff --git a/example-idp/src/main/java/com/adobe/gems/exampleidp/impl/ExternalGroupImpl.java b/step-04/example-idp/src/main/java/com/adobe/gems/exampleidp/impl/ExternalGroupImpl.java
similarity index 100%
rename from example-idp/src/main/java/com/adobe/gems/exampleidp/impl/ExternalGroupImpl.java
rename to step-04/example-idp/src/main/java/com/adobe/gems/exampleidp/impl/ExternalGroupImpl.java
diff --git a/example-idp/src/main/java/com/adobe/gems/exampleidp/impl/ExternalIdentityImpl.java b/step-04/example-idp/src/main/java/com/adobe/gems/exampleidp/impl/ExternalIdentityImpl.java
similarity index 100%
rename from example-idp/src/main/java/com/adobe/gems/exampleidp/impl/ExternalIdentityImpl.java
rename to step-04/example-idp/src/main/java/com/adobe/gems/exampleidp/impl/ExternalIdentityImpl.java
diff --git a/example-idp/src/main/java/com/adobe/gems/exampleidp/impl/ExternalUserImpl.java b/step-04/example-idp/src/main/java/com/adobe/gems/exampleidp/impl/ExternalUserImpl.java
similarity index 100%
rename from example-idp/src/main/java/com/adobe/gems/exampleidp/impl/ExternalUserImpl.java
rename to step-04/example-idp/src/main/java/com/adobe/gems/exampleidp/impl/ExternalUserImpl.java
diff --git a/example-idp/src/main/java/com/adobe/gems/exampleidp/impl/JsonFileIdentityProvider.java b/step-04/example-idp/src/main/java/com/adobe/gems/exampleidp/impl/JsonFileIdentityProvider.java
similarity index 100%
rename from example-idp/src/main/java/com/adobe/gems/exampleidp/impl/JsonFileIdentityProvider.java
rename to step-04/example-idp/src/main/java/com/adobe/gems/exampleidp/impl/JsonFileIdentityProvider.java
diff --git a/step-04/images/example-01-find-json-idp.png b/step-04/images/example-01-find-json-idp.png
new file mode 100644
index 0000000..dc2c94b
Binary files /dev/null and b/step-04/images/example-01-find-json-idp.png differ
diff --git a/step-04/images/example-02-configure-idp.png b/step-04/images/example-02-configure-idp.png
new file mode 100644
index 0000000..5da385e
Binary files /dev/null and b/step-04/images/example-02-configure-idp.png differ
diff --git a/step-04/images/example-03-configure-synchandler.png b/step-04/images/example-03-configure-synchandler.png
new file mode 100644
index 0000000..bda75d5
Binary files /dev/null and b/step-04/images/example-03-configure-synchandler.png differ
diff --git a/step-04/images/example-04-configure-loginmodule.png b/step-04/images/example-04-configure-loginmodule.png
new file mode 100644
index 0000000..3039a36
Binary files /dev/null and b/step-04/images/example-04-configure-loginmodule.png differ
diff --git a/step-04/images/example-05-useradmin.png b/step-04/images/example-05-useradmin.png
new file mode 100644
index 0000000..f08076f
Binary files /dev/null and b/step-04/images/example-05-useradmin.png differ
diff --git a/step-04/json-idp-config-pkg.zip b/step-04/json-idp-config-pkg.zip
new file mode 100644
index 0000000..754965b
Binary files /dev/null and b/step-04/json-idp-config-pkg.zip differ
diff --git a/tutorial-04-example-idp.md b/step-04/tutorial-04-example-idp.md
similarity index 80%
rename from tutorial-04-example-idp.md
rename to step-04/tutorial-04-example-idp.md
index 66b8a1c..23ecc56 100644
--- a/tutorial-04-example-idp.md
+++ b/step-04/tutorial-04-example-idp.md
@@ -3,10 +3,9 @@ AEM 6.1 Authentication Tutorial Bonus
Step 04 - Creating your own IDP
-------------------------------
+In this step we show you how to create your own IDP. The IDP provided in this example is very simple as it reads the authorizable data from a JSON file. The sample data in [authorizables.json](authorizables.json) provides the crews of 2 fictivous spaceships.
-In this step we show you how to create your own IDP. The IDP provided in this example is very simple as it reads the authorizable data from the JSON file. The sample data in [authorizables.json](authorizables.json) provides the crews of 2 fictivous spaceships.
-
-the code for the new IDP is located in the [example-idp](example-idp/) directory. The majority of the code is in the [JsonFileIdentityProvider.java](example-idp/src/main/java/com/adobe/gems/exampleidp/impl/JsonFileIdentityProvider.java) class.
+The code for the new IDP is located in the [example-idp](example-idp/) directory. The majority of the code is in the [JsonFileIdentityProvider.java](example-idp/src/main/java/com/adobe/gems/exampleidp/impl/JsonFileIdentityProvider.java) class. The code is very simple and should be self explanatory.
**!** If you want to fast forward, here's the [json-idp-config-pkg](json-idp-config-pkg) package with the configuration. all you need to do is to build and deploy the bundle.
@@ -15,7 +14,6 @@ the code for the new IDP is located in the [example-idp](example-idp/) directory
2. Apache maven
#### 1. build the bundle
-
- open a terminal or command prompt and navigate into the `example-idp` directory.
- build and install the bundle with `mvn clean install sling:install`
@@ -37,13 +35,14 @@ the output should show something like:
...
````
-#### 2. configure the idp
+This will build the bundle and automatically deploy it into an AEM instance running at localhost:4502.
-similar to the steps when configuring the ldap idp, we need to create a configuration for our new IDP.
+#### 2. configure the identity provider
+Similar to the steps when configuring the ldap idp, we need to create a configuration for our new IDP.
- open the [Felix Configuration Manager](http://localhost:4502/system/console/configMgr) and search for the _"json file identity provider"_ factory config and click on the plus **+** button.
-
+
Enter the following information:
@@ -52,10 +51,9 @@ Enter the following information:
| Provider Name | json
| JSON Filename | authorizables.json
-
+
#### 3. copy the authorizables json file
-
As soon as you configure the IDP, you should see a log entry like this:
```
@@ -64,15 +62,12 @@ As soon as you configure the IDP, you should see a log entry like this:
as you can see, the file that the IDP needs is relative to where you started AEM. so copy the sample [authorizables.json](authorizables.json) there.
-
#### 4. configure the sync handler
-
-similar to the steps when configuring the sync handler for the ldap idp, we need to create a new configuration here as well.
-
+Similar to the steps when configuring the sync handler for the ldap idp, we need to create a new configuration here as well.
- open the [Felix Configuration Manager](http://localhost:4502/system/console/configMgr) and search for the _"Default Sync Handler"_ factory config and click on the plus **+** button.
-
+
Enter the following information:
@@ -90,17 +85,16 @@ Enter the following information:
| Group property mapping |
| Group Path Prefix | `/seven_skies`
-And save the config
+And save the config. We already add the mappings for the extra profile properties, as we learned in [Step 03](../step-03/tutorial-03-test.md)
-
+
#### 5. configure the external login module
-
As before, the external login module is the bridge between the login, the idp and the sync handler. so add a new configuration that pairs the new `json` idp with the `tutorial_handler` sync handler
- open the [Felix Configuration Manager](http://localhost:4502/system/console/configMgr) and search for the _"External Login Module"_ factory config and click on the plus **+** button.
-
+
Enter the following information:
@@ -114,23 +108,21 @@ Enter the following information:
And save the config
-
+
#### 6. test that it works
-
- ensure to logout previous session or clear all browser cookie or use a different browser, hostname or IP
- open browser to aem: http://127.0.0.1:4502/
- login as `kirk` with password `pass`
-if the login succeeds, you should now see the authoring environment because we configured the `user.autoMembership` to include the `contributor` group.
+If the login succeeds, you should now see the authoring environment because we configured the `user.autoMembership` to include the `contributor` group.
Looking at the users and groups should show the group _enterprise_ and his member(s):
- open the [AEM useradmin](http://localhost:4502/useradmin)
- search for `enterprise`
-
-
-
- after that, use the JMX console to import the test of the space team!
+
+