From 36c10c74e4f5990286b8cf3ea382675250e9da43 Mon Sep 17 00:00:00 2001 From: Tana M Berry Date: Thu, 5 Oct 2023 11:08:38 -0500 Subject: [PATCH] website/blog: SCIM blog (#7072) * blog about SCIM * ready for review * Optimised images with calibre/image-actions * minor changes Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer Co-authored-by: Tana Berry Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com> Co-authored-by: Jens Langhammer --- .../image1.png | Bin 0 -> 84913 bytes .../2023-10-05-SCIMs-many-deviations/item.md | 81 ++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 website/blog/2023-10-05-SCIMs-many-deviations/image1.png create mode 100644 website/blog/2023-10-05-SCIMs-many-deviations/item.md diff --git a/website/blog/2023-10-05-SCIMs-many-deviations/image1.png b/website/blog/2023-10-05-SCIMs-many-deviations/image1.png new file mode 100644 index 0000000000000000000000000000000000000000..cea8ca3406543c14c4254c85ca9d27011b503c1e GIT binary patch literal 84913 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 literal 0 HcmV?d00001 diff --git a/website/blog/2023-10-05-SCIMs-many-deviations/item.md b/website/blog/2023-10-05-SCIMs-many-deviations/item.md new file mode 100644 index 000000000..5b6656675 --- /dev/null +++ b/website/blog/2023-10-05-SCIMs-many-deviations/item.md @@ -0,0 +1,81 @@ +--- +title: "We need to talk about SCIM: More deviation than standard" +description: "SCIM’s many deviations, undocumented edge cases, and lack of official test coverage make it an especially complex protocol to implement." +slug: 2023-10-05-SCIMs-many-deviations +authors: + - name: Jens Langhammer + title: CTO at Authentik Security Inc + url: https://github.com/BeryJu + image_url: https://github.com/BeryJu.png +tags: + - SCIM + - SSO + - open source + - community + - identity provider + - security + - authentication +hide_table_of_contents: false +image: ./image1.png +--- + +> **_authentik is an open source Identity Provider that unifies your identity needs into a single platform, replacing Okta, Active Directory, and auth0. Authentik Security is a [public benefit company](https://github.com/OpenCoreVentures/ocv-public-benefit-company/blob/main/ocv-public-benefit-company-charter.md) building on top of the open source project._** + +--- + +As a young security company, we’ve been working on our implementation of SCIM (System for Cross-domain Identity Management), which I’ll share more about below. SCIM is in many ways a great improvement on LDAP, but we’ve run into challenges in implementation and some things just seem to be harder than they need to be. Is it just us? + +!["authentik admin interface"](./image1.png) + + + +# Improvements on LDAP + +From a security standpoint, it’s wise not to expose LDAP (Lightweight Directory Access Protocol) to the internet if you’re using Active Directory, OpenLDAP, FreeIPA or anything similar as your source of truth for authentication. SCIM fills a need for directory synchronization in a cloud-native world in which many companies aren’t hosting the software they use on their own servers. + +SCIM, being an HTTP API specification, is much simpler and (in theory) gives you less to worry about than LDAP (being its own specific protocol). SCIM also offers time- and cost-saving advantages over Just in Time provisioning, especially for scaling companies. SCIM can save hours of company time for IT admins who no longer have to manually create individual accounts across multiple applications for new team members. Offboarding is also streamlined as departing team members can be deprovisioned automatically, preventing unauthorized access. + +Most modern SaaS applications support SCIM, making it essential for security vendors to support the protocol, but it does come with its drawbacks. + +# Growing pains + +authentik currently supports SCIM going outwards; which means is that authentik is your source of truth/central directory, and you can use authentik together with a tool like [Sentry](https://sentry.io) that supports SCIM. In this case all your users or employees in authentik automatically get created in Sentry, with their correct group assignment, and they can just log in. + +Most of the information and commentary I see about SCIM focuses on the advantages described above, but I don’t see a lot of talk about the pitfalls of SCIM. I’m sharing our experiences here and am curious if others have found the same or can tell me how they’re avoiding these (I would love to hear that we’re doing this wrong actually!). + +## Deviation from standards isn’t well documented + +Implementing a protocol based on reading the RFCs and then writing the code is in itself not fun (to be fair, this is true for implementing any protocol based on a standard). Having implemented SCIM in line with the specification though, once we actually started testing with different solutions that can receive SCIM, we discovered a lot of quirks along the lines of x solution doesn’t do y (which the documentation says they should) or they do it slightly differently, and so on. + +This leads to a lot of workarounds which shouldn’t be necessary or things that simply don’t work without a clear cause. For example, when we started testing SCIM with Sentry, we ran into a lot of deviations (to their credit these were mostly listed in their [documentation](https://docs.sentry.io/product/accounts/sso/#scim-provisioning)). One of the issues I ran into when testing locally was when we created a user with SCIM, it just returned an error saying, “Please enter a valid email address” even though we _had_ sent it a valid email address. At least Sentry has the advantage of being open source, so we can just go and look at the code and see what’s happening, but this is still no small effort and you don’t have that option with closed source solutions. + +You can see other examples of confusing/unexpected behavior from SCIM [here](https://github.com/goauthentik/authentik/issues/5396) and [here](https://github.com/goauthentik/authentik/issues/6695). + +## Testing isn’t built out + +Some protocols make a big effort to uphold the adherence to the standard. OpenID Connect is another standard that’s well defined by multiple RFCs, but also has a lot of room for vendor-specific quirks. However, with OpenID we have the reassurance that the [OpenID Foundation](https://openid.net/foundation/) is behind it. + +The OpenID Foundation is a non-profit standards body of which Authentik Security is a member, but anyone can join to contribute to working groups that support implementation. OpenID Connect offers an [entire test suite](https://openid.net/certification/about-conformance-suite/) made up of hundreds of tests that you can run against your implementation, testing for edge cases and all the behaviors that they define. If you pass all the required tests you can send them the test results and get a [certification](https://openid.net/certification/) (which we are also working on) that your software adheres to the standards. + +Instead of working in the dark and trying to make sure you’ve interpreted the specs correctly (while testing with vendors who might have their own interpretations), you have some reassurance that you’re doing the right things when developing with OpenID Connect. + +To my knowledge there isn’t an official equivalent for SCIM—there are some smaller community projects that try to do something similar, but again, then you have to rely on someone’s interpretation of the standard. Even the [SCIM website’s overview page](https://scim.cloud/) says, “Information on this overview page is not normative.” + +## Updating a user is unnecessarily complex + +As mentioned above, authentik currently supports SCIM in one direction, but we are [working on making it so that another application can send SCIM to authentik](https://github.com/goauthentik/authentik/pull/3051), to create users in it. In this process we’ve discovered that updating a user is surprisingly annoying to implement. With SCIM [you have two options to update a user](https://datatracker.ietf.org/doc/html/rfc7644#autoid-22): + +- You can either send a request to replace the user (for which you have to send _all_ the user’s data), or +- You can send a patch request + +A lot of vendors use the patch request option to update group membership: they send a patch request for a user and just say, for example, “Add that group,” or “Remove that group.” This approach makes more sense in the case of an advanced user with tons of groups, as you’re not replacing everything, just making adjustments to their membership. However, this patch request is done with a custom filtering expression language which is extremely and needlessly complex. + +My first thought when I encountered this was, “Okay, can I just parse this with RegEx?” but it’s not possible. The correct way to parse it is with [ANTLR](https://www.antlr.org/), a parser generator for different kinds of grammars. The thing about ANTLR is that it’s a type of tool usually used to build a compiler: it allows you to define a grammar for which it generates a parser that can then parse things in said grammar. It’s not typically used for filtering language for directories and there are a lot of existing syntaxes that could have been used for this purpose. While luckily some people have written a full grammar for this, I was hoping that there would at least be an official definition for an ANTLR grammar. + +# Immaturity bites + +LDAP, being the more mature protocol (introduced in the ‘90s), has the advantage that deviations have been well documented and kinks ironed out. There are a handful of “standard” implementations like Active Directory, FreeIPA and some others. Similar to SAML support—there’s just been a lot more time to document edge cases and workarounds. + +SCIM, despite being around since 2015, is still subject to a lot of different interpretations of the standard, which leads to varying implementations and quirks with how vendors do SCIM. There’s a maturity challenge at work here in both senses—from the vendors but also from ourselves. Since we’ve added SCIM to our product a lot later than LDAP, there’s still a lot of room for us to catch up and make our implementation better. + +_Have you worked on SCIM implementation? Got advice for us? We’d love to hear from you in the comments._