scimgateway 4.1.5 → 4.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -10
- package/config/plugin-azure-ad.json +154 -0
- package/config/resources/Azure - ScimGateway.xml +416 -312
- package/lib/plugin-azure-ad.js +104 -66
- package/lib/scimgateway.js +76 -68
- package/lib/utils.js +6 -1
- package/package.json +11 -11
- package/lib/endpointMap.js +0 -337
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# SCIM Gateway
|
|
2
2
|
|
|
3
|
-
[](https://app.travis-ci.com/github/jelhub/scimgateway) [](https://www.npmjs.com/package/scimgateway)[](https://app.travis-ci.com/github/jelhub/scimgateway) [](https://www.npmjs.com/package/scimgateway)[](https://www.npmjs.com/package/scimgateway) [](https://elshaug.xyz/docs/scimgateway#disqus_thread) [](https://github.com/jelhub/scimgateway)
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
Author: Jarle Elshaug
|
|
@@ -53,7 +53,7 @@ Setting `{"persistence": true}` gives persistence file store (no test users)
|
|
|
53
53
|
Example of a fully functional SCIM Gateway plugin
|
|
54
54
|
|
|
55
55
|
* **MongoDB** (NoSQL Document-Oriented Database)
|
|
56
|
-
Same as plugin "Loki" but using external MongoDB
|
|
56
|
+
Same as plugin "Loki", but using external MongoDB
|
|
57
57
|
Shows how to implement a highly configurable multi tenant or multi endpoint solution through `baseEntity` in URL
|
|
58
58
|
|
|
59
59
|
* **SCIM** (REST Webservice)
|
|
@@ -104,7 +104,7 @@ Node.js is a prerequisite and have to be installed on the server.
|
|
|
104
104
|
#### Install SCIM Gateway
|
|
105
105
|
|
|
106
106
|
Open a command window (run as administrator)
|
|
107
|
-
Create your own package directory e.g.
|
|
107
|
+
Create your own package directory e.g. c:\my-scimgateway and install SCIM Gateway within this package.
|
|
108
108
|
|
|
109
109
|
mkdir c:\my-scimgateway
|
|
110
110
|
cd c:\my-scimgateway
|
|
@@ -128,22 +128,22 @@ If internet connection is blocked, we could install on another machine and copy
|
|
|
128
128
|
=> Health check with a "hello" response
|
|
129
129
|
|
|
130
130
|
http://localhost:8880/Users
|
|
131
|
-
http://localhost:8880/Groups
|
|
132
|
-
or
|
|
133
|
-
http://localhost:8880/Users?attributes=userName
|
|
134
|
-
http://localhost:8880/Groups?attributes=displayName
|
|
131
|
+
http://localhost:8880/Groups
|
|
135
132
|
=> Logon using gwadmin/password and two users and groups should be listed
|
|
136
133
|
|
|
137
134
|
http://localhost:8880/Users/bjensen
|
|
138
135
|
http://localhost:8880/Groups/Admins
|
|
136
|
+
or
|
|
137
|
+
http://localhost:8880/Users?filter=userName eq "bjensen"
|
|
138
|
+
http://localhost:8880/Groups?filter=displayName eq "Admins"
|
|
139
139
|
=> Lists all attributes for specified user/group
|
|
140
140
|
|
|
141
141
|
http://localhost:8880/Groups?filter=displayName eq "Admins"&excludedAttributes=members
|
|
142
|
+
http://localhost:8880/Groups?filter=members.value eq "bjensen"&attributes=id,displayName,members.value
|
|
142
143
|
http://localhost:8880/Users?filter=userName eq "bjensen"&attributes=userName,id,name.givenName
|
|
143
144
|
http://localhost:8880/Users?filter=meta.created ge "2010-01-01T00:00:00Z"&attributes=userName,name.familyName,meta.created
|
|
144
145
|
http://localhost:8880/Users?filter=emails.value co "@example.com"&attributes=userName,name.familyName,emails&sortBy=name.familyName&sortOrder=descending
|
|
145
|
-
=> Filtering examples
|
|
146
|
-
|
|
146
|
+
=> Filtering and attribute examples
|
|
147
147
|
|
|
148
148
|
"Ctrl + c" to stop the SCIM Gateway
|
|
149
149
|
|
|
@@ -172,7 +172,7 @@ Upgrade to latest minor version:
|
|
|
172
172
|
cd c:\my-scimgateway
|
|
173
173
|
npm install scimgateway
|
|
174
174
|
|
|
175
|
-
Note, always backup/copy
|
|
175
|
+
Note, always backup/copy c:\\my-scimgateway before upgrading. Custom plugins and corresponding configuration files will not be affected.
|
|
176
176
|
|
|
177
177
|
To force a major upgrade (version x.\*.\* => y.\*.\*) that will brake compability with any existing custom plugins, we have to include the `@latest` suffix in the install command: `npm install scimgateway@latest`
|
|
178
178
|
|
|
@@ -1143,6 +1143,20 @@ MIT © [Jarle Elshaug](https://www.elshaug.xyz)
|
|
|
1143
1143
|
|
|
1144
1144
|
## Change log
|
|
1145
1145
|
|
|
1146
|
+
### v4.1.7
|
|
1147
|
+
|
|
1148
|
+
**Note, this version breaks compability with previous versions of plugin-azure-ad**
|
|
1149
|
+
|
|
1150
|
+
[Added]
|
|
1151
|
+
|
|
1152
|
+
- endpointMap moved from scimgateway to plugin-azure-ad
|
|
1153
|
+
- plugin-azure-ad.json configuration file now includes attribute mapping giving flexibility to add or customize AAD-SCIM attribute mappings
|
|
1154
|
+
- Symantec/Broadcom/CA ConnectorXpress configuration file `config\resources\Azure - ScimGateway.xml` for defining the Azure endpoint, have been updated with some new attributes according to plugin-azure-ad.json attribute mappings
|
|
1155
|
+
|
|
1156
|
+
### v4.1.6
|
|
1157
|
+
[Added]
|
|
1158
|
+
- Dependencies bump
|
|
1159
|
+
|
|
1146
1160
|
### v4.1.5
|
|
1147
1161
|
[Added]
|
|
1148
1162
|
|
|
@@ -95,6 +95,160 @@
|
|
|
95
95
|
"password": null
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
|
+
},
|
|
99
|
+
"map": {
|
|
100
|
+
"user": {
|
|
101
|
+
"id": {
|
|
102
|
+
"mapTo": "id",
|
|
103
|
+
"type": "string"
|
|
104
|
+
},
|
|
105
|
+
"userPrincipalName": {
|
|
106
|
+
"mapTo": "userName,externalId",
|
|
107
|
+
"type": "string"
|
|
108
|
+
},
|
|
109
|
+
"userType": {
|
|
110
|
+
"mapTo": "userType",
|
|
111
|
+
"type": "string"
|
|
112
|
+
},
|
|
113
|
+
"accountEnabled": {
|
|
114
|
+
"mapTo": "active",
|
|
115
|
+
"type": "boolean"
|
|
116
|
+
},
|
|
117
|
+
"givenName": {
|
|
118
|
+
"mapTo": "name.givenName",
|
|
119
|
+
"type": "string"
|
|
120
|
+
},
|
|
121
|
+
"surname": {
|
|
122
|
+
"mapTo": "name.familyName",
|
|
123
|
+
"type": "string"
|
|
124
|
+
},
|
|
125
|
+
"displayName": {
|
|
126
|
+
"mapTo": "displayName",
|
|
127
|
+
"type": "string"
|
|
128
|
+
},
|
|
129
|
+
"jobTitle": {
|
|
130
|
+
"mapTo": "jobTitle",
|
|
131
|
+
"type": "string"
|
|
132
|
+
},
|
|
133
|
+
"employeeId": {
|
|
134
|
+
"mapTo": "employeeId",
|
|
135
|
+
"type": "string"
|
|
136
|
+
},
|
|
137
|
+
"employeeType": {
|
|
138
|
+
"mapTo": "employeeType",
|
|
139
|
+
"type": "string"
|
|
140
|
+
},
|
|
141
|
+
"companyName": {
|
|
142
|
+
"mapTo": "companyName",
|
|
143
|
+
"type": "string"
|
|
144
|
+
},
|
|
145
|
+
"employeeOrgData.costCenter": {
|
|
146
|
+
"mapTo": "employeeOrgData.costCenter",
|
|
147
|
+
"type": "string"
|
|
148
|
+
},
|
|
149
|
+
"employeeOrgData.division": {
|
|
150
|
+
"mapTo": "employeeOrgData.division",
|
|
151
|
+
"type": "string"
|
|
152
|
+
},
|
|
153
|
+
"officeLocation": {
|
|
154
|
+
"mapTo": "officeLocation",
|
|
155
|
+
"type": "string"
|
|
156
|
+
},
|
|
157
|
+
"department": {
|
|
158
|
+
"mapTo": "department",
|
|
159
|
+
"type": "string"
|
|
160
|
+
},
|
|
161
|
+
"manager": {
|
|
162
|
+
"mapTo": "manager.managerId",
|
|
163
|
+
"type": "string"
|
|
164
|
+
},
|
|
165
|
+
"mail": {
|
|
166
|
+
"mapTo": "mail",
|
|
167
|
+
"type": "string"
|
|
168
|
+
},
|
|
169
|
+
"mailNickname": {
|
|
170
|
+
"mapTo": "mailNickname",
|
|
171
|
+
"type": "string"
|
|
172
|
+
},
|
|
173
|
+
"proxyAddresses": {
|
|
174
|
+
"mapTo": "proxyAddresses.value",
|
|
175
|
+
"type": "array",
|
|
176
|
+
"items": {
|
|
177
|
+
"type": "string"
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
"mobilePhone": {
|
|
181
|
+
"mapTo": "mobilePhone",
|
|
182
|
+
"type": "string"
|
|
183
|
+
},
|
|
184
|
+
"businessPhones": {
|
|
185
|
+
"mapTo": "businessPhones",
|
|
186
|
+
"type": "array",
|
|
187
|
+
"typeInbound": "string"
|
|
188
|
+
},
|
|
189
|
+
"country": {
|
|
190
|
+
"mapTo": "country",
|
|
191
|
+
"type": "string"
|
|
192
|
+
},
|
|
193
|
+
"city": {
|
|
194
|
+
"mapTo": "city",
|
|
195
|
+
"type": "string"
|
|
196
|
+
},
|
|
197
|
+
"streetAddress": {
|
|
198
|
+
"mapTo": "streetAddress",
|
|
199
|
+
"type": "string"
|
|
200
|
+
},
|
|
201
|
+
"postalCode": {
|
|
202
|
+
"mapTo": "postalCode",
|
|
203
|
+
"type": "string"
|
|
204
|
+
},
|
|
205
|
+
"state": {
|
|
206
|
+
"mapTo": "state",
|
|
207
|
+
"type": "string"
|
|
208
|
+
},
|
|
209
|
+
"passwordPolicies": {
|
|
210
|
+
"mapTo": "passwordPolicies",
|
|
211
|
+
"type": "string"
|
|
212
|
+
},
|
|
213
|
+
"servicePlan": {
|
|
214
|
+
"mapTo": "servicePlan.value",
|
|
215
|
+
"type": "array"
|
|
216
|
+
},
|
|
217
|
+
"usageLocation": {
|
|
218
|
+
"mapTo": "usageLocation",
|
|
219
|
+
"type": "string"
|
|
220
|
+
},
|
|
221
|
+
"preferredLanguage": {
|
|
222
|
+
"mapTo": "preferredLanguage",
|
|
223
|
+
"type": "string"
|
|
224
|
+
},
|
|
225
|
+
"onPremisesSyncEnabled": {
|
|
226
|
+
"mapTo": "onPremisesSyncEnabled",
|
|
227
|
+
"type": "boolean"
|
|
228
|
+
},
|
|
229
|
+
"onPremisesImmutableId": {
|
|
230
|
+
"mapTo": "onPremisesImmutableId",
|
|
231
|
+
"type": "string"
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
"group": {
|
|
235
|
+
"id": {
|
|
236
|
+
"mapTo": "id",
|
|
237
|
+
"type": "string"
|
|
238
|
+
},
|
|
239
|
+
"displayName": {
|
|
240
|
+
"mapTo": "displayName,externalId",
|
|
241
|
+
"type": "string"
|
|
242
|
+
},
|
|
243
|
+
"securityEnabled": {
|
|
244
|
+
"mapTo": "securityEnabled",
|
|
245
|
+
"type": "boolean"
|
|
246
|
+
},
|
|
247
|
+
"mailEnabled": {
|
|
248
|
+
"mapTo": "mailEnabled",
|
|
249
|
+
"type": "boolean"
|
|
250
|
+
}
|
|
251
|
+
}
|
|
98
252
|
}
|
|
99
253
|
}
|
|
100
254
|
}
|