# Documentation on how to write a custom Identity provider

**URL:** <https://forum.keycloak.org/t/documentation-on-how-to-write-a-custom-identity-provider/22329>\
**Category:** Getting advice\
**Tags:** documentation, identity-brokering\
**Created:** [May 25, 2023, 4:11pm UTC](https://forum.keycloak.org/t/documentation-on-how-to-write-a-custom-identity-provider/22329 "2023-05-25T16:11:10Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![cwdev](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/cwdev/32/8642_2.png) [@cwdev](https://forum.keycloak.org/u/cwdev)\
**Post date:** [May 25, 2023, 4:11pm UTC](https://forum.keycloak.org/t/documentation-on-how-to-write-a-custom-identity-provider/22329/1 "2023-05-25T16:11:10Z")

</div>

Good afternoon. I’m trying to write a custom identity provider (for Keycloak 21.1.1) to integrate with another system that uses a custom protocol.  
I sifted through the documentation but couldn’t find any tips / best practices on how to do it. I tried to use other projects on Github that did something similar but couldn’t make it work.  
Does anyone know where I could find a “reference implementation” or something along that way? how will the jar have to be packaged to be recognized by keycloak? Thanks.
