How to Build a Flask SCIM Server Configured for Use with Okta

How to Build a Flask SCIM Server Configured for Use with Okta

Using a Flask SCIM server, learn more about the how & why behind how Okta implements the provisioning protocol.

I am having an issue with SCIM and AWS, and I would really like to see the attributes that Okta/SCIM is sending to AWS to help troubleshoot the issue. I have attempted to sent up the Flask app with the ngrok but I am having issues when attempting to access the app. From the Okta app configuring SCIM and testing the connection I keep getting 403 forbidden, no matter what API token I use. While attempting to access the site locally via http://localhost:5000/ I also get 403 not sure if I should really get something when just attempting to access from a local browser or not. Just not having any luck accessing Flask without an error.

Hey @Ryan23 were you able to resolve the issue? I’m facing the same problem with the 403 errors despite changing the token value

What does your request/response look like when you use Curl or HTTPie to access your local server?

Thank you for the recipe, but I’d appreciate for the portability sake as it’s just an example, it used local SQLite instead of Postgres

On the other hand, because it uses PostgreSQL, it’s more ready for you to ship it to production! :wink:

hi - thanks for putting together this guide!

one thing that i haven’t gotten to work yet is removal of rows in the SCIM app. For example, if I remove a user from a group (but both user and group are still assigned in the SCIM test app), I see a PATCH update group request with an op: remove, but a “remove” op isn’t handled anywhere in the example github linked. I tried sending a 204 response (which works for the “replace” op to the same endpoint) and it didn’t work.

Any suggestions on what response needs to be sent in order to trigger the correct downstream removal?