The content of this series of articles is not to re-write the good step by step explanation that is provided from Adobe. Guide here. What I tried to achieve is creating a python module that can help you to easily connect and realize user management actions on a scale that is not manageable through the user interface (UI).
We are going to use the JWT identification interface. What is JWT ? It is an acronym that stands for JSON Web Token. You send a signed JSON to a service and it returns you a token.
If you want to know more about this technique, you can read my blog post about creating a JWT authentication method for Adobe IO.
You will need to follow it at least to setup an account and generates your key required for JWT authentication method.
You would also need to have python 3 and the following libraries installed on your computer :
Those libraries are required for the module to work.
The complexity of simplicity
Creating this module to have a simple way to manage users was one of the hardest task I have made with the Adobe API. As you may have seen on this blog, I have developed different python module for Adobe API before (Adobe Analytics reporting based on API 1.4 and the Audience Manager API). However the complexity of managing users within a company by providing enough method to covers basic needs, without over-engineering the module itself was pretty tough.
I feel that this could have been better achieved with some team work and brainstorming. However, being the only one developing this kind of module for the community so far, I had to made some decisions on my own. I hope those structural decisions will not impact your usage of this module and will not be a road-block at some point.
The code is open-source so you can modify it at your will. If you are interested into helping on this kind of tool, feel free to reach me and we can discuss the next projects.
Background & Goal
The background of that API was that I could use the latest techniques I learned with the “Fluent Python” book and to test the Adobe IO stack functionality.
One of the biggest difficulty for me was the fact that I don’t really need that tool for the moment. I have a limited access for my personal use of the Adobe stack and therefore don’t have to manage hundreds of users or tens of user groups.
However I have seen lots of companies struggling to have efficient user management processes with Adobe tools. The migration from the classic user management within the tools to the Admin Console was the thing on top that caused chaos and misunderstanding. if you haven’t done it yet, you can also check my article about the admin console management here.
Therefore I felt that this kind of module will be a big help for the companies that are struggling. Of course, you would need to have the possibility to have a tech guy working on the analytics team because everything is written on python. I tried to simplify the end-user knowledge required for this module but knowing python would be better.
This module is enabling different actions for your company. We will review them in a series of posts / articles. This a simple list in order for you to understand what will be possible with this module and what is not.
Possible action to realize :
- Retrieve all of the users in your company with their associated groups
- Retrieve all of the groups with their types
- Create users (AdobeID or EnterpriseID)
- Create groups
- Manage groups (add or remove users to these groups)
- Find admin users
- Generate list of users for each groups
Some actions are not possible to be realized with this module because they are not supported by the Adobe API at the moment.
The actions not possible to realize :
- Manage product profile : on this it is technically possible to add or remove product profile from a group. However it is not possible to get the product profiles attached to a group. Therefore I took the decision to not support this functionality.
- Creating product profile : Not possible to create product profile and create these restricted access for each of your adobe solution. You would need to do that within the UI.
As you could see, the limitation are focused on the product profiles functionalities, mostly because these functionalities are not (yet?) supported by the API. It used to be supported but the latest version of the API made them deprecated. I am confident that Adobe will provide support for them later on when the Admin Console will provide better inner product access rights management.
On this series, you may want to read :
|Adobe IO : JWT authentication||How to create JWT authentication with OpenSSL and python|
|Adobe IO : User Management : Introduction||What you need to know about this module|
|Adobe IO : User Management : Configuration||What do you need to have for this module.|
|Adobe IO : User Management : retrieve information||How to retrieve the information currently held on your adobe admin console.|
|Adobe IO : User Management : Create and Remove Users and Users Groups||How to create and remove users and user groups.|
|Adobe IO : User Management : User Group Class||Discover how you can handle the different group with the python class available|
|Adobe IO : User Management : Other functionnalities||Other functionalities that are included in this python module and that can be quite usefule|