scim | SCIM 1.1 SDK for Java | Identity Management library

 by   pingidentity Java Version: scim-1.8.24 License: No License

kandi X-RAY | scim Summary

kandi X-RAY | scim Summary

scim is a Java library typically used in Security, Identity Management applications. scim has no bugs, it has no vulnerabilities, it has build file available and it has high support. You can download it from GitHub, Maven.

The System for Cross-domain Identity Management (SCIM) specification is designed to make managing user identities in cloud-based applications and services easier. The specification suite seeks to build upon experience with existing schemas and deployments, placing specific emphasis on simplicity of development and integration, while applying existing authentication, authorization, and privacy models. Its intent is to reduce the cost and complexity of user management operations by providing a common user schema and extension model, as well as binding documents to provide patterns for exchanging this schema using standard protocols. In essence: make it fast, cheap, and easy to move users in to, out of, and around the cloud. See the SCIM 1.1 Core Schema and SCIM 1.1 Protocol specifications for more information.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              scim has a highly active ecosystem.
              It has 35 star(s) with 6 fork(s). There are 31 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 7 open issues and 8 have been closed. On average issues are closed in 4 days. There are 1 open pull requests and 0 closed requests.
              OutlinedDot
              It has a negative sentiment in the developer community.
              The latest version of scim is scim-1.8.24

            kandi-Quality Quality

              scim has no bugs reported.

            kandi-Security Security

              scim has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              scim does not have a standard license declared.
              Check the repository for any license declaration and review the terms closely.
              OutlinedDot
              Without a license, all rights are reserved, and you cannot use the library in your applications.

            kandi-Reuse Reuse

              scim releases are available to install and integrate.
              Deployable package is available in Maven.
              Build file is available. You can build the component from source.
              Installation instructions, examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi has reviewed scim and discovered the below as its top functions. This is intended to give you an instant insight into scim implemented functionality, and help decide if they suit your requirements.
            • Patches the specified resource
            • Applies the modifications to the given source resource
            • Returns a list of LDAP modifications for a SCAP object
            • Returns a set of LDAP attribute types that are mapped to a SCIM object
            • Performs the actual processing
            • Create the SSLUtil instance
            • Waits for the current thread to stop
            • Gets the requested resources
            • Map a SCIM filter component to an LDAP filter
            • Run this Ant task
            • Runs the application
            • Get the LDAP attributes
            • Deletes the specified resource
            • Perform the actual search process
            • Get the LDAP resource
            • Converts a SCIM filter to a LDAP filter
            • Unmarshal resources from JSON
            • Create an SCIMAttribute from the given entry
            • Marshals the contents of a JSON file
            • Converts entry to SCIMAttribute values
            • Gets the attribute values from the entry object
            • Generates a diff with the specified attributes
            • Adds the tool arguments
            • This method is used to update a resource
            • Handles a POST resource request
            • Transforms an LDAP filter into a LDAP filter
            Get all kandi verified functions for this library.

            scim Key Features

            No Key Features are available at this moment for scim.

            scim Examples and Code Snippets

            SCIM 1.1 SDK for Java,Getting started,Example
            Javadot img1Lines of Code : 31dot img1no licencesLicense : No License
            copy iconCopy
            public class Client {
              public static void main (String[] args) {
                final URI uri = URI.create("https://example.com:443");
                final SCIMService scimService = new SCIMService(uri, "bjensen", "password");
                scimService.setAcceptType(MediaType.APPL  
            SCIM 1.1 SDK for Java,Getting started,Maven coordinates
            Javadot img2Lines of Code : 5dot img2no licencesLicense : No License
            copy iconCopy
            
                com.unboundid.product.scim
                scim-sdk
                VERSION
            
              

            Community Discussions

            QUESTION

            Microsoft Azure AD SCIM endpoints
            Asked 2022-Mar-29 at 19:53

            Can someone tell me how to provision Microsoft Azure AD users via SCIM to my own application?

            The scenario is as follows:

            I have some users in Azure Active Directory and want to sync them with my own application running at my own server somewhere. I already know that there is Graph-API where I can simply call some URL like

            ...

            ANSWER

            Answered 2022-Mar-29 at 19:53

            Or do I have to open "/Users" "/Groups" API endpoints in my own server/application and somehow set up Azure AD to connect to my server and send the users to my application?

            This. Azure AD has a SCIM client (sends requests), but does not have a SCIM server(receives requests).

            This documentation goes through how to set up our custom non-gallery SCIM connector: https://docs.microsoft.com/en-us/azure/active-directory/app-provisioning/use-scim-to-provision-users-and-groups#integrate-your-scim-endpoint-with-the-aad-scim-client

            Source https://stackoverflow.com/questions/71664295

            QUESTION

            Why is there no actual schema for the SCIM core user?
            Asked 2022-Mar-15 at 04:55

            Simple question here... According to the SCIM specification (https://datatracker.ietf.org/doc/html/rfc7643) and the seriously limited documentation I could find, there is a "core user schema" provided by SCIM. It is described in section 4 of the RFC but this is just a vague description. Where is the actual schema? It would be significantly easier to design my own schema if I could see how things are defined in the core user schema. My system only requires/accepts one email address for example, whereas the core schema talks about multiple addresses with different types.

            ...

            ANSWER

            Answered 2022-Mar-15 at 04:55

            It's located here: https://datatracker.ietf.org/doc/html/rfc7643#section-8.7.1

            For the emails scenario you described, the easiest approach would be to only allow one type(work, other..) and reject any request without a type or with a disallowed type.

            Source https://stackoverflow.com/questions/71473445

            QUESTION

            Sync Azure AD users & groups to Azure Databricks workspace without using Azure Databricks SCIM Connector
            Asked 2022-Mar-07 at 12:22

            Do anyone have a good solution to sync azure ad users & groups to azure databricks workspace? The Azure Databricks SCIM Connector requires premium workspace and premium azure ad account.

            If anyone have done this or have seen any good github resources that could be used as a starting point please share otherwise please comment on my suggested high level idea/logic below:

            Using terraform/azure cli and databricks rest api:

            Sync groups
            • config: get list of definied azure ad groups
            • databricks rest api: get list of databricks workspace groups (exclude admin and all users groups)
            • script: compare existing databricks workspace groups with list of defined azure ad groups in config.

            if group exist in list but not databricks workspace:

            • databricks rest api: create groups in databricks workspace

            if group exist in databricks workspace but not in list of defined azure ad groups in config:

            • databricks rest api: delete groups in databricks workspace
            Sync users Add users
            • databricks rest api: get list of all users in databricks workspace
            • azure cli: iterate through list of defined azure ad groups and get list of members

            for each azure ad group

            • script: compare against list of members in azure ad group with list of all users in databricks workspace.

            if members is not in databricks workspace.

            • databricks rest api: create users in databricks workspace
            • databricks rest api: add users to group in databricks workspace
            Delete users
            • azure cli: iterate through list of defined azure ad groups and get list of unique members.
            • script: compare list of unique members in all azure ad groups with list of all users in databricks workspace and get all users that do not match.
            • databricks rest api: delete users in databricks workspace
            ...

            ANSWER

            Answered 2022-Mar-07 at 12:22

            From my point of view the simplest way to achieve this is to combine user & group resources of the [Databricks Terraform Provider][2] with [Azure AD Terraform provider][3] - with it you can easily pull groups & users from AAD, and apply these data to create users & groups in Databricks. And Terraform will take care for storing the state, finding the differences, delete users, etc. (just don't forget to store the Terraform state somewhere durable, like, ADLS, or something like)

            The code for doing that is too long to be posted here as the answer, but you can find it here.

            Source https://stackoverflow.com/questions/71378459

            QUESTION

            How to retrieve groups for a specific user using the AWS SSO SCIM API?
            Asked 2022-Mar-01 at 10:15

            I am trying to use the AWS SSO SCIM API in order to retrieve the AWS SSO groups for a particular user.

            Looking at the documentation https://docs.aws.amazon.com/singlesignon/latest/developerguide/listgroups.html

            It mentions the following

            • To see group info for a certain member, call ListGroup with a member filter
            • If you're using the member filter, you have to use the id filter (refer to supported filter combinations).
            • It appears that the id filter, is the group ID, because of this note: Note that the use of id as an individual filter, while valid, should be avoided as there is already a getGroup endpoint available.

            Also, at https://docs.aws.amazon.com/singlesignon/latest/developerguide/limitations.html next to the members attribute it mentions that it is supported, but cannot be read in a response.

            I have been playing with the API but could not get any group info for a user regardless of the combination of the parameters.

            Based on the above, I conclude that the API does not support retrieving group data for a user. Would you agree?

            ...

            ANSWER

            Answered 2022-Feb-18 at 05:17

            I don't have access to an AWS SSO SCIM endpoint, but from looking at the documentation I suspect one of the two approaches may be possible:

            1. GET /users/id and look at the value for "groups" - this one seems questionable as the limitations page says they support the user resource's "groups" attribute, but there's also a note about not supporting multi-valued user attributes. You may need to explicitly add the ?attributes=groups parameter to your GET to ask for that attribute to be returned, if it is in fact supported.

            2. GET /groups?filter=members[value eq "userId"] or some variation of that depending on what syntax they allow. This isn't listed as supported, but if it works, I expect that you would get a list of groups in response that did not contain the "members" attribute - but that each group returned would match the query.

            There's some amount of uncertainty with both of these, but with the information available those seem like the two most likely paths to successfully accomplish what you are aiming for. If neither of those work, it may not be possible - but a support case with AWS would probably be helpful to confirm there.

            Source https://stackoverflow.com/questions/71163317

            QUESTION

            Invalid argument for "-t --tag" flag: invalid reference format
            Asked 2022-Feb-15 at 09:04

            I'm trying to build the docker image using this script:

            release.sh

            ...

            ANSWER

            Answered 2022-Feb-15 at 08:59

            As it says, your image name/tag is invalid.

            Image names are slash-separated. You can prefix with a registry address including optional port number.

            your prod-web_prod-web_1:registry.seesunit.kr/prod-scim-web:v_db has too many colons. My guess is that the first bit is there by error and what you want is registry.seesunit.kr/prod-scim-web:v_db, i.e. your build command should be

            Source https://stackoverflow.com/questions/71123507

            QUESTION

            Linking External Identity Users With Existing Users
            Asked 2022-Feb-10 at 22:05

            I'm adding an external identity provider, Azure multi-tenant, as a login option. I have local accounts right now and they know nothing about Azure AD users.

            I want to create an Azure Enterprise App that other tenants can use to set up SSO using OpenID Connect. Also I want the app to support User Provisioning by setting up a SCIM API.

            I can't really find any documents on how to handle linking Azure AD users with the existing accounts in my IDP. I've seen examples where users can login using their local account, authenticate with Azure, and then their local account is updated to have the Azure AD User ID. This approach still seems pretty manual. Another thought was to have a step in the login journey, where if no local account has the Azure AD User ID then find a local account with the same email. I don't like this approach either since the emails might not always match. Is there an approach where an admin can automatically link all accounts with a sync or upload?

            ...

            ANSWER

            Answered 2022-Feb-10 at 22:05

            SYSTEMS

            First it's worth clarifying roles:

            Role Details Authorization Server (AS) Your UIs and APIs receive tokens from this. It is where accounts and linked accounts are stored. It is where you use SCIM to update account records. It is where you apply account linking logic. Identity Provider (IDP) There can be multiple of these. When your apps call the AS it manages connections to them, and exchanges IDP tokens for AS tokens that are returned to apps. It is not usual to use SCIM against an IDP.

            You are using IdentityServer as the AS so your UIs and APIs will continue to use IdentityServer tokens and remain simple. Meanwhile Azure AD will become an alternative IDP. So on the data side of things your architecture is in a good place.

            AUTHENTICATION ACTIONS

            I would aim to solve your problems via custom authentication actions, and to design this in a vendor agnostic way. Not all providers support these concepts, but IdentityServer has some pretty good extensibility features, so hopefully it has what you need.

            A bit of code, configuration and technical investigations in IdentityServer feel like the correct direction, with no complexity added to your applications. I will describe techniques in terms of Curity (where I work), but the same principles can apply to any system.

            USERNAME AUTHENTICATOR

            A great way to deal with user specific differences is to make the initial screen prompt only for an email. See this example for how that looks. Later, when authentication has completed, you could set a cookie so that this screen is not shown on subsequent logins.

            Then, before asking for credentials, apply some scripted logic, eg to look up existing account attributes, and decide how the user should authenticate. You might decide to route unknown users to Azure AD or do something based on business partner email suffixes.

            DATA UPDATES

            Something simple that might work in advance of adding Azure AD support is to assign all users a Tenant ID, and perhaps existing users get a Tenant ID of 1. Only those users are allowed to sign in with Identity Server - all others have to use Azure AD.

            SCRIPTED LOGIC AND ACCOUNT LINKING

            For a worked example of how this looks, see this Account Linking with Facebook tutorial. In this example the objective is to update the main account with a new linked account. This account linking doc may give you some additional ideas for your scenario. It should be possible to run custom logic before triggering authentication or once your have the Azure IDP attributes.

            INVOLVE THE USER IF NEEDED

            It may also be useful to present a custom screen to ask the user if they have an existing account when they first login via Azure AD. If not then an Azure AD login can create the primary account in IdentityServer data in addition to a linked account.

            USERS AND PARTNERS

            How users onboard is interesting, and discussed in this detailed article. I always start by getting a feel for the type of assets involved:

            Type Description Personal Assets You allow any user to sign up and they only have access to their own assets Corporate Assets Users are provisioned by an administrator, eg a banker is granted access to financial data according to business rules

            In your case it feels like users are from the second category, so to enable a user to fully sign up you need data from the partner, either fed in manually or by getting them to call your API, before you can assign the user the correct tenant ID. This might eventually result in TenantID=23, but there is nothing to stop you initially allowing users to onboard and placing them in a default TenantID=0 bucket.

            Ultimately this all comes down to data, claims and API authorization. Eg APIs could return certain data to TenantID=0 users but only return privileged data to users whose tenant ID has been asserted by an administrator. Not sure if these thoughts of mine match your scenario but hopefully they provide a useful hint or two.

            SUMMARY

            Reliable account linking is tricky, but it should be solvable via the building blocks of the Authorization Server, using the above techniques. The end result should be deterministic user data, with no duplicate users.

            Source https://stackoverflow.com/questions/70993929

            QUESTION

            import existing databricks user in terraform
            Asked 2022-Jan-25 at 09:18

            Trying to import existing users by using Terraform import but getting an import error. The detailed log is as follows.

            ...

            ANSWER

            Answered 2022-Jan-25 at 09:18

            As per the Databricks provider documentation, the only required argument is the user_name [1]. So the block of code you are using to import the user:

            Source https://stackoverflow.com/questions/70826337

            QUESTION

            Azure AD SCIM Attribute Mapping - Group Membership Expression
            Asked 2022-Jan-20 at 13:10

            I would like to create an expression for SCIM attribute mapping in Azure AD to pass a value to an attribute of the receiving application based on the user membership to a specific AD group.

            The below expression, for example, passes value New to the attribute userType of the receiving application if the value of the Azure AD attribute user.department equals to hr_new, and passes the value Old if not.

            IIF([department]="new_hr", "New", "Old")

            See example settings below:

            However, I haven't been able to query or check the group membership of a User in an expression in Azure AD. I would like to create an expression that checks if the user is member of group abc and if true it should pass the value X and if false, it should pass the value Y

            Any ideas how this could be done?

            ...

            ANSWER

            Answered 2021-Dec-16 at 15:38

            This is not possible at this time. Group membership is considered a property of the group object, and cannot be called into any logic expressions for user objects.

            Source https://stackoverflow.com/questions/70377887

            QUESTION

            GET SCIM GROUPS only returns synthetic_group in snowflake
            Asked 2021-Dec-29 at 10:20

            I am trying to list all the SCIM groups in snowflake but I only get synthetic_group

            ...

            ANSWER

            Answered 2021-Dec-29 at 10:20

            Currently, it is not possible to list all groups in Snowflake. As far as know, it has been already requested functionality on the roadmap.

            For more details on the timeline, please raise a Snowflake support case.

            Available SCIM API Requests: https://documenter.getpostman.com/view/5462540/S1Lzx6gY?version=latest#3b1f8e3c-ea80-4840-a81a-118bf22fdc42

            Source https://stackoverflow.com/questions/70517884

            QUESTION

            Okta SSO between 2 apps w/o user having to know about Okta
            Asked 2021-Dec-28 at 15:44
            Background

            We have two apps, App A and App B. I'm working on a POC for connecting the apps to each other.

            For background, IT wants to use Okta in some fashion. My experience with Okta has always been as the IDP and SSO was done via a normal SAML or OIDC workflow. But this requires the user to know about Okta and log into Okta. This setup is suitable for companies who are managing their users through Okta.

            Desired UX

            The UX that we are looking for involves a user with a fresh browser (no cookies anywhere) logging into App A, and then being able to click a link in App A and ending up in App B authenticated, without ever having to see an Okta page (a redirect through an Okta URL would be OK, however). We would also like to support the opposite (App B sending the user, authenticated, to App A). There is a shared convention between the apps that the email address of the user will be the same on both sides.

            Obviously we could create some form of SSO directly between these apps, but IT wants to manage whatever authentication connection we use in Okta (for security, etc.).

            Without knowing the direction to go my instinct tells me that we will need to use Okta as an IDP, but that we will need to use an Okta SCIM API of some kind to register users in Okta, at some point before we send them from App A to App B. Is this correct? If so, is it also possible to authenticate the user so that they don't have to log into Okta in order to arrive authenticated at App B? Is this completely wrong? Would that basically require us to make App A and App B both identity providers and consumers? Or is there some kind of better / simpler workflow for this scenario?

            ...

            ANSWER

            Answered 2021-Dec-28 at 15:44

            You can do Okta sign-in w/o redirects to Okta, if you are using Okta widget or Okta APIs. Then you don't need to show any Okta UI to your users. Only one thing, make sure that Okta cookies are sent with those requests, so that Okta knows that you already have a session.

            Source https://stackoverflow.com/questions/70382074

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install scim

            This SDK contains utilities for interacting with different types of SCIM Endpoints, Resources, Schemas, Attributes, Filters, and other objects. The SCIMService and SCIMEndpoint classes provide a starting point for connecting to a REST endpoint and issuing queries or invoking SCIM operations on existing resources. Release notes can be found in Release-Notes.txt.

            Support

            Please report bug reports and enhancement requests through this project's issue tracker. See the contribution guidelines for more information.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries

            Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Identity Management Libraries

            vault

            by hashicorp

            k9s

            by derailed

            keepassxc

            by keepassxreboot

            keycloak

            by keycloak

            uuid

            by uuidjs

            Try Top Libraries by pingidentity

            ldapsdk

            by pingidentityJava

            scim2

            by pingidentityJava

            pingidentity-server-profiles

            by pingidentityShell

            pingidentity-docker-builds

            by pingidentityShell