{"id":14,"date":"2026-02-02T14:58:18","date_gmt":"2026-02-02T13:58:18","guid":{"rendered":"https:\/\/blog.gindox.com\/?p=14"},"modified":"2026-02-02T15:52:20","modified_gmt":"2026-02-02T14:52:20","slug":"authentik-keeper-sso","status":"publish","type":"post","link":"https:\/\/blog.gindox.com\/?p=14","title":{"rendered":"Authentik + Keeper SSO"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">For integration of <a href=\"https:\/\/docs.keeper.io\/en\/sso-connect-cloud\" target=\"_blank\" rel=\"noreferrer noopener\">\u2197 Keeper<\/a> with <a href=\"https:\/\/goauthentik.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u2197 Authentik<\/a>, we will be utilizing SAML Provider.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">First, you need to configure your Console and options as per the documentation <a href=\"https:\/\/docs.keeper.io\/en\/sso-connect-cloud\/admin-console-configuration\" target=\"_blank\" rel=\"noreferrer noopener\">\u2197 here<\/a><br>Once configured, export the metadata XML file. Keep the reference to Assertion Consumer Service (ACS) Endpoint and Entity ID URLs also.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"757\" height=\"361\" src=\"https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-4.png\" alt=\"\" class=\"wp-image-19\" srcset=\"https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-4.png 757w, https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-4-300x143.png 300w\" sizes=\"auto, (max-width: 757px) 100vw, 757px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Once that is done, login to authentik admin interface, navigate to Customization -> Property Mapping and add new SAML Provider Property Mapping<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"260\" height=\"396\" src=\"https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image.png\" alt=\"\" class=\"wp-image-15\" style=\"width:254px;height:auto\" srcset=\"https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image.png 260w, https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-197x300.png 197w\" sizes=\"auto, (max-width: 260px) 100vw, 260px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"822\" height=\"294\" src=\"https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-1.png\" alt=\"\" class=\"wp-image-16\" srcset=\"https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-1.png 822w, https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-1-300x107.png 300w, https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-1-768x275.png 768w\" sizes=\"auto, (max-width: 822px) 100vw, 822px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Create a new Email mapping, with the Expression value set to:  <code>return request.user.email<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1017\" height=\"442\" src=\"https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-2.png\" alt=\"\" class=\"wp-image-17\" srcset=\"https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-2.png 1017w, https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-2-300x130.png 300w, https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-2-768x334.png 768w\" sizes=\"auto, (max-width: 1017px) 100vw, 1017px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Additionally, you can also add First and Last mappings. Email mapping is required. Those two are optional.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Depending on your authentik design, you can always fall back to those core user fields as they are built into the user object by default:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Username:<\/strong> <code>request.user.username<\/code><\/li>\n\n\n\n<li><strong>Full Name:<\/strong> <code>request.user.name<\/code> (Authentik often combines first\/last into this field)<\/li>\n\n\n\n<li><strong>First Name:<\/strong> <code>request.user.first_name<\/code><\/li>\n\n\n\n<li><strong>Last Name:<\/strong> <code>request.user.last_name<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Next we open Applications -> Providers and click Create, select <strong>SAML Provider from Metadata<\/strong> type, give appropriate name and upload the metadata XML file download from Keeper Admin console<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"688\" src=\"https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-5-1024x688.png\" alt=\"\" class=\"wp-image-20\" srcset=\"https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-5-1024x688.png 1024w, https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-5-300x202.png 300w, https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-5-768x516.png 768w, https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-5.png 1027w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">With a new SAML provider set, now we create a new Application. Give it name, link to the existing Keeper provider and click Create.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"904\" height=\"660\" src=\"https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-7.png\" alt=\"\" class=\"wp-image-22\" srcset=\"https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-7.png 904w, https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-7-300x219.png 300w, https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-7-768x561.png 768w\" sizes=\"auto, (max-width: 904px) 100vw, 904px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We will need to Update Keeper SAML provider a bit. <br>First <strong>Audience<\/strong> field should be set to <strong>Entity ID<\/strong>. <\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Authentik<\/td><td>Keeper<\/td><\/tr><tr><td>ACS URL<\/td><td>Assertion Consumer Service (ACS) Endpoint<\/td><\/tr><tr><td>Issuer<\/td><td>Entity ID<\/td><\/tr><tr><td>Audience<\/td><td>Entity ID<\/td><\/tr><tr><td>SLS URL<\/td><td>Single Logout Service (SLO) Endpoint<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><br><strong>Sign assertions<\/strong> and <strong>Sign responses<\/strong> should be turned on<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"967\" height=\"309\" src=\"https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-6.png\" alt=\"\" class=\"wp-image-21\" srcset=\"https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-6.png 967w, https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-6-300x96.png 300w, https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-6-768x245.png 768w\" sizes=\"auto, (max-width: 967px) 100vw, 967px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And your custom User Property Mappings should be included<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-style-default\"><img loading=\"lazy\" decoding=\"async\" width=\"391\" height=\"360\" src=\"https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-10.png\" alt=\"\" class=\"wp-image-46\" srcset=\"https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-10.png 391w, https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-10-300x276.png 300w\" sizes=\"auto, (max-width: 391px) 100vw, 391px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When finished, download the metadata file and upload it to the Keeper Admin console <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"482\" height=\"311\" src=\"https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-11.png\" alt=\"\" class=\"wp-image-47\" srcset=\"https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-11.png 482w, https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-11-300x194.png 300w\" sizes=\"auto, (max-width: 482px) 100vw, 482px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"848\" height=\"726\" src=\"https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-12.png\" alt=\"\" class=\"wp-image-48\" srcset=\"https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-12.png 848w, https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-12-300x257.png 300w, https:\/\/blog.gindox.com\/wp-content\/uploads\/2026\/02\/image-12-768x658.png 768w\" sizes=\"auto, (max-width: 848px) 100vw, 848px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>For integration of \u2197 Keeper with \u2197 Authentik, we will be utilizing SAML Provider. First, you need to configure your Console and options as per [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,5],"tags":[],"class_list":["post-14","post","type-post","status-publish","format-standard","hentry","category-azure","category-keeper"],"_links":{"self":[{"href":"https:\/\/blog.gindox.com\/index.php?rest_route=\/wp\/v2\/posts\/14","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.gindox.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.gindox.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.gindox.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.gindox.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=14"}],"version-history":[{"count":4,"href":"https:\/\/blog.gindox.com\/index.php?rest_route=\/wp\/v2\/posts\/14\/revisions"}],"predecessor-version":[{"id":49,"href":"https:\/\/blog.gindox.com\/index.php?rest_route=\/wp\/v2\/posts\/14\/revisions\/49"}],"wp:attachment":[{"href":"https:\/\/blog.gindox.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.gindox.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=14"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.gindox.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=14"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}