Comments (16)
Hi,
Your result:
{
"Resources": [
[
{
...
},
null
],
[
{
...
},
null
] ==> missing - copy/paste typo?
],
...
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:ListResponse"
],
...
}
schemas are included, but the Resources array contains array elements and not object elements.
You are using endpointMapper that returns an array having [result, error]
You should change:
let parsedAttr = scimgateway.endpointMapper('inbound', retObj, scimgateway.endpointMap.SecretsSafeUser)
to:
const [parsedAttr, err] = scimgateway.endpointMapper('inbound', retObj, scimgateway.endpointMap.SecretsSafeUser)
if (err) throw err
Regards,
Jarle
from scimgateway.
I ended up using something like the ExploreGroups etc:
for (let index = startIndex - 1; index < obj['IdentityProviders'][0]['PrincipalTypes'][0]['Users'].length && (index + 1 - startIndex) < count; ++index) {
const retObj = obj['IdentityProviders'][0]['PrincipalTypes'][0]['Users'][index]
console.log('endpointMapper test : '+scimgateway.endpointMapper('inbound', 'Uri', scimgateway.endpointMap.SecretsSafeUser) )
console.log('endpointMapper test : '+scimgateway.endpointMapper('inbound', retObj, scimgateway.endpointMap.SecretsSafeUser) )
if (obj['IdentityProviders'][0]['PrincipalTypes'][0]['Users'][index].Uri) {
const scimUser = { // displayName and id is mandatory, note: we set id=displayName
uniqueid: obj['IdentityProviders'][0]['PrincipalTypes'][0]['Users'][index].ID,
id: obj['IdentityProviders'][0]['PrincipalTypes'][0]['Users'][index].Name,
externalId: obj['IdentityProviders'][0]['PrincipalTypes'][0]['Users'][index].RemoteId,
UserName: obj['IdentityProviders'][0]['PrincipalTypes'][0]['Users'][index].Name,
uri: obj['IdentityProviders'][0]['PrincipalTypes'][0]['Users'][index].Uri,
type: obj['IdentityProviders'][0]['PrincipalTypes'][0]['Users'][index].Type,
schemas: ["urn:ietf:params:scim:schemas:core:2.0:User"],
"meta": {"resourceType": "User"}
}
ret.Resources.push(scimUser) // { id: <id-group>> , displayName: <displayName-group>, members [{value: <id-user>}] }
}
from scimgateway.
I believe that with the restful example, it is getting the schemas attributes straight from loki db via the gateway. I could be wrong.
from scimgateway.
exploreUsers should return all users.
Using SCIM v2, schemas should be urn:ietf:params:scim:api:messages:2.0:ListResponse
and we don't need to include schemas/resourceType on each object like you mention.
Nor do loki/restful plugin, they both returns:
{
"Resources": [
{
...
},
{
...
}
],
"totalResults": 2,
"itemsPerPage": 2,
"startIndex": 1,
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:ListResponse"
],
"meta": {
"resourceType": "User"
}
}
from scimgateway.
from scimgateway.
SCIM specification seems not to be clear on this topic.
I have found examples for what I have mentioned, but also found examples for what you have mentioned (schemas defined on each object listed in Resources). If you have verified that SailPoint require on each object, I then need to fix this.
I probably need to fix it anyhow...
from scimgateway.
from scimgateway.
from scimgateway.
v3.2.10 have now been published
For SCIM version 2.0 schemas/Resourctype will be included on each object in Resources
Jarle
from scimgateway.
Sorry, did not see your previous update.
Will look into it...
from scimgateway.
What you mentioned in your updated is also fixed in v.3.2.10
Jarle
from scimgateway.
from scimgateway.
Just try v.3.2.10 without any custom schema/meta logic in your plugin and report back on status.
from scimgateway.
from scimgateway.
That was good.
Just for curiosity, what other IdP's have you successfully integrated using SCIM Gateway?
I would like to update the validated IdP list.
Thanks,
Jarle
from scimgateway.
from scimgateway.
Related Issues (20)
- Problem with modifyUser when user does not exist HOT 3
- createUser is returning userName instead of id HOT 5
- Cannot distinguish PATCH/add and PUT in modifyGroups HOT 2
- Configurable path for plugin-config.json HOT 2
- Override base URL for metadata.location HOT 3
- Support for PATCH with replace used on an array to set it to empty HOT 2
- 500 with PATCH and no members from Okta HOT 1
- PATCH replace empty members is not calling modifyGroup HOT 5
- Azure Soft Delete (IsSoftDeleted) -> scimgateway.modifyUser() not triggered HOT 7
- createUser error: Cannot read properties of undefined (reading 'value') from plugin-mssql.js HOT 1
- Azure AD -> OpenLDAP - group provisionig fails - "endpointMapper: skipping - no mapping found for attributes: members" HOT 6
- Azure AD -> OpenLDAP - group provisionig fails - "modifyGroup error: only supports modification of members" HOT 3
- Multiple mail aliases wont work HOT 10
- mssql plugin only accepts "work" email type HOT 2
- mssql plugin does not generate value for id HOT 1
- When users do not have other emails on their entra ID, the fix #118 does not work. HOT 2
- When Microsoft Entra ID sends a delete request, SCIM isn't handling it properly. HOT 2
- What's the purpose of the scimdef-v2.js file? HOT 1
- Entra keep on sending the patch request while using the customised attribute HOT 12
- When using the SCIM PUT url to update users/groups/serviceplan it always tries to fetch the users by id HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from scimgateway.