Repository navigation
Add SCIM provisioning sample for User Management - #389
Closed
StuFrankish wants to merge 1 commit into
Closed
StuFrankish wants to merge 1 commit into
StuFrankish wants to merge 1 commit into
Conversation
- Add Aspire AppHost wiring Mailpit, IdentityServer (SCIM destination) and a simulated upstream Directory (SCIM source) - Enable inbound SCIM with DefaultScimUserSchema, SCIM API resource and scopes, and client credentials clients - Configure the DuendeScimBearer authority directly to work around late signing-key discovery in 2.0.0-preview.6 - Add Directory actions for discovery, user create, update, deactivate and delete, groups and membership, Bulk with bulkId references, and filter reconcile - Add OTP sign-in limited to SCIM-provisioned profiles, with a subject equality check before issuing a session - Show stored users, groups and the active attribute as read-only data - Add README and register the projects in samples.slnx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
IdentityServer/v8/UserManagement/ScimProvisioning, an Aspire sample that connects a simulated upstream directory (SCIM source) to IdentityServer with User Management inbound SCIM (destination). Companion to the UM inbound SCIM docs (products-private#3040).Projects
DefaultScimUserSchema,EnableScim/MapScim,ScimResourcesand the clientsscim-provisioner(scim) andscim-reader(scim.read). It has read-only users and groups views and OTP sign-in for provisioned users only.bulkIdreferences, anduserName eqreconcile. This is not a Duende feature; outbound SCIM is not on the roadmap.Behaviour notes
activeis stored profile data only. A deactivated user can still sign in.Workarounds for 2.0.0-preview.6 (documented in README)
Configure<JwtBearerOptions>("DuendeScimBearer", o => o.Authority = issuer): without it, validscimtokens get401 invalid_token.IUserProfileAdmin.TryGetAsync(userName, value)returns null for SCIM-provisioned profiles, so login uses a filteredQueryAsync.externalId, so the Directory matches byuserNameand groupdisplayName.Verification
dotnet build ScimProvisioning.slnxpasses.scim.readwrite returns 403, ascim.readread returns 200 and ascimwrite returns 201.bulkIdreferences.active=falseand signed in via Mailpit OTP. The sessionsubequals Casey's SCIM id and no extra profile was created. An unknownuserNameis refused.