Skip to content

Commit 436e234

Browse files
authored
Merge pull request #307 from adobe-apiplatform/v2
prepare for v2.3rc1 release
2 parents 15e8616 + 94ebf37 commit 436e234

File tree

16 files changed

+821
-33
lines changed

16 files changed

+821
-33
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ifeq ($(OS),Windows_NT)
88
ifeq ($(rm_path),None)
99
RM := rmdir /S /Q
1010
else
11-
RM := $(rm_path) -rf
11+
RM := $(rm_path) -rf
1212
endif
1313
else
1414
output_file_extension = ""

RELEASE_NOTES.md

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,22 @@
1-
# Release Notes for User Sync Tool Version 2.2.2
1+
# Release Notes for User Sync Tool Version 2.3
22

3-
These notes apply to v2.2.2 of 2017-11-19.
3+
These notes apply to v2.3rc1 of 2017-11-20.
44

55
## New Features
66

7-
[#294](https://github.com/adobe-apiplatform/user-sync.py/issues/294): Show statistics about users added to secondaries.
7+
User Sync can now connect to Okta enterprise directories. Create an Okta configuration and use the new `--connector okta` command-line argument to select that connector. See [the docs](https://adobe-apiplatform.github.io/user-sync.py/en/user-manual/advanced_configuration.html#the-okta-connector) for details.
88

9-
## Bug Fixes
10-
11-
[#283](https://github.com/adobe-apiplatform/user-sync.py/issues/283): Don't import keyring unless needed.
9+
There is a new command-line argument `--connector` for specifying whether to get directory information via LDAP file, by reading a CSV file, or via the Okta connector. The default connector is `ldap`. For CSV users, who formerly had to specify their input source with the `--users` argument, this optional argument offers the chance to specify `--users mapped` or `--users group ...` (since the CSV input can be specified with `--connector`). See [the docs](https://adobe-apiplatform.github.io/user-sync.py/en/user-manual/command_parameters.html) for details.
1210

13-
[#286](https://github.com/adobe-apiplatform/user-sync.py/issues/286): Allow specifying attributes for Adobe IDs.
14-
15-
[#288](https://github.com/adobe-apiplatform/user-sync.py/issues/288): Escape special characters in user input to LDAP queries.
11+
## Bug Fixes
1612

17-
[#293](https://github.com/adobe-apiplatform/user-sync.py/issues/293): Don't crash when existing users are added to secondaries.
13+
[#305](https://github.com/adobe-apiplatform/user-sync.py/issues/305) General issues with Okta connector.
1814

19-
[#301](https://github.com/adobe-apiplatform/user-sync.py/issues/301): User Sync fails when adding more than 10 groups to a user.
15+
[#306](https://github.com/adobe-apiplatform/user-sync.py/issues/306) v2.2.2 crashes if country code not specified.
2016

2117
## Compatibility with Prior Versions
2218

23-
There are no interface changes from prior versions.
19+
All configuration and command-line arguments accepted in prior releases work in this release. The `--users file` argument is still accepted, and is equivalent to (although more limited than) specifying `--connector csv`.
2420

2521
## Known Issues
2622

docs/en/user-manual/advanced_configuration.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -654,6 +654,33 @@ side, and removed users to be removed from the Adobe side.
654654
- Once the job has run, clear out the files (because their changes have been pushed) to prepare for
655655
the next batch.
656656

657+
## The Okta Connector
658+
659+
In addition to LDAP and CSV, the User Sync tool supports [Okta](https://www.okta.com) as a source for user identity and product entitlement sync. Since Okta always uses email addresses as the unique ID for users, the Okta connector does not support username-based federation.
660+
661+
Okta customers must obtain an API token for use with the Okta Users API. See the [Okta's Developer Documentation](http://developer.okta.com/docs/api/getting_started/api_test_client.html)
662+
for more information.
663+
664+
### Configuration
665+
666+
To specify your Okta configuration file, use the key "okta" in `user-sync-config.yml`.
667+
668+
```yaml
669+
directory_users:
670+
connectors:
671+
okta: connector-okta.yml
672+
```
673+
674+
There is a sample Okta connector file in the User Sync source tree.
675+
676+
### Runtime
677+
678+
In order to use the Okta connector, you will need to specify the `--connector okta` command-line parameter. (LDAP is the default connector.) In addition because the Okta connector does not support fetching all users, you must additionally specify a `--users` command line option of `group` or `mapped`. All other User Sync command-line parameters have their usual meaning.
679+
680+
### Extensions
681+
682+
Okta sync can use extended groups, attributes and after-mapping hooks. The names of extended attributes must be valid Okta profile fields.
683+
657684
---
658685

659686
[Previous Section](usage_scenarios.md) \| [Next Section](deployment_best_practices.md)

docs/en/user-manual/command_parameters.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ specific behavior in various situations.
3939
| `--adobe-only-user-list` _filename_ | Specifies a file from which a list of users will be read. This list is used as the definitive list of "Adobe only" user accounts to be acted upon. One of the `--adobe-only-user-action` directives must also be specified and its action will be applied to user accounts in the list. The `--users` option is disallowed if this option is present: only account removal actions can be processed. |
4040
| `--config-file-encoding` _encoding_name_ | Optional. Specifies the character encoding for the contents of the configuration files themselves. This includes the main configuration file, "user-sync-config.yml" as well as other configuration files it may reference. Default is `utf8` for User Sync 2.2 and later and `ascii` for earlier versions.<br />Character encoding in the user source data (whether csv or ldap) is declared by the connector configurations, and that encoding can be different than the encoding used for the configuration files (e.g., you could have a latin-1 configuration file but a CSV source file that uses utf-8 encoding).<br />The available encodings are dependent on the Python version used; see the documentation [here](https://docs.python.org/2.7/library/codecs.html#standard-encodings) for more information. |
4141
| `--strategy sync`<br />`--strategy push` | Available in release 2.2 and later. Optional. Default operating mode is `--strategy sync`. Controls whether User Sync reads user information from Adobe and compares to the directory information and then issues updates to Adobe, or simply pushes the directory input to Adobe without considering the existing user information on Adobe. `sync` is the default and the subject of the description of most of this documentation. `push` is useful when there is a large number of users on the Adobe side (>30,000) and known additions or changes to a small number of users are desired, and the list of those users is available in a csv file or a specific directory group.<br />If `--strategy push` is specified, `--adobe-only-user-action` cannot be specified as the determination of adobe-only users is not made.<br/>`--strategy push` will create new users, modify their group memberships for mapped groups only (if `--process-groups` is present), update user information (if `--update-user-info` is present), and will not remove users from the organization or delete their accounts. See [Handling Push Notifications](usage_scenarios.md#handling-push-notifications) for information on how to remove users via push notifications. |
42+
| `--connector ldap`<br />`--connector okta`<br />`--connector csv` _filename_ | Available in release 2.3 and later. Optional. Specifies the directory connector to be used (defaults to LDAP). If you specify the use of a CSV input file with this argument, then you cannot also specify one with `--users`, but you can then specify other `--users` options (such as `mapped` or `group`) for use with the CSV file. (The Okta connector does not support `--users all`, so you must specify a `--users` option of `mapped` or `group` if you use the Okta connector.)
4243
{: .bordertablestyle }
4344

4445
---

examples/config files - basic/1 user-sync-config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,11 @@ directory_users:
151151
# [Uncomment the next line if you have a custom csv configuration file.]
152152
#csv: "connector-csv.yml"
153153

154+
# (optional) okta (no default value)
155+
# okta is a 3rd party federation provider compatible with Adobe Enterprise Federated ID.
156+
# See https://developer.okta.com/ for Okta developer information.
157+
# okta: "connector-okta.ytml"
158+
154159
# (optional) groups (no default value)
155160
# The groups setting specifies how groups in the enterprise directory map
156161
# to product configurations and user groups on the Adobe side (collectively

examples/config files - basic/3 connector-ldap.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ base_dn: "defines the base DN. e.g. DC=example,DC=com"
3232
# or network address) as the value below.
3333
#secure_password_key: ldap_password
3434

35-
3635
# (optional) user_identity_type (default is inherited from main configuration)
3736
# user_identity_type specifies a default identity type for when directory users
3837
# are created on the Adobe side (one of adobeID, enterpriseID, federatedID).
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# This is a sample configuration file for the okta connector type.
2+
#
3+
# Okta is an identity hosting company that supports being the Identity Provider
4+
# for Adobe Enterprise Federated ID.
5+
#
6+
# This sample file contains all of the settable options for this protocol.
7+
# It is recommended that you make a copy of this file and edit it for your needs.
8+
# While you are at it, you will likely want to remove a lot of this commentary,
9+
# in order to enhance the readability of your file.
10+
11+
# connection settings (required)
12+
# You must specify both of these settings. The token should be protected.
13+
# For more information on getting an Okta API Token, see:
14+
# http://developer.okta.com/docs/api/getting_started/getting_a_token.html
15+
host: "sample-817042.oktapreview.com"
16+
api_token: "00R_KJEaIcgAswrlO_sample_ZdgxC5scYZn8IZ-zi"
17+
18+
# (required) group_filter_format (default given below)
19+
# specifies the string format used to construct a group query.
20+
# {group} is replaced with the name of the group to find.
21+
group_filter_format: "{group}"
22+
23+
# (required) all_users_filter (default given below)
24+
# specifies the string filter used to find all users in the directory.
25+
# Filter Examples:
26+
# Filter user based on countryCode attribute in user profile
27+
# all_users_filter: 'user.profile.countryCode == "MX"'
28+
# Filter user based on status of ACTIVE
29+
# all_users_filter: 'user.status == "ACTIVE"'
30+
all_users_filter: 'user.status == "ACTIVE"'
31+
32+
# (optional) default_identity_type (no default)
33+
# specifies the identity type of the dashboard user to create.
34+
# the valid values are: enterpriseID, federatedID
35+
# If not specified, the default identity type from the main config file is used.
36+
# user_identity_type: federatedID
36 KB
Binary file not shown.

setup.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,14 @@
4545
license='MIT',
4646
packages=['user_sync', 'user_sync.connector'],
4747
install_requires=[
48+
'keyring',
49+
'okta==0.0.3.1',
50+
'psutil',
4851
'pycryptodome',
4952
'pyldap==2.4.37',
5053
'PyYAML',
54+
'six',
5155
'umapi-client>=2.9',
52-
'psutil',
53-
'keyring',
54-
'six'
5556
],
5657
extras_require={
5758
':sys_platform=="linux" or sys_platform=="linux2"':[

0 commit comments

Comments
 (0)