Skip to content

Commit b6e0aaa

Browse files
authored
Merge pull request #249 from adobe-apiplatform/v2
doc updates for 2.2rc2
2 parents cca7e02 + 6cd66b3 commit b6e0aaa

File tree

5 files changed

+205
-38
lines changed

5 files changed

+205
-38
lines changed

docs/en/FAQ/index.md

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,13 @@ a "retry-after" header indicating when capacity will be available again. User s
8787

8888
### Is there a local list of users created/updated (on the user sync side) in order to reduce Adobe server calls?
8989

90-
No, User sync always queries the Adobe user management systems to get
91-
current information when it is run.
90+
User sync always queries the Adobe user management systems to get
91+
current information when it is run, except as follows. There is an option available in
92+
User Sync release 2.2 or later to prevent this query and push updates to Adobe without
93+
regard to the current state of users in Adobe's user management system. If you can determine
94+
which users have changed in the local directory, and are confident that other users
95+
have not been altered on the Adobe side, this approach can shorten the run time
96+
(and network usage) of your sync jobs.
9297

9398
### Is the user sync tool limited to federated Ids or can any type of ID can be created?
9499

@@ -143,15 +148,9 @@ Yes, all Enterprise customers have access to the UMAPI and User Sync, regardless
143148

144149
### What is the internationalization story for the User Sync tool; is it internationally enabled (support at least double-byte character input)?
145150

146-
Python 2.7 (the language of the tool) distinguishes “str” (8-bit character strings)
147-
and “unicode” (enforced UTF-8-encoded 8 bit character strings), and the user
148-
sync code uses “str” not “unicode” everywhere. However, all of the output of
149-
the tools are UTF-8 encoded, and as long as UTF-8 encoding is used on the
150-
input things should work fine. This has been lightly tested and no problems were
151-
found. Further testing is planned.
152-
153-
We have an enhancement planned to port the tool to run in Python 3 as well as Python 2.
154-
At that point we can be assured that unicode will work fine, as the types are merged
155-
in Python 3. Customers for whom this is critical should build using Python 3.
156-
157-
151+
Earlier versions of User Sync were erratic in their support for international
152+
character data, although they worked fairly reliably with utf8-encoded data
153+
sources. As of version 2.2, User Sync is fully Unicode-enabled, and can accept
154+
configuration files and directory or spreadsheet data sources that use any
155+
character encoding whatever (with a default expectation of utf8).
156+

docs/en/user-manual/advanced_configuration.md

Lines changed: 161 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -486,25 +486,173 @@ that are not named in the group map in the config file.
486486

487487
## Working With Nested Directory Groups in Active Directory
488488

489-
Note: The approach originally defined in this section did not quite work. It will have to wait
490-
for future bug fix release.
489+
Note: Prior to release 2.2, nested groups were not supported by User Sync.
491490

492-
If your directory groups are structured in a nested manner so that users are
493-
not in one simple named directory group, you will need to run more complex
494-
LDAP queries to enumerate the list of users. For example you might have a group
495-
nesting structure like this:
491+
Starting in release 2.2, User Sync can be configured to recognize all users
492+
in nested directory groups, and the example configuration files show how to
493+
do this. Specifically, in the `connector-ldap.yml` configuration file, set
494+
the `group_member_filter` as follows:
496495

496+
group_member_filter_format: "(memberOf:1.2.840.113556.1.4.1941:={group_dn})"
497+
498+
This finds group members who are either directly in a named group, or indirectly in the group.
499+
500+
You might have a group nesting structure like this:
497501

498502
All_Divisions
499-
Blue_Division
500-
501-
502-
Green_Division
503-
504-
503+
Blue_Division
504+
505+
506+
Green_Division
507+
508+
509+
510+
You can map All_Divisions to an Adobe user group or product configuration in
511+
the `groups:` section of the main configuration file, and set group_member_filter
512+
as shown above. The effect of this is to treat all users contained directly in All_Divisions or in any group contained directly or indirectly in All_Divisions as a member of the All_Divisions directory group.
513+
514+
## Using Push Techniques to Drive User Sync
515+
516+
Starting with User Sync version 2.2 it is possible to drive push notifications directly to
517+
Adobe's user management system without having to read all information from Adobe and
518+
your enterprise directory. Using push notifications has the advantage of minimizing
519+
processing time and communication traffic, but the disadvantage of not being self-correcting
520+
for changes made in other ways, or in case of some errors. More
521+
careful management of changes to be made is also required.
522+
523+
You should consider using a push strategy if:
524+
525+
- You have a very, very large population of Adobe users.
526+
- You are making few adds/changes/deletions relative to the total user population.
527+
- You have a process or tools that can identify users who have been changed (added,
528+
removed, attribute changes, or group changes) in an automated way.
529+
- You have a process that first removes product entitlements from departing users, and
530+
then (after a waiting period) fully deletes their accounts.
531+
532+
The push strategy avoids all the overhead of reading large numbers of users from either side, and
533+
you can only do that if you can isolate the specific users that need to be updated (e.g., by
534+
putting them in a special group).
535+
536+
To use push notification, you will need to be able to gather updates to be made
537+
unconditionally into a separate file or directory group. User deletions also must
538+
be segregated from user additions and updates. Updates and deletions are then run
539+
in separate invocations of the User Sync tool.
540+
541+
Many approaches are possible using push techniques with User Sync. The next sections
542+
describe one recommended approach. To make it concrete, let us assume there are two
543+
Adobe products that have been purchased and are to be managed using User Sync: Creative Cloud,
544+
and Acrobat Pro. To grant access, assume you have created two product configurations named
545+
Creative_Cloud and Acrobat_Pro, and two directory groups named cc_users and acrobat_users.
546+
The map in the User Sync configuration file would look like this:
547+
548+
groups:
549+
- directory_group: acrobat_users
550+
adobe_groups:
551+
- "Acrobat_Pro"
552+
- directory_group: cc_users
553+
adobe_groups:
554+
- "Creative_Cloud"
555+
556+
557+
558+
### Using a special directory group to drive User Sync push
559+
560+
An additional directory group is created to collect users to be updated. For example,
561+
use a directory group `updated_adobe_users` for new or updated users (those whose group membership
562+
has changed). Removing users from both of the mapped groups revokes any product access
563+
and frees licenses held by users.
564+
565+
The command-line to use to process the additions and updates is:
566+
567+
user-sync –t --strategy push --process-groups --users group updated_adobe_users
568+
569+
Notice the `--strategy push` on the command line: that’s what causes User Sync NOT
570+
to try to read the Adobe-side directory first, and to instead just push the updates
571+
to Adobe.
572+
573+
Also notice the `-t` on the command line to run in "test mode". If the actions appear
574+
to be as you expect, remove the -t to have User Sync actually make the changes.
575+
576+
When `--strategy push` is specified, users are pushed over to Adobe with all of their
577+
mapped groups *added* and any mapped groups they are not supposed to be in *removed*.
578+
That way moving a user from one directory group to another, where they have different
579+
mappings, will cause that user to be switched on the Adobe side at the next push.
580+
581+
This approach will not delete or remove accounts, but will revoke
582+
access to any products and free licenses. To delete accounts, a different approach is
583+
needed which is described in the next section.
584+
585+
The process to support this approach consists of the following steps:
586+
587+
- Whenever you add a new user, or change a user’s groups in the directory (including
588+
removing from all groups, which essentially disables all product entitlements), you also
589+
add that user to the “updated_adobe_users” group.
590+
- Once a day (or at a frequency you choose), you run a sync job with the parameters
591+
shown above.
592+
- This job causes all the updated users to be created if necessary and to have their
593+
mapped groups updated on the Adobe side.
594+
- Once the job has run, you remove the users from the updated_adobe_users group (because
595+
their changes have been pushed).
596+
597+
At any time, you can also run a User Sync job in regular (non-push) mode to get the complete
598+
functionality of User Sync. This will pick up any changes that might have been missed,
599+
correct changes made not using User Sync, and/or perform actual account deletions.
600+
The command line would be something like:
601+
602+
user-sync --process-groups --users mapped --adobe-only-user-action remove
603+
604+
605+
### Using a file to drive User Sync push
606+
607+
You can use a file as the input to User Sync. In this case, the directory itself
608+
is not accessed by User Sync. You can create the files (one for adds and updates
609+
and one for deletions) manually or using a script that obtains information from
610+
some other source.
611+
612+
Create a file “users-file.csv” with information on users to add or update. An example of
613+
the file is:
614+
615+
firstname,lastname,email,country,groups,type,username,domain
616+
Jane 1,Doe,[email protected],US,acrobat_users
617+
Jane 2,Doe,[email protected],US,"cc_users,acrobat_users"
618+
619+
The command line to push updates from the file is:
620+
621+
user-sync –t --strategy push --process-groups --users file users-file.csv
622+
623+
Run without the `-t` when you are ready for the actions to take effect.
624+
625+
To remove users, a separate file is created with a different format. Example contents could be:
626+
627+
type,username,domain
628+
629+
enterpriseID,[email protected],
630+
federatedID,jsmith2,user-login-fed-domain.com
631+
federatedID,[email protected],
632+
633+
Each entry must include the identity type, user email or user name, and, for a federated identity type
634+
that is set for username login, the domain.
635+
636+
The command line to process deletions based on a file like this (say remove-list.csv) is:
637+
638+
user-sync -t --adobe-only-user-list remove-list.csv --adobe-only-user-action remove
639+
640+
The action "remove" could be "remove-adobe-groups" or "delete" to keep the account in the organization
641+
or to delete it, respectively. Also note `-t` for test mode.
505642

506-
A future release of user sync will support this transparently.
643+
The process to support this approach consists of the following steps:
507644

645+
- Whenever you add a new user, or change a user’s groups in the directory (including
646+
removing from all groups, which essentially disables all product entitlements), you also
647+
add an entry to the "users-file.csv" that includes the groups the user should be in. This might
648+
be more or fewer groups than they are currently in.
649+
- Whenever a user is to be removed, add an entry to the "remove-list.csv" file.
650+
- Once a day (or at a frequency you choose), you run the two sync job with the parameters
651+
shown above (one for adds and updates and one for deletions).
652+
- These jobs causes all the updated users to have their mapped groups updated on the Adobe
653+
side, and removed users to be removed from the Adobe side.
654+
- Once the job has run, clear out the files (because their changes have been pushed) to prepare for
655+
the next batch.
508656

509657
---
510658

0 commit comments

Comments
 (0)