<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Logto docs Blog</title>
        <link>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to</link>
        <description>Logto docs Blog</description>
        <lastBuildDate>Fri, 17 Apr 2026 02:54:06 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>fr</language>
        <item>
            <title><![CDATA[How to build Okta enterprise SSO with WordPress plugin]]></title>
            <link>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto</link>
            <guid>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto</guid>
            <pubDate>Fri, 17 Apr 2026 02:54:06 GMT</pubDate>
            <description><![CDATA[{/*]]></description>
            <content:encoded><![CDATA[
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">For our new friends<!-- -->:</span><br><br><p><span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> is an Auth0 alternative designed for modern apps and SaaS products. It
offers both <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/logto" target="_blank" rel="noopener noreferrer" class="link_hf7f">Open-source<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>
services to help you quickly launch your identity and management (IAM) system. Enjoy authentication,
authorization, and multi-tenant management <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">all in one<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.<!-- --> </p><p>We recommend starting with a free development tenant on <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. This allows you to explore all the features easily.</p></div></div></div>
<p>In this article, we will go through the steps to quickly build the <!-- -->Okta enterprise SSO<!-- --> sign-in
experience (user authentication) with <a href="https://wordpress.org/" target="_blank" rel="noopener">WordPress plugin</a> and <span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>Prerequisites</strong></p>
<ul>
<li class="">A running Logto instance. Check out the <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">introduction page<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to get started.</li>
<li class="">Basic knowledge of <a href="https://wordpress.org/" target="_blank" rel="noopener">WordPress plugin</a>.</li>
<li class="">A usable <!-- -->Okta enterprise SSO<!-- --> account.</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="create-an-application-in-logto">Create an application in Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Lien direct vers Create an application in Logto" title="Lien direct vers Create an application in Logto" translate="no">​</a></h2>
<p>Logto is based on OpenID Connect (OIDC) authentication and OAuth 2.0 authorization. It supports federated identity management across multiple applications, commonly called Single Sign-On (SSO).</p>
<p>To create your <!-- -->Traditional web<!-- --> application, simply follow these steps:</p>
<ol>
<li class="">Open the <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. In the "Get started" section, click the "View all" link to open the application frameworks list. Alternatively, you can navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/applications" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console &gt; Applications<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, and click the "Create application" button.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/get-started.png" alt="Get started">
</li>
<li class="">In the opening modal, click the "<!-- -->Traditional web<!-- -->" section or filter all the available "<!-- -->Traditional web<!-- -->" frameworks using the quick filter checkboxes on the left. Click the "<!-- -->WordPress<!-- -->" framework card to start creating your application.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/framework-list.png" alt="Frameworks">
</li>
<li class="">Enter the application name, e.g., "Bookstore," and click "Create application".</li>
</ol>
<p>🎉 Ta-da! You just created your first application in Logto. You'll see a congrats page which includes a detailed integration guide. Follow the guide to see what the experience will be in your application.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="integrate-with-logto">Integrate WordPress with Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#integrate-with-logto" class="hash-link" aria-label="Lien direct vers Integrate WordPress with Logto" title="Lien direct vers Integrate WordPress with Logto" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="install-the-plugin">Install the plugin<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#install-the-plugin" class="hash-link" aria-label="Lien direct vers Install the plugin" title="Lien direct vers Install the plugin" translate="no">​</a></h3>
<div class="theme-tabs-container tabs-container tabList_q32P"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_DwL7 tabs__item--active">From WordPress admin panel</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_DwL7">From upload</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_bR4Y"><ol>
<li class="">Go to <strong>Plugins</strong> &gt; <strong>Add New</strong>.</li>
<li class="">Search for "Logto", or enter <span class="linkWrapper_B4Bt"><a href="https://wordpress.org/plugins/logto/" target="_blank" rel="noopener noreferrer" class="link_hf7f">https://wordpress.org/plugins/logto/<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> in the search box.</li>
<li class="">Click <strong>Install Now</strong>.</li>
<li class="">Click <strong>Activate</strong>.</li>
</ol></div><div role="tabpanel" class="tabItem_bR4Y" hidden=""><ol>
<li class="">Download the Logto WordPress plugin from one of the following links:<!-- -->
<ul>
<li class=""><span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/wordpress/releases" target="_blank" rel="noopener noreferrer" class="link_hf7f">Latest release<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Download the file which name in the format of <code>logto-plugin-&lt;version&gt;.zip</code>.</li>
<li class=""><span class="linkWrapper_B4Bt"><a href="https://wordpress.org/plugins/logto/" target="_blank" rel="noopener noreferrer" class="link_hf7f">WordPress plugin directory<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Download the file by clicking the <strong>Download</strong> button.</li>
</ul>
</li>
<li class="">Download the plugin ZIP file.</li>
<li class="">Go to <strong>Plugins</strong> &gt; <strong>Add New</strong> in your WordPress admin panel.</li>
<li class="">Click <strong>Upload Plugin</strong>.</li>
<li class="">Select the downloaded ZIP file and click <strong>Install Now</strong>.</li>
<li class="">Click <strong>Activate</strong>.</li>
</ol></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-the-plugin">Configure the plugin<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#configure-the-plugin" class="hash-link" aria-label="Lien direct vers Configure the plugin" title="Lien direct vers Configure the plugin" translate="no">​</a></h3>
<p>Now you should be able to see the Logto menu in your WordPress admin panel sidebar. Click <strong>Logto</strong> &gt; <strong>Settings</strong> to configure the plugin.</p>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>You should have a <strong>traditional web</strong> application created in Logto Console before configuring the plugin. If you haven't created one, please refer to <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/integrate-logto/integrate-logto-into-your-application" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Integrate Logto into your application<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> for more information.</p></div></div></div>
<p>The minimum configuration to get started for the plugin is:</p>
<ul>
<li class="">Logto endpoint: The endpoint of your Logto tenant.</li>
<li class="">App ID: The app ID of your Logto application.</li>
<li class="">App secret: One of the valid app secrets of your Logto application.</li>
</ul>
<p>All values can be found on the application details page in Logto Console.</p>
<p>After filling in the values, click <strong>Save Changes</strong> (scroll down to the bottom of the page if you can't find the button).</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uri">Configure redirect URI<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#configure-redirect-uri" class="hash-link" aria-label="Lien direct vers Configure redirect URI" title="Lien direct vers Configure redirect URI" translate="no">​</a></h3>
<p>The redirect URI is the URL to which Logto will redirect users after they have authenticated; and the post sign-out redirect URI is the URL to which Logto will redirect users after they have logged out.</p>
<p>Here's a non-normative sequence diagram to illustrate the sign-in flow:</p>
<!-- -->
<p>Here's how the sign-out flow looks like in a non-normative sequence diagram:</p>
<!-- -->
<p>To learn more about why redirect is needed, see <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/concepts/sign-in-experience" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Sign-in experience explained<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p>In our case, we need to configure both redirect URIs in your Logto Console. To find the redirect URI, go to the <strong>Logto</strong> &gt; <strong>Settings</strong> page in your WordPress admin panel. You'll see the <strong>Redirect URI</strong> and <strong>Post sign-out redirect URI</strong> fields.</p>
<ol>
<li class="">Copy the <strong>Redirect URI</strong> and <strong>Post sign-out redirect URI</strong> values and paste them into the <strong>Redirect URIs</strong> and <strong>Post sign-out redirect URIs</strong> fields in your Logto Console.</li>
<li class="">Click <strong>Save changes</strong> in Logto Console.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="checkpoint-test-your-website">Checkpoint: Test your WordPress website<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#checkpoint-test-your-website" class="hash-link" aria-label="Lien direct vers Checkpoint: Test your WordPress website" title="Lien direct vers Checkpoint: Test your WordPress website" translate="no">​</a></h3>
<p>Now you can test your Logto integration in your WordPress website:</p>
<ol>
<li class="">Open an incognito browser window if needed.</li>
<li class="">Visit your WordPress website and click the <strong>Log in</strong> link if applicable; or directly visit the login page (e.g., <code>https://example.com/wp-login.php</code>).</li>
<li class="">The page should redirect you to the Logto sign-in page.</li>
<li class="">Complete the sign-in or sign-up process.</li>
<li class="">After successful authentication, you should be redirected back to your WordPress website and logged in automatically.</li>
<li class="">Click the <strong>Log out</strong> link to log out of your WordPress website.</li>
<li class="">You should be redirected to the Logto sign-out page, then back to your WordPress website.</li>
<li class="">You should be logged out of your WordPress website.</li>
</ol>
<p>To learn more about the WordPress plugin settings, see <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/quick-starts/wordpress-plugin" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>WordPress quick start<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="add-connector-connector">Add Okta enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#add-connector-connector" class="hash-link" aria-label="Lien direct vers Add Okta enterprise SSO connector" title="Lien direct vers Add Okta enterprise SSO connector" translate="no">​</a></h2>
<p>To simplify access management and gain enterprise-level safeguards for your big clients, connect with <!-- -->WordPress<!-- --> as a federated identity provider. The Logto enterprise SSO connector helps you establish this connection in minutes by allowing several parameter inputs.</p>
<p>To add an enterprise SSO connector, simply follow these steps:</p>
<ol>
<li class="">Navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto console &gt; Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-page.png" alt="SSO page">
<ol start="2">
<li class="">Click "Add enterprise connector" button and choose your SSO provider type. Choose from prebuilt connectors for Microsoft Entra ID (Azure AD), Google Workspace, and Okta, or create a custom SSO connection using the standard OpenID Connect (OIDC) or SAML protocol.</li>
<li class="">Provide a unique name (e.g., SSO sign-in for Acme Company).</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/select-your-sso-provider.png" alt="Select your SSO provider">
<ol start="4">
<li class="">Configure the connection with your IdP in the "Connection" tab. Check the guides above for each connector types.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-connection-settings.png" alt="SSO connection">
<ol start="5">
<li class="">Customize the SSO experience and enterprise’s <strong>email domain</strong> in the "Experience" tab. Users sign in with the SSO-enabled email domain will be redirected to SSO authentication.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-experience-settings.png" alt="SSO experience">
<ol start="6">
<li class="">Save changes.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="set-up-connectorconfigname">Set up OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Lien direct vers Set up OIDC application on Okta admin portal" title="Lien direct vers Set up OIDC application on Okta admin portal" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-okta-admin-portal">Step 1: Create an OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#step-1-create-an-oidc-application-on-okta-admin-portal" class="hash-link" aria-label="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" title="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" translate="no">​</a></h3>
<ul>
<li class="">Visit the Okta admin portal and sign in as an administrator.</li>
<li class="">Navigate to the <code>Applications</code>/<code>Applications</code> page using the side menu.</li>
<li class="">Click the <code>Create App Integration</code> button to create a new OIDC application.</li>
<li class="">Select the <code>OIDC - OpenID Connect</code> option as the <code>Sign-in method</code>.</li>
<li class="">Select the <code>Web Application</code> option as the <code>Application type</code>.</li>
</ul>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_create_application.webp" alt="Okta create application">
<p>Click the <code>Next</code> button to continue.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-the-application-settings">Step 2: Configure the application settings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Lien direct vers Step 2: Configure the application settings" title="Lien direct vers Step 2: Configure the application settings" translate="no">​</a></h3>
<ol>
<li class="">Provide an <code>App integration name</code>. It will be used as the identifier of your OIDC application.</li>
<li class="">Add a new <code>Sign-in redirect URIs</code> using the Logto SSO connector's callback URL.</li>
</ol>
<p>This is the URI that the Okta will redirect the user's browser after successful authentication. After a user successfully authenticates with the IdP, the IdP redirects the user's browser back to this designated URI along with an authorization code. Logto will complete the authentication process based on the authorization code received from this URI.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_application_settings.webp" alt="Okta application settings">
<ol start="3">
<li class="">Assign users to the application.</li>
</ol>
<p>Based on the <code>Assignments</code> settings, you can choose to assign the application to all users or specific users/groups.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_assign_users.webp" alt="Okta assign users">
<p>Click the <code>Save</code> button to save the application settings.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-set-up-logto-connector-with-the-client-credentials">Step 3: Set up Logto connector with the client credentials<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#step-3-set-up-logto-connector-with-the-client-credentials" class="hash-link" aria-label="Lien direct vers Step 3: Set up Logto connector with the client credentials" title="Lien direct vers Step 3: Set up Logto connector with the client credentials" translate="no">​</a></h3>
<p>After successfully creating the OIDC application, you will be redirected to the application details page.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_client_credentials.webp" alt="Okta client credentials">
<p>Copy the <code>client ID</code> and <code>client secret</code> and fill in the corresponding fields on the Logto SSO connector <code>Connection</code> tab.</p>
<p>Use your Okta domain as the <code>issuer</code>. Example: <code>https://dev-12345678.okta.com</code>. Once you have filled in all the fields, click the <code>Save</code> button to save the connector settings.</p>
<p>If the <code>issuer</code> link you provided is valid, you will see a parsed full list of Okta IdP configurations shown below the <code>issuer</code> field.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-additional-scopes-optional">Step 4: Additional scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Lien direct vers Step 4: Additional scopes (Optional)" title="Lien direct vers Step 4: Additional scopes (Optional)" translate="no">​</a></h3>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their Okta accounts. Requesting additional Okta permissions requires configuration on both sides:</p>
<p><strong>In Okta admin console:</strong></p>
<ol>
<li class="">Navigate to <strong>Applications &gt; Applications</strong> and select your OIDC application.</li>
<li class="">Go to the <strong>Assignments</strong> tab to ensure your app has access to the required users and groups.</li>
<li class="">For custom scopes, navigate to <strong>Security &gt; API &gt; Authorization Servers</strong> and select your authorization server.</li>
<li class="">Add custom scopes if needed:<!-- -->
<ul>
<li class="">Click <strong>Scopes</strong> and then <strong>Add Scope</strong></li>
<li class="">Define scope names like <code>okta.users.read</code> or <code>okta.groups.read</code> for accessing Okta APIs</li>
<li class="">Configure consent requirements for each scope</li>
</ul>
</li>
</ol>
<p>For a complete list of available scopes and their descriptions, please refer to the <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/api/openapi/okta-oauth/guides/overview/#scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta OIDC documentation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>In Logto Okta connector:</strong></p>
<ol>
<li class="">Logto automatically includes <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information. You can leave the <code>Scopes</code> field blank if you only need basic user information.</li>
<li class="">Add <code>offline_access</code> to the <code>Scopes</code> field if you plan to store tokens for persistent API access. This scope enables refresh tokens for long-lived API access.</li>
<li class="">Add additional scopes (separated by spaces) in the <code>Scopes</code> field to request more data from Okta. For example: <code>okta.users.read okta.groups.read</code></li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>If your app requests these scopes to access Okta APIs and perform actions, make sure to enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. See the next section for details.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-store-tokens-to-access-okta-apis-optional">Step 5: Store tokens to access Okta APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#step-5-store-tokens-to-access-okta-apis-optional" class="hash-link" aria-label="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" title="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" translate="no">​</a></h3>
<p>If you want to access <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/guides/request-user-consent/main/#enable-consent-for-scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta scopes<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and perform actions with user authorization, Logto needs to get specific scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in your Okta developer console API permissions configuration and Logto Okta connector.</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. Logto will securely store Okta access and refresh tokens in the Secret Vault.</li>
<li class="">To ensure refresh tokens are returned, add the <code>offline_access</code> scope to your Okta application permissions and include it in your Logto Okta connector scopes. This scope allows your application to maintain access to resources for extended periods.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-6-set-email-domains-and-enable-the-sso-connector">Step 6: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#step-6-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Lien direct vers Step 6: Set email domains and enable the SSO connector" title="Lien direct vers Step 6: Set email domains and enable the SSO connector" translate="no">​</a></h3>
<p>Provide the <code>email domains</code> of your organization on Logto's connector <code>SSO experience</code> tab. This will enable the SSO connector as an authentication method for those users.</p>
<p>Users with email addresses in the specified domains will be redirected to use your SSO connector as their only authentication method.</p>
<p>For more details about creating OIDC integration with Okta, please check <span class="linkWrapper_B4Bt"><a href="https://help.okta.com/oie/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm" target="_blank" rel="noopener noreferrer" class="link_hf7f">Create OIDC App Integrations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#save-your-configuration" class="hash-link" aria-label="Lien direct vers Save your configuration" title="Lien direct vers Save your configuration" translate="no">​</a></h3>
<p>Double check you have filled out necessary values in the Logto connector configuration area. Click
"Save and Done" (or "Save changes") and the <!-- -->Okta enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable Okta enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" title="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" translate="no">​</a></h2>
<p>You don’t need to configure enterprise connectors individually, Logto simplifies SSO integration into your applications with just one click.</p>
<ol>
<li class="">Navigate to: <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/sign-in-experience/sign-up-and-sign-in" target="_blank" rel="noopener noreferrer" class="link_hf7f">Console &gt; Sign-in &amp; account &gt; Sign-up and sign-in<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">Enable the "Enterprise SSO" toggle.</li>
<li class="">Save changes.</li>
</ol>
<p>Once enabled, a "Single Sign-On" button will appear on your sign-in page. Enterprise users with SSO-enabled email domains can access your services using their enterprise identity providers (IdPs).</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-email-auto-navigation.png" alt="Auto detect SSO sign-in via email domain">
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-link-button-navigation.png" alt="Navigate to SSO sign-in via manually click link button">
<p>To learn more about the SSO user experience, including SP-initiated SSO and IdP-initiated SSO, refer to User flows: <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="testing-and-validation">Testing and Validation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#testing-and-validation" class="hash-link" aria-label="Lien direct vers Testing and Validation" title="Lien direct vers Testing and Validation" translate="no">​</a></h2>
<p>Return to your <!-- -->WordPress plugin<!-- --> app. You should now be able to sign in with <!-- -->Okta enterprise SSO<!-- -->. Enjoy!</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="further-readings">Further readings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#further-readings" class="hash-link" aria-label="Lien direct vers Further readings" title="Lien direct vers Further readings" translate="no">​</a></h2>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows" target="_blank" rel="noopener noreferrer" class="link_hf7f">End-user flows<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Logto provides a out-of-the-box authentication flows including MFA and enterprise SSO, along with powerful APIs for flexible implementation of account settings, security verification, and multi-tenant experience.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/authorization" target="_blank" rel="noopener noreferrer" class="link_hf7f">Authorization<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Authorization defines the actions a user can do or resources they can access after being authenticated. Explore how to protect your API for native and single-page applications and implement Role-based Access Control (RBAC).</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/organizations" target="_blank" rel="noopener noreferrer" class="link_hf7f">Organizations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Particularly effective in multi-tenant SaaS and B2B apps, the organization feature enable tenant creation, member management, organization-level RBAC, and just-in-time-provisioning.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://blog.logto.io/ciam-101-intro-authn-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Customer IAM series<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> Our serial blog posts about Customer (or Consumer) Identity and Access Management, from 101 to advanced topics and beyond.</p>]]></content:encoded>
            <category>SSO providers</category>
            <category>okta-enterprise-sso</category>
            <category>wordpress-plugin</category>
            <category>php</category>
            <category>SAML authentication</category>
            <category>enterprise login</category>
            <category>SSO login</category>
        </item>
        <item>
            <title><![CDATA[How to build Okta enterprise SSO with Android (Kotlin / Java)]]></title>
            <link>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto</link>
            <guid>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto</guid>
            <pubDate>Fri, 17 Apr 2026 02:54:06 GMT</pubDate>
            <description><![CDATA[{/*]]></description>
            <content:encoded><![CDATA[
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">For our new friends<!-- -->:</span><br><br><p><span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> is an Auth0 alternative designed for modern apps and SaaS products. It
offers both <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/logto" target="_blank" rel="noopener noreferrer" class="link_hf7f">Open-source<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>
services to help you quickly launch your identity and management (IAM) system. Enjoy authentication,
authorization, and multi-tenant management <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">all in one<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.<!-- --> </p><p>We recommend starting with a free development tenant on <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. This allows you to explore all the features easily.</p></div></div></div>
<p>In this article, we will go through the steps to quickly build the <!-- -->Okta enterprise SSO<!-- --> sign-in
experience (user authentication) with <a href="https://developer.android.com/" target="_blank" rel="noopener">Android (Kotlin / Java)</a> and <span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>Prerequisites</strong></p>
<ul>
<li class="">A running Logto instance. Check out the <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">introduction page<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to get started.</li>
<li class="">Basic knowledge of <a href="https://developer.android.com/" target="_blank" rel="noopener">Android (Kotlin / Java)</a>.</li>
<li class="">A usable <!-- -->Okta enterprise SSO<!-- --> account.</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="create-an-application-in-logto">Create an application in Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Lien direct vers Create an application in Logto" title="Lien direct vers Create an application in Logto" translate="no">​</a></h2>
<p>Logto is based on OpenID Connect (OIDC) authentication and OAuth 2.0 authorization. It supports federated identity management across multiple applications, commonly called Single Sign-On (SSO).</p>
<p>To create your <!-- -->Native app<!-- --> application, simply follow these steps:</p>
<ol>
<li class="">Open the <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. In the "Get started" section, click the "View all" link to open the application frameworks list. Alternatively, you can navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/applications" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console &gt; Applications<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, and click the "Create application" button.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/get-started.png" alt="Get started">
</li>
<li class="">In the opening modal, click the "<!-- -->Native app<!-- -->" section or filter all the available "<!-- -->Native app<!-- -->" frameworks using the quick filter checkboxes on the left. Click the "<!-- -->Android<!-- -->" framework card to start creating your application.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/framework-list.png" alt="Frameworks">
</li>
<li class="">Enter the application name, e.g., "Bookstore," and click "Create application".</li>
</ol>
<p>🎉 Ta-da! You just created your first application in Logto. You'll see a congrats page which includes a detailed integration guide. Follow the guide to see what the experience will be in your application.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="integrate-with-logto">Integrate Android with Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#integrate-with-logto" class="hash-link" aria-label="Lien direct vers Integrate Android with Logto" title="Lien direct vers Integrate Android with Logto" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><ul>
<li class="">The example is based on <span class="linkWrapper_B4Bt"><a href="https://developer.android.com/reference/android/view/View" target="_blank" rel="noopener noreferrer" class="link_hf7f">View system<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and <span class="linkWrapper_B4Bt"><a href="https://developer.android.com/topic/libraries/architecture/viewmodel" target="_blank" rel="noopener noreferrer" class="link_hf7f">View Model<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, but the concepts are the same when using <span class="linkWrapper_B4Bt"><a href="https://developer.android.com/jetpack/compose" target="_blank" rel="noopener noreferrer" class="link_hf7f">Jetpack Compose<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">The example is written in Kotlin, but the concepts are the same for Java.</li>
<li class="">Both <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/kotlin/tree/master/android-sample-kotlin" target="_blank" rel="noopener noreferrer" class="link_hf7f">Kotlin<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/kotlin/tree/master/android-sample-java" target="_blank" rel="noopener noreferrer" class="link_hf7f">Java<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> sample projects are available on our <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/kotlin" target="_blank" rel="noopener noreferrer" class="link_hf7f">SDK repository<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">The tutorial video is available on our <span class="linkWrapper_B4Bt"><a href="https://youtu.be/_GSiYqTLnak" target="_blank" rel="noopener noreferrer" class="link_hf7f">YouTube channel<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ul></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="installation">Installation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#installation" class="hash-link" aria-label="Lien direct vers Installation" title="Lien direct vers Installation" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>The minimum supported Android API level of Logto Android SDK is level 24.</p></div></div></div>
<p>Before you install Logto Android SDK, ensure <code>mavenCentral()</code> is added to your repository configuration in the Gradle project build file:</p>
<div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">settings.gradle.kts</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">dependencyResolutionManagement </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  repositories </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token function" style="color:rgb(80, 250, 123)">mavenCentral</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>Add Logto Android SDK to your dependencies:</p>
<div class="theme-tabs-container tabs-container tabList_q32P"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_DwL7 tabs__item--active">Kotlin</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_DwL7">Groovy</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_bR4Y"><div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">build.gradle.kts</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">dependencies </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token function" style="color:rgb(80, 250, 123)">implementation</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string-literal singleline string" style="color:rgb(255, 121, 198)">"io.logto.sdk:android:1.1.3"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_bR4Y" hidden=""><div class="language-groovy codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">build.gradle</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-groovy codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">dependencies </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  implementation </span><span class="token string" style="color:rgb(255, 121, 198)">'io.logto.sdk:android:1.1.3'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div></div></div></div>
<p>Since the SDK needs internet access, you need to add the following permission to your <code>AndroidManifest.xml</code> file:</p>
<div class="language-xml codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">AndroidManifest.xml</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-xml codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token prolog" style="color:rgb(189, 147, 249)">&lt;?xml version="1.0" encoding="utf-8"?&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">manifest</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">xmlns:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">android</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">http://schemas.android.com/apk/res/android</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)">  </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">xmlns:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">tools</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">http://schemas.android.com/tools</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">&lt;!-- add internet permission --&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">uses-permission</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">android:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">name</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">android.permission.INTERNET</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">/&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">&lt;!-- other configurations... --&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">manifest</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="init-logtoclient">Init LogtoClient<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#init-logtoclient" class="hash-link" aria-label="Lien direct vers Init LogtoClient" title="Lien direct vers Init LogtoClient" translate="no">​</a></h3>
<p>Create a <code>LogtoViewModel.kt</code> and init <code>LogtoClient</code> in this view model:</p>
<div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">LogtoViewModel.kt</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">//...with other imports</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> io</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">logto</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">sdk</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">android</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">LogtoClient</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> io</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">logto</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">sdk</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">android</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">type</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">LogtoConfig</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">LogtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">application</span><span class="token operator">:</span><span class="token plain"> Application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">:</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">AndroidViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">private</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> logtoConfig </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">LogtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          endpoint </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:rgb(255, 121, 198)">"&lt;your-logto-endpoint&gt;"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          appId </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:rgb(255, 121, 198)">"&lt;your-app-id&gt;"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          scopes </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">null</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          resources </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">null</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          usingPersistStorage </span><span class="token operator">=</span><span class="token plain"> </span><span class="token boolean">true</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">private</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> logtoClient </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">LogtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">logtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">companion</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">object</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> Factory</span><span class="token operator">:</span><span class="token plain"> ViewModelProvider</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Factory </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">object</span><span class="token plain"> </span><span class="token operator">:</span><span class="token plain"> ViewModelProvider</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Factory</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token annotation builtin" style="color:rgb(189, 147, 249)">@Suppress</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string-literal singleline string" style="color:rgb(255, 121, 198)">"UNCHECKED_CAST"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">override</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">fun</span><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">T </span><span class="token operator">:</span><span class="token plain"> ViewModel</span><span class="token operator">&gt;</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">create</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                modelClass</span><span class="token operator">:</span><span class="token plain"> Class</span><span class="token operator">&lt;</span><span class="token plain">T</span><span class="token operator">&gt;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                extras</span><span class="token operator">:</span><span class="token plain"> CreationExtras</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token operator">:</span><span class="token plain"> T </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                </span><span class="token comment" style="color:rgb(98, 114, 164)">// Get the Application object from extras</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> application </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">checkNotNull</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">extras</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">APPLICATION_KEY</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">LogtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">as</span><span class="token plain"> T</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>then, create a <code>LogtoViewModel</code> for your <code>MainActivity.kt</code>:</p>
<div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">MainActivity.kt</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">//...with other imports</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> MainActivity </span><span class="token operator">:</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">AppCompatActivity</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">private</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> logtoViewModel</span><span class="token operator">:</span><span class="token plain"> LogtoViewModel </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">by</span><span class="token plain"> viewModels </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> LogtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Factory </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">//...other codes</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uri">Configure redirect URI<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#configure-redirect-uri" class="hash-link" aria-label="Lien direct vers Configure redirect URI" title="Lien direct vers Configure redirect URI" translate="no">​</a></h3>
<p>Let's switch to the Application details page of Logto Console. Add a Redirect URI <code>io.logto.android://io.logto.sample/callback</code> and click "Save changes".</p>
<img alt="Redirect URI in Logto Console" src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/android-redirect-uri.png" width="600px">
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-sign-in-and-sign-out">Implement sign-in and sign-out<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#implement-sign-in-and-sign-out" class="hash-link" aria-label="Lien direct vers Implement sign-in and sign-out" title="Lien direct vers Implement sign-in and sign-out" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>Before calling <code>logtoClient.signIn</code>, make sure you have correctly configured Redirect URI
in Admin Console.</p></div></div></div>
<p>You can use <code>logtoClient.signIn</code> to sign in the user and <code>logtoClient.signOut</code> to sign out the user.</p>
<p>For example, in an Android app:</p>
<div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">LogtoModelView.kt</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">//...with other imports</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">LogtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">application</span><span class="token operator">:</span><span class="token plain"> Application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">:</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">AndroidViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">// ...other codes</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">// Add a live data to observe the authentication status</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">private</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> _authenticated </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">MutableLiveData</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">isAuthenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> authenticated</span><span class="token operator">:</span><span class="token plain"> LiveData</span><span class="token operator">&lt;</span><span class="token plain">Boolean</span><span class="token operator">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">get</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> _authenticated</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">fun</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">context</span><span class="token operator">:</span><span class="token plain"> Activity</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:rgb(255, 121, 198)">"io.logto.android://io.logto.sample/callback"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> logtoException </span><span class="token operator">-&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            logtoException</span><span class="token operator">?</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">let</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">println</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">it</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token comment" style="color:rgb(98, 114, 164)">// Update the live data</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            _authenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">postValue</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">isAuthenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">fun</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">signOut</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">signOut</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> logtoException </span><span class="token operator">-&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            logtoException</span><span class="token operator">?</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">let</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">println</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">it</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token comment" style="color:rgb(98, 114, 164)">// Update the live data</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            _authenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">postValue</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">isAuthenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>Then call the <code>signIn</code> and <code>signOut</code> methods in your activity:</p>
<div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">MainActivity.kt</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> MainActivity </span><span class="token operator">:</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">AppCompatActivity</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">override</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">fun</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">onCreate</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">savedInstanceState</span><span class="token operator">:</span><span class="token plain"> Bundle</span><span class="token operator">?</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token comment" style="color:rgb(98, 114, 164)">//...other codes</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token comment" style="color:rgb(98, 114, 164)">// Assume you have a button with id "sign_in_button" in your layout</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> signInButton </span><span class="token operator">=</span><span class="token plain"> findViewById</span><span class="token operator">&lt;</span><span class="token plain">Button</span><span class="token operator">&gt;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">R</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">id</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">sign_in_button</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        signInButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">setOnClickListener</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            logtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">this</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token comment" style="color:rgb(98, 114, 164)">// Assume you have a button with id "sign_out_button" in your layout</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> signOutButton </span><span class="token operator">=</span><span class="token plain"> findViewById</span><span class="token operator">&lt;</span><span class="token plain">Button</span><span class="token operator">&gt;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">R</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">id</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">sign_out_button</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        signOutButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">setOnClickListener</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">logtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">authenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">// Check if the user is authenticated</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                logtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">signOut</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token comment" style="color:rgb(98, 114, 164)">// Observe the authentication status to update the UI</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        logtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">authenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">observe</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">this</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> authenticated </span><span class="token operator">-&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">authenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                </span><span class="token comment" style="color:rgb(98, 114, 164)">// The user is authenticated</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                signInButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">visibility </span><span class="token operator">=</span><span class="token plain"> View</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">GONE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                signOutButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">visibility </span><span class="token operator">=</span><span class="token plain"> View</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">VISIBLE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">else</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                </span><span class="token comment" style="color:rgb(98, 114, 164)">// The user is not authenticated</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                signInButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">visibility </span><span class="token operator">=</span><span class="token plain"> View</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">VISIBLE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                signOutButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">visibility </span><span class="token operator">=</span><span class="token plain"> View</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">GONE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="checkpoint-test-your-application">Checkpoint: Test your application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Lien direct vers Checkpoint: Test your application" title="Lien direct vers Checkpoint: Test your application" translate="no">​</a></h3>
<p>Now, you can test your application:</p>
<ol>
<li class="">Run your application, you will see the sign-in button.</li>
<li class="">Click the sign-in button, the SDK will init the sign-in process and redirect you to the Logto sign-in page.</li>
<li class="">After you signed in, you will be redirected back to your application and see the sign-out button.</li>
<li class="">Click the sign-out button to clear token storage and sign out.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="add-connector-connector">Add Okta enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#add-connector-connector" class="hash-link" aria-label="Lien direct vers Add Okta enterprise SSO connector" title="Lien direct vers Add Okta enterprise SSO connector" translate="no">​</a></h2>
<p>To simplify access management and gain enterprise-level safeguards for your big clients, connect with <!-- -->Android<!-- --> as a federated identity provider. The Logto enterprise SSO connector helps you establish this connection in minutes by allowing several parameter inputs.</p>
<p>To add an enterprise SSO connector, simply follow these steps:</p>
<ol>
<li class="">Navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto console &gt; Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-page.png" alt="SSO page">
<ol start="2">
<li class="">Click "Add enterprise connector" button and choose your SSO provider type. Choose from prebuilt connectors for Microsoft Entra ID (Azure AD), Google Workspace, and Okta, or create a custom SSO connection using the standard OpenID Connect (OIDC) or SAML protocol.</li>
<li class="">Provide a unique name (e.g., SSO sign-in for Acme Company).</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/select-your-sso-provider.png" alt="Select your SSO provider">
<ol start="4">
<li class="">Configure the connection with your IdP in the "Connection" tab. Check the guides above for each connector types.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-connection-settings.png" alt="SSO connection">
<ol start="5">
<li class="">Customize the SSO experience and enterprise’s <strong>email domain</strong> in the "Experience" tab. Users sign in with the SSO-enabled email domain will be redirected to SSO authentication.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-experience-settings.png" alt="SSO experience">
<ol start="6">
<li class="">Save changes.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="set-up-connectorconfigname">Set up OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Lien direct vers Set up OIDC application on Okta admin portal" title="Lien direct vers Set up OIDC application on Okta admin portal" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-okta-admin-portal">Step 1: Create an OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#step-1-create-an-oidc-application-on-okta-admin-portal" class="hash-link" aria-label="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" title="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" translate="no">​</a></h3>
<ul>
<li class="">Visit the Okta admin portal and sign in as an administrator.</li>
<li class="">Navigate to the <code>Applications</code>/<code>Applications</code> page using the side menu.</li>
<li class="">Click the <code>Create App Integration</code> button to create a new OIDC application.</li>
<li class="">Select the <code>OIDC - OpenID Connect</code> option as the <code>Sign-in method</code>.</li>
<li class="">Select the <code>Web Application</code> option as the <code>Application type</code>.</li>
</ul>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_create_application.webp" alt="Okta create application">
<p>Click the <code>Next</code> button to continue.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-the-application-settings">Step 2: Configure the application settings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Lien direct vers Step 2: Configure the application settings" title="Lien direct vers Step 2: Configure the application settings" translate="no">​</a></h3>
<ol>
<li class="">Provide an <code>App integration name</code>. It will be used as the identifier of your OIDC application.</li>
<li class="">Add a new <code>Sign-in redirect URIs</code> using the Logto SSO connector's callback URL.</li>
</ol>
<p>This is the URI that the Okta will redirect the user's browser after successful authentication. After a user successfully authenticates with the IdP, the IdP redirects the user's browser back to this designated URI along with an authorization code. Logto will complete the authentication process based on the authorization code received from this URI.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_application_settings.webp" alt="Okta application settings">
<ol start="3">
<li class="">Assign users to the application.</li>
</ol>
<p>Based on the <code>Assignments</code> settings, you can choose to assign the application to all users or specific users/groups.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_assign_users.webp" alt="Okta assign users">
<p>Click the <code>Save</code> button to save the application settings.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-set-up-logto-connector-with-the-client-credentials">Step 3: Set up Logto connector with the client credentials<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#step-3-set-up-logto-connector-with-the-client-credentials" class="hash-link" aria-label="Lien direct vers Step 3: Set up Logto connector with the client credentials" title="Lien direct vers Step 3: Set up Logto connector with the client credentials" translate="no">​</a></h3>
<p>After successfully creating the OIDC application, you will be redirected to the application details page.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_client_credentials.webp" alt="Okta client credentials">
<p>Copy the <code>client ID</code> and <code>client secret</code> and fill in the corresponding fields on the Logto SSO connector <code>Connection</code> tab.</p>
<p>Use your Okta domain as the <code>issuer</code>. Example: <code>https://dev-12345678.okta.com</code>. Once you have filled in all the fields, click the <code>Save</code> button to save the connector settings.</p>
<p>If the <code>issuer</code> link you provided is valid, you will see a parsed full list of Okta IdP configurations shown below the <code>issuer</code> field.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-additional-scopes-optional">Step 4: Additional scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Lien direct vers Step 4: Additional scopes (Optional)" title="Lien direct vers Step 4: Additional scopes (Optional)" translate="no">​</a></h3>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their Okta accounts. Requesting additional Okta permissions requires configuration on both sides:</p>
<p><strong>In Okta admin console:</strong></p>
<ol>
<li class="">Navigate to <strong>Applications &gt; Applications</strong> and select your OIDC application.</li>
<li class="">Go to the <strong>Assignments</strong> tab to ensure your app has access to the required users and groups.</li>
<li class="">For custom scopes, navigate to <strong>Security &gt; API &gt; Authorization Servers</strong> and select your authorization server.</li>
<li class="">Add custom scopes if needed:<!-- -->
<ul>
<li class="">Click <strong>Scopes</strong> and then <strong>Add Scope</strong></li>
<li class="">Define scope names like <code>okta.users.read</code> or <code>okta.groups.read</code> for accessing Okta APIs</li>
<li class="">Configure consent requirements for each scope</li>
</ul>
</li>
</ol>
<p>For a complete list of available scopes and their descriptions, please refer to the <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/api/openapi/okta-oauth/guides/overview/#scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta OIDC documentation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>In Logto Okta connector:</strong></p>
<ol>
<li class="">Logto automatically includes <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information. You can leave the <code>Scopes</code> field blank if you only need basic user information.</li>
<li class="">Add <code>offline_access</code> to the <code>Scopes</code> field if you plan to store tokens for persistent API access. This scope enables refresh tokens for long-lived API access.</li>
<li class="">Add additional scopes (separated by spaces) in the <code>Scopes</code> field to request more data from Okta. For example: <code>okta.users.read okta.groups.read</code></li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>If your app requests these scopes to access Okta APIs and perform actions, make sure to enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. See the next section for details.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-store-tokens-to-access-okta-apis-optional">Step 5: Store tokens to access Okta APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#step-5-store-tokens-to-access-okta-apis-optional" class="hash-link" aria-label="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" title="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" translate="no">​</a></h3>
<p>If you want to access <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/guides/request-user-consent/main/#enable-consent-for-scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta scopes<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and perform actions with user authorization, Logto needs to get specific scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in your Okta developer console API permissions configuration and Logto Okta connector.</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. Logto will securely store Okta access and refresh tokens in the Secret Vault.</li>
<li class="">To ensure refresh tokens are returned, add the <code>offline_access</code> scope to your Okta application permissions and include it in your Logto Okta connector scopes. This scope allows your application to maintain access to resources for extended periods.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-6-set-email-domains-and-enable-the-sso-connector">Step 6: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#step-6-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Lien direct vers Step 6: Set email domains and enable the SSO connector" title="Lien direct vers Step 6: Set email domains and enable the SSO connector" translate="no">​</a></h3>
<p>Provide the <code>email domains</code> of your organization on Logto's connector <code>SSO experience</code> tab. This will enable the SSO connector as an authentication method for those users.</p>
<p>Users with email addresses in the specified domains will be redirected to use your SSO connector as their only authentication method.</p>
<p>For more details about creating OIDC integration with Okta, please check <span class="linkWrapper_B4Bt"><a href="https://help.okta.com/oie/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm" target="_blank" rel="noopener noreferrer" class="link_hf7f">Create OIDC App Integrations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#save-your-configuration" class="hash-link" aria-label="Lien direct vers Save your configuration" title="Lien direct vers Save your configuration" translate="no">​</a></h3>
<p>Double check you have filled out necessary values in the Logto connector configuration area. Click
"Save and Done" (or "Save changes") and the <!-- -->Okta enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable Okta enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" title="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" translate="no">​</a></h2>
<p>You don’t need to configure enterprise connectors individually, Logto simplifies SSO integration into your applications with just one click.</p>
<ol>
<li class="">Navigate to: <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/sign-in-experience/sign-up-and-sign-in" target="_blank" rel="noopener noreferrer" class="link_hf7f">Console &gt; Sign-in &amp; account &gt; Sign-up and sign-in<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">Enable the "Enterprise SSO" toggle.</li>
<li class="">Save changes.</li>
</ol>
<p>Once enabled, a "Single Sign-On" button will appear on your sign-in page. Enterprise users with SSO-enabled email domains can access your services using their enterprise identity providers (IdPs).</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-email-auto-navigation.png" alt="Auto detect SSO sign-in via email domain">
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-link-button-navigation.png" alt="Navigate to SSO sign-in via manually click link button">
<p>To learn more about the SSO user experience, including SP-initiated SSO and IdP-initiated SSO, refer to User flows: <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="testing-and-validation">Testing and Validation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#testing-and-validation" class="hash-link" aria-label="Lien direct vers Testing and Validation" title="Lien direct vers Testing and Validation" translate="no">​</a></h2>
<p>Return to your <!-- -->Android (Kotlin / Java)<!-- --> app. You should now be able to sign in with <!-- -->Okta enterprise SSO<!-- -->. Enjoy!</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="further-readings">Further readings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#further-readings" class="hash-link" aria-label="Lien direct vers Further readings" title="Lien direct vers Further readings" translate="no">​</a></h2>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows" target="_blank" rel="noopener noreferrer" class="link_hf7f">End-user flows<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Logto provides a out-of-the-box authentication flows including MFA and enterprise SSO, along with powerful APIs for flexible implementation of account settings, security verification, and multi-tenant experience.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/authorization" target="_blank" rel="noopener noreferrer" class="link_hf7f">Authorization<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Authorization defines the actions a user can do or resources they can access after being authenticated. Explore how to protect your API for native and single-page applications and implement Role-based Access Control (RBAC).</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/organizations" target="_blank" rel="noopener noreferrer" class="link_hf7f">Organizations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Particularly effective in multi-tenant SaaS and B2B apps, the organization feature enable tenant creation, member management, organization-level RBAC, and just-in-time-provisioning.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://blog.logto.io/ciam-101-intro-authn-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Customer IAM series<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> Our serial blog posts about Customer (or Consumer) Identity and Access Management, from 101 to advanced topics and beyond.</p>]]></content:encoded>
            <category>SSO providers</category>
            <category>okta-enterprise-sso</category>
            <category>android</category>
            <category>kotlin/java</category>
            <category>SAML authentication</category>
            <category>enterprise login</category>
            <category>SSO login</category>
        </item>
        <item>
            <title><![CDATA[How to build Okta enterprise SSO with .NET Core (Blazor Server)]]></title>
            <link>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto</link>
            <guid>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto</guid>
            <pubDate>Fri, 17 Apr 2026 02:54:06 GMT</pubDate>
            <description><![CDATA[{/*]]></description>
            <content:encoded><![CDATA[
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">For our new friends<!-- -->:</span><br><br><p><span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> is an Auth0 alternative designed for modern apps and SaaS products. It
offers both <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/logto" target="_blank" rel="noopener noreferrer" class="link_hf7f">Open-source<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>
services to help you quickly launch your identity and management (IAM) system. Enjoy authentication,
authorization, and multi-tenant management <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">all in one<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.<!-- --> </p><p>We recommend starting with a free development tenant on <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. This allows you to explore all the features easily.</p></div></div></div>
<p>In this article, we will go through the steps to quickly build the <!-- -->Okta enterprise SSO<!-- --> sign-in
experience (user authentication) with <a href="https://learn.microsoft.com/en-us/aspnet/core/blazor/hosting-models?view=aspnetcore-9.0#blazor-server" target="_blank" rel="noopener">.NET Core (Blazor Server)</a> and <span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>Prerequisites</strong></p>
<ul>
<li class="">A running Logto instance. Check out the <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">introduction page<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to get started.</li>
<li class="">Basic knowledge of <a href="https://learn.microsoft.com/en-us/aspnet/core/blazor/hosting-models?view=aspnetcore-9.0#blazor-server" target="_blank" rel="noopener">.NET Core (Blazor Server)</a>.</li>
<li class="">A usable <!-- -->Okta enterprise SSO<!-- --> account.</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="create-an-application-in-logto">Create an application in Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Lien direct vers Create an application in Logto" title="Lien direct vers Create an application in Logto" translate="no">​</a></h2>
<p>Logto is based on OpenID Connect (OIDC) authentication and OAuth 2.0 authorization. It supports federated identity management across multiple applications, commonly called Single Sign-On (SSO).</p>
<p>To create your <!-- -->Traditional web<!-- --> application, simply follow these steps:</p>
<ol>
<li class="">Open the <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. In the "Get started" section, click the "View all" link to open the application frameworks list. Alternatively, you can navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/applications" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console &gt; Applications<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, and click the "Create application" button.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/get-started.png" alt="Get started">
</li>
<li class="">In the opening modal, click the "<!-- -->Traditional web<!-- -->" section or filter all the available "<!-- -->Traditional web<!-- -->" frameworks using the quick filter checkboxes on the left. Click the "<!-- -->.Net Core (Blazor Server)<!-- -->" framework card to start creating your application.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/framework-list.png" alt="Frameworks">
</li>
<li class="">Enter the application name, e.g., "Bookstore," and click "Create application".</li>
</ol>
<p>🎉 Ta-da! You just created your first application in Logto. You'll see a congrats page which includes a detailed integration guide. Follow the guide to see what the experience will be in your application.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="integrate-with-logto">Integrate .Net Core (Blazor Server) with Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#integrate-with-logto" class="hash-link" aria-label="Lien direct vers Integrate .Net Core (Blazor Server) with Logto" title="Lien direct vers Integrate .Net Core (Blazor Server) with Logto" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><ul>
<li class="">The following demonstration is built on .NET Core 8.0. The SDK is compatible with .NET 6.0 or higher.</li>
<li class="">The .NET Core sample projects are available in the <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/csharp" target="_blank" rel="noopener noreferrer" class="link_hf7f">GitHub repository<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ul></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="installation">Installation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#installation" class="hash-link" aria-label="Lien direct vers Installation" title="Lien direct vers Installation" translate="no">​</a></h3>
<p>Add the NuGet package to your project:</p>
<div class="language-bash codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-bash codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">dotnet </span><span class="token function" style="color:rgb(80, 250, 123)">add</span><span class="token plain"> package Logto.AspNetCore.Authentication</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="add-logto-authentication">Add Logto authentication<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#add-logto-authentication" class="hash-link" aria-label="Lien direct vers Add Logto authentication" title="Lien direct vers Add Logto authentication" translate="no">​</a></h3>
<p>Open <code>Startup.cs</code> (or <code>Program.cs</code>) and add the following code to register Logto authentication services:</p>
<div class="language-csharp codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">Program.cs</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-csharp codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">using</span><span class="token plain"> </span><span class="token namespace">Logto</span><span class="token namespace punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token namespace">AspNetCore</span><span class="token namespace punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token namespace">Authentication</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token class-name keyword" style="color:rgb(189, 147, 249);font-style:italic">var</span><span class="token plain"> builder </span><span class="token operator">=</span><span class="token plain"> WebApplication</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">CreateBuilder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">args</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">builder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Services</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">AddLogtoAuthentication</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">options </span><span class="token operator">=&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  options</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Endpoint </span><span class="token operator">=</span><span class="token plain"> builder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Configuration</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">"Logto:Endpoint"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token operator">!</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  options</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">AppId </span><span class="token operator">=</span><span class="token plain"> builder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Configuration</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">"Logto:AppId"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token operator">!</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  options</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">AppSecret </span><span class="token operator">=</span><span class="token plain"> builder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Configuration</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">"Logto:AppSecret"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<p>The <code>AddLogtoAuthentication</code> method will do the following things:</p>
<ul>
<li class="">Set the default authentication scheme to <code>LogtoDefaults.CookieScheme</code>.</li>
<li class="">Set the default challenge scheme to <code>LogtoDefaults.AuthenticationScheme</code>.</li>
<li class="">Set the default sign-out scheme to <code>LogtoDefaults.AuthenticationScheme</code>.</li>
<li class="">Add cookie and OpenID Connect authentication handlers to the authentication scheme.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="sign-in-and-sign-out-flows">Sign-in and sign-out flows<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#sign-in-and-sign-out-flows" class="hash-link" aria-label="Lien direct vers Sign-in and sign-out flows" title="Lien direct vers Sign-in and sign-out flows" translate="no">​</a></h3>
<p>Before we proceed, there are two confusing terms in the .NET Core authentication middleware that we need to clarify:</p>
<ol>
<li class=""><strong>CallbackPath</strong>: The URI that Logto will redirect the user back to after the user has signed in (the "redirect URI" in Logto)</li>
<li class=""><strong>RedirectUri</strong>: The URI that will be redirected to after necessary actions have been taken in the Logto authentication middleware.</li>
</ol>
<p>The sign-in process can be illustrated as follows:</p>
<!-- -->
<br>
<p>Similarly, .NET Core also has <strong>SignedOutCallbackPath</strong> and <strong>RedirectUri</strong> for the sign-out flow.</p>
<p>For the sake of clarity, we'll refer them as follows:</p>
<table><thead><tr><th>Term we use</th><th>.NET Core term</th></tr></thead><tbody><tr><td>Logto redirect URI</td><td>CallbackPath</td></tr><tr><td>Logto post sign-out redirect URI</td><td>SignedOutCallbackPath</td></tr><tr><td>Application redirect URI</td><td>RedirectUri</td></tr></tbody></table>
<details class="details_Qsrn details_Jw1Q" data-collapsed="true"><summary><h3 class="anchor anchorTargetStickyNavbar_iJWz" id="regarding-redirect-based-sign-in">Regarding redirect-based sign-in<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Lien direct vers Regarding redirect-based sign-in" title="Lien direct vers Regarding redirect-based sign-in" translate="no">​</a></h3></summary><div><div class="collapsibleContent_brv9"><ol>
<li class="">This authentication process follows the <span class="linkWrapper_B4Bt"><a href="https://openid.net/specs/openid-connect-core-1_0.html" target="_blank" rel="noopener noreferrer" class="link_hf7f">OpenID Connect (OIDC)<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> protocol, and Logto enforces strict security measures to protect user sign-in.</li>
<li class="">If you have multiple apps, you can use the same identity provider (Logto). Once the user signs in to one app, Logto will automatically complete the sign-in process when the user accesses another app.</li>
</ol><p>To learn more about the rationale and benefits of redirect-based sign-in, see <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/concepts/sign-in-experience" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Logto sign-in experience explained<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p></div></div></details>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uris">Configure redirect URIs<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#configure-redirect-uris" class="hash-link" aria-label="Lien direct vers Configure redirect URIs" title="Lien direct vers Configure redirect URIs" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>In the following code snippets, we assume your app is running on <code>http://localhost:3000/</code>.</p></div></div></div>
<p>First, let's configure the <strong>Logto redirect URI</strong>. Add the following URI to the "Redirect URIs" list in the Logto application details page:</p>
<div class="language-text codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-text codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">http://localhost:3000/Callback</span><br></span></code></pre></div></div>
<p>To configure the <strong>Logto post sign-out redirect URI</strong>, add the following URI to the "Post sign-out redirect URIs" list in the Logto application details page:</p>
<div class="language-text codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-text codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">http://localhost:3000/SignedOutCallback</span><br></span></code></pre></div></div>
<h4 class="anchor anchorTargetStickyNavbar_iJWz" id="change-the-default-paths">Change the default paths<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#change-the-default-paths" class="hash-link" aria-label="Lien direct vers Change the default paths" title="Lien direct vers Change the default paths" translate="no">​</a></h4>
<p>The <strong>Logto redirect URI</strong> has a default path of <code>/Callback</code>, and the <strong>Logto post sign-out redirect URI</strong> has a default path of <code>/SignedOutCallback</code>.</p>
<p>You can leave them as are if there's no special requirement. If you want to change it, you can set the <code>CallbackPath</code> and <code>SignedOutCallbackPath</code> property for <code>LogtoOptions</code>:</p>
<div class="language-csharp codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">Program.cs</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-csharp codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">builder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Services</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">AddLogtoAuthentication</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">options </span><span class="token operator">=&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">// Other configurations...</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">  options</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">CallbackPath </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"/Foo"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">  options</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">SignedOutCallbackPath </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"/Bar"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<p>Remember to update the value in the Logto application details page accordingly.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="add-routes">Add routes<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#add-routes" class="hash-link" aria-label="Lien direct vers Add routes" title="Lien direct vers Add routes" translate="no">​</a></h3>
<p>Since Blazor Server uses SignalR to communicate between the server and the client, this means methods that directly manipulate the HTTP context (like issuing challenges or redirects) don't work as expected when called from a Blazor component.</p>
<p>To make it right, we need to explicitly add two endpoints for sign-in and sign-out redirects:</p>
<div class="language-csharp codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">Program.cs</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-csharp codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">app</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">MapGet</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"/SignIn"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> context </span><span class="token operator">=&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token operator">!</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">User</span><span class="token punctuation" style="color:rgb(248, 248, 242)">?.</span><span class="token plain">Identity</span><span class="token punctuation" style="color:rgb(248, 248, 242)">?.</span><span class="token plain">IsAuthenticated </span><span class="token operator">??</span><span class="token plain"> </span><span class="token boolean">false</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">ChallengeAsync</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">new</span><span class="token plain"> </span><span class="token constructor-invocation class-name">AuthenticationProperties</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> RedirectUri </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"/"</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">else</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Response</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Redirect</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"/"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">app</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">MapGet</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"/SignOut"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> context </span><span class="token operator">=&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">User</span><span class="token punctuation" style="color:rgb(248, 248, 242)">?.</span><span class="token plain">Identity</span><span class="token punctuation" style="color:rgb(248, 248, 242)">?.</span><span class="token plain">IsAuthenticated </span><span class="token operator">??</span><span class="token plain"> </span><span class="token boolean">false</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">SignOutAsync</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">new</span><span class="token plain"> </span><span class="token constructor-invocation class-name">AuthenticationProperties</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> RedirectUri </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"/"</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">else</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Response</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Redirect</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"/"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<p>Now we can redirect to these endpoints to trigger sign-in and sign-out.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-sign-insign-out-buttons">Implement sign-in/sign-out buttons<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#implement-sign-insign-out-buttons" class="hash-link" aria-label="Lien direct vers Implement sign-in/sign-out buttons" title="Lien direct vers Implement sign-in/sign-out buttons" translate="no">​</a></h3>
<p>In the Razor component, add the following code:</p>
<div class="language-cshtml codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">Components/Pages/Index.razor</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-cshtml codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token directive keyword" style="color:rgb(189, 147, 249);font-style:italic">@using</span><span class="token directive"> </span><span class="token directive csharp language-csharp">Microsoft</span><span class="token directive csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token directive csharp language-csharp">AspNetCore</span><span class="token directive csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token directive csharp language-csharp">Components</span><span class="token directive csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token directive csharp language-csharp">Authorization</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token directive keyword" style="color:rgb(189, 147, 249);font-style:italic">@using</span><span class="token directive"> </span><span class="token directive csharp language-csharp">System</span><span class="token directive csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token directive csharp language-csharp">Security</span><span class="token directive csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token directive csharp language-csharp">Claims</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token directive keyword" style="color:rgb(189, 147, 249);font-style:italic">@inject</span><span class="token directive"> </span><span class="token directive csharp language-csharp">AuthenticationStateProvider AuthenticationStateProvider</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token directive keyword" style="color:rgb(189, 147, 249);font-style:italic">@inject</span><span class="token directive"> </span><span class="token directive csharp language-csharp">NavigationManager NavigationManager</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token razor-comment comment" style="color:rgb(98, 114, 164)">@* ... *@</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain">Is authenticated: </span><span class="token value variable keyword" style="color:rgb(189, 147, 249);font-style:italic">@</span><span class="token value variable csharp language-csharp" style="color:rgb(189, 147, 249);font-style:italic">User</span><span class="token value variable csharp language-csharp punctuation" style="color:rgb(248, 248, 242);font-style:italic">.</span><span class="token value variable csharp language-csharp" style="color:rgb(189, 147, 249);font-style:italic">Identity</span><span class="token value variable csharp language-csharp punctuation" style="color:rgb(248, 248, 242);font-style:italic">?.</span><span class="token value variable csharp language-csharp" style="color:rgb(189, 147, 249);font-style:italic">IsAuthenticated</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token block keyword" style="color:rgb(189, 147, 249);font-style:italic">@if</span><span class="token block"> </span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token block csharp language-csharp">User</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token block csharp language-csharp">Identity</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">?.</span><span class="token block csharp language-csharp">IsAuthenticated </span><span class="token block csharp language-csharp operator">==</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp boolean">true</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp"></span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">    </span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)">button</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)"> </span><span class="token block csharp language-csharp html tag attr-name" style="color:rgb(241, 250, 140)">@onclick</span><span class="token block csharp language-csharp html tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token block csharp language-csharp html tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token block csharp language-csharp html tag attr-value" style="color:rgb(255, 121, 198)">SignOut</span><span class="token block csharp language-csharp html tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token block csharp language-csharp html">Sign out</span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)">button</span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp"></span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp"></span><span class="token block csharp language-csharp keyword" style="color:rgb(189, 147, 249);font-style:italic">else</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp"></span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">    </span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)">button</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)"> </span><span class="token block csharp language-csharp html tag attr-name" style="color:rgb(241, 250, 140)">@onclick</span><span class="token block csharp language-csharp html tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token block csharp language-csharp html tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token block csharp language-csharp html tag attr-value" style="color:rgb(255, 121, 198)">SignIn</span><span class="token block csharp language-csharp html tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token block csharp language-csharp html">Sign in</span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)">button</span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp"></span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token razor-comment comment" style="color:rgb(98, 114, 164)">@* ... *@</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token block keyword" style="color:rgb(189, 147, 249);font-style:italic">@code</span><span class="token block"> </span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">    </span><span class="token block csharp language-csharp keyword" style="color:rgb(189, 147, 249);font-style:italic">private</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp return-type class-name">ClaimsPrincipal</span><span class="token block csharp language-csharp return-type class-name punctuation" style="color:rgb(248, 248, 242)">?</span><span class="token block csharp language-csharp"> User </span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp keyword" style="color:rgb(189, 147, 249);font-style:italic">get</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp keyword" style="color:rgb(189, 147, 249);font-style:italic">set</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">    </span><span class="token block csharp language-csharp keyword" style="color:rgb(189, 147, 249);font-style:italic">protected</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp keyword" style="color:rgb(189, 147, 249);font-style:italic">override</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp return-type class-name">Task</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp function" style="color:rgb(80, 250, 123)">OnInitializedAsync</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">    </span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">        </span><span class="token block csharp language-csharp class-name keyword" style="color:rgb(189, 147, 249);font-style:italic">var</span><span class="token block csharp language-csharp"> authState </span><span class="token block csharp language-csharp operator">=</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp keyword" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token block csharp language-csharp"> AuthenticationStateProvider</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token block csharp language-csharp function" style="color:rgb(80, 250, 123)">GetAuthenticationStateAsync</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">        User </span><span class="token block csharp language-csharp operator">=</span><span class="token block csharp language-csharp"> authState</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token block csharp language-csharp">User</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">    </span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">    </span><span class="token block csharp language-csharp keyword" style="color:rgb(189, 147, 249);font-style:italic">private</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp return-type class-name keyword" style="color:rgb(189, 147, 249);font-style:italic">void</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp function" style="color:rgb(80, 250, 123)">SignIn</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">    </span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">        NavigationManager</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token block csharp language-csharp function" style="color:rgb(80, 250, 123)">NavigateTo</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token block csharp language-csharp string" style="color:rgb(255, 121, 198)">"/SignIn"</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp named-parameter punctuation" style="color:rgb(248, 248, 242)">forceLoad</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp boolean">true</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">    </span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">    </span><span class="token block csharp language-csharp keyword" style="color:rgb(189, 147, 249);font-style:italic">private</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp return-type class-name keyword" style="color:rgb(189, 147, 249);font-style:italic">void</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp function" style="color:rgb(80, 250, 123)">SignOut</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">    </span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">        NavigationManager</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token block csharp language-csharp function" style="color:rgb(80, 250, 123)">NavigateTo</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token block csharp language-csharp string" style="color:rgb(255, 121, 198)">"/SignOut"</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp named-parameter punctuation" style="color:rgb(248, 248, 242)">forceLoad</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp boolean">true</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">    </span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp"></span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p><strong>Explanation</strong>:</p>
<ul>
<li class="">The injected <code>AuthenticationStateProvider</code> is used to get the current user's authentication state, and populate the <code>User</code> property.</li>
<li class="">The <code>SignIn</code> and <code>SignOut</code> methods are used to redirect the user to the sign-in and sign-out endpoints respectively. Since the nature of Blazor Server, we need to use <code>NavigationManager</code> with force load to trigger the redirection.</li>
</ul>
<p>The page will show the "Sign in" button if the user is not authenticated, and show the "Sign out" button if the user is authenticated.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="the-authorizeview--component">The <code>&lt;AuthorizeView /&gt;</code> component<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#the-authorizeview--component" class="hash-link" aria-label="Lien direct vers the-authorizeview--component" title="Lien direct vers the-authorizeview--component" translate="no">​</a></h3>
<p>Alternatively, you can use the <code>AuthorizeView</code> component to conditionally render content based on the user's authentication state. This component is useful when you want to show different content to authenticated and unauthenticated users.</p>
<p>In your Razor component, add the following code:</p>
<div class="language-cshtml codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">Components/Pages/Index.razor</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-cshtml codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token directive keyword" style="color:rgb(189, 147, 249);font-style:italic">@using</span><span class="token directive"> </span><span class="token directive csharp language-csharp">Microsoft</span><span class="token directive csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token directive csharp language-csharp">AspNetCore</span><span class="token directive csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token directive csharp language-csharp">Components</span><span class="token directive csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token directive csharp language-csharp">Authorization</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token razor-comment comment" style="color:rgb(98, 114, 164)">@* ... *@</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">AuthorizeView</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">Authorized</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain">Name: </span><span class="token value variable keyword" style="color:rgb(189, 147, 249);font-style:italic">@</span><span class="token value variable csharp language-csharp" style="color:rgb(189, 147, 249);font-style:italic">User</span><span class="token value variable csharp language-csharp punctuation" style="color:rgb(248, 248, 242);font-style:italic">?.</span><span class="token value variable csharp language-csharp" style="color:rgb(189, 147, 249);font-style:italic">Identity</span><span class="token value variable csharp language-csharp punctuation" style="color:rgb(248, 248, 242);font-style:italic">?.</span><span class="token value variable csharp language-csharp" style="color:rgb(189, 147, 249);font-style:italic">Name</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token razor-comment comment" style="color:rgb(98, 114, 164)">@* Content for authenticated users *@</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">Authorized</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">NotAuthorized</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token razor-comment comment" style="color:rgb(98, 114, 164)">@* Content for unauthenticated users *@</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">NotAuthorized</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">AuthorizeView</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token razor-comment comment" style="color:rgb(98, 114, 164)">@* ... *@</span><br></span></code></pre></div></div>
<p>The <code>AuthorizeView</code> component requires a cascading parameter of type <code>Task&lt;AuthenticationState&gt;</code>. A direct way to get this parameter is to add the <code>&lt;CascadingAuthenticationState&gt;</code> component. However, due to the nature of Blazor Server, we cannot simply add the component to the layout or the root component (it may not work as expected). Instead, we can add the following code to the builder (<code>Program.cs</code> or <code>Startup.cs</code>) to provide the cascading parameter:</p>
<div class="language-csharp codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">Program.cs</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-csharp codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">builder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Services</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">AddCascadingAuthenticationState</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<p>Then you can use the <code>AuthorizeView</code> component in every component that needs it.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="checkpoint-test-your-application">Checkpoint: Test your application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Lien direct vers Checkpoint: Test your application" title="Lien direct vers Checkpoint: Test your application" translate="no">​</a></h3>
<p>Now, you can test your application:</p>
<ol>
<li class="">Run your application, you will see the sign-in button.</li>
<li class="">Click the sign-in button, the SDK will init the sign-in process and redirect you to the Logto sign-in page.</li>
<li class="">After you signed in, you will be redirected back to your application and see the sign-out button.</li>
<li class="">Click the sign-out button to clear token storage and sign out.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="add-connector-connector">Add Okta enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#add-connector-connector" class="hash-link" aria-label="Lien direct vers Add Okta enterprise SSO connector" title="Lien direct vers Add Okta enterprise SSO connector" translate="no">​</a></h2>
<p>To simplify access management and gain enterprise-level safeguards for your big clients, connect with <!-- -->.Net Core (Blazor Server)<!-- --> as a federated identity provider. The Logto enterprise SSO connector helps you establish this connection in minutes by allowing several parameter inputs.</p>
<p>To add an enterprise SSO connector, simply follow these steps:</p>
<ol>
<li class="">Navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto console &gt; Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-page.png" alt="SSO page">
<ol start="2">
<li class="">Click "Add enterprise connector" button and choose your SSO provider type. Choose from prebuilt connectors for Microsoft Entra ID (Azure AD), Google Workspace, and Okta, or create a custom SSO connection using the standard OpenID Connect (OIDC) or SAML protocol.</li>
<li class="">Provide a unique name (e.g., SSO sign-in for Acme Company).</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/select-your-sso-provider.png" alt="Select your SSO provider">
<ol start="4">
<li class="">Configure the connection with your IdP in the "Connection" tab. Check the guides above for each connector types.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-connection-settings.png" alt="SSO connection">
<ol start="5">
<li class="">Customize the SSO experience and enterprise’s <strong>email domain</strong> in the "Experience" tab. Users sign in with the SSO-enabled email domain will be redirected to SSO authentication.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-experience-settings.png" alt="SSO experience">
<ol start="6">
<li class="">Save changes.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="set-up-connectorconfigname">Set up OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Lien direct vers Set up OIDC application on Okta admin portal" title="Lien direct vers Set up OIDC application on Okta admin portal" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-okta-admin-portal">Step 1: Create an OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#step-1-create-an-oidc-application-on-okta-admin-portal" class="hash-link" aria-label="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" title="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" translate="no">​</a></h3>
<ul>
<li class="">Visit the Okta admin portal and sign in as an administrator.</li>
<li class="">Navigate to the <code>Applications</code>/<code>Applications</code> page using the side menu.</li>
<li class="">Click the <code>Create App Integration</code> button to create a new OIDC application.</li>
<li class="">Select the <code>OIDC - OpenID Connect</code> option as the <code>Sign-in method</code>.</li>
<li class="">Select the <code>Web Application</code> option as the <code>Application type</code>.</li>
</ul>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_create_application.webp" alt="Okta create application">
<p>Click the <code>Next</code> button to continue.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-the-application-settings">Step 2: Configure the application settings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Lien direct vers Step 2: Configure the application settings" title="Lien direct vers Step 2: Configure the application settings" translate="no">​</a></h3>
<ol>
<li class="">Provide an <code>App integration name</code>. It will be used as the identifier of your OIDC application.</li>
<li class="">Add a new <code>Sign-in redirect URIs</code> using the Logto SSO connector's callback URL.</li>
</ol>
<p>This is the URI that the Okta will redirect the user's browser after successful authentication. After a user successfully authenticates with the IdP, the IdP redirects the user's browser back to this designated URI along with an authorization code. Logto will complete the authentication process based on the authorization code received from this URI.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_application_settings.webp" alt="Okta application settings">
<ol start="3">
<li class="">Assign users to the application.</li>
</ol>
<p>Based on the <code>Assignments</code> settings, you can choose to assign the application to all users or specific users/groups.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_assign_users.webp" alt="Okta assign users">
<p>Click the <code>Save</code> button to save the application settings.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-set-up-logto-connector-with-the-client-credentials">Step 3: Set up Logto connector with the client credentials<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#step-3-set-up-logto-connector-with-the-client-credentials" class="hash-link" aria-label="Lien direct vers Step 3: Set up Logto connector with the client credentials" title="Lien direct vers Step 3: Set up Logto connector with the client credentials" translate="no">​</a></h3>
<p>After successfully creating the OIDC application, you will be redirected to the application details page.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_client_credentials.webp" alt="Okta client credentials">
<p>Copy the <code>client ID</code> and <code>client secret</code> and fill in the corresponding fields on the Logto SSO connector <code>Connection</code> tab.</p>
<p>Use your Okta domain as the <code>issuer</code>. Example: <code>https://dev-12345678.okta.com</code>. Once you have filled in all the fields, click the <code>Save</code> button to save the connector settings.</p>
<p>If the <code>issuer</code> link you provided is valid, you will see a parsed full list of Okta IdP configurations shown below the <code>issuer</code> field.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-additional-scopes-optional">Step 4: Additional scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Lien direct vers Step 4: Additional scopes (Optional)" title="Lien direct vers Step 4: Additional scopes (Optional)" translate="no">​</a></h3>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their Okta accounts. Requesting additional Okta permissions requires configuration on both sides:</p>
<p><strong>In Okta admin console:</strong></p>
<ol>
<li class="">Navigate to <strong>Applications &gt; Applications</strong> and select your OIDC application.</li>
<li class="">Go to the <strong>Assignments</strong> tab to ensure your app has access to the required users and groups.</li>
<li class="">For custom scopes, navigate to <strong>Security &gt; API &gt; Authorization Servers</strong> and select your authorization server.</li>
<li class="">Add custom scopes if needed:<!-- -->
<ul>
<li class="">Click <strong>Scopes</strong> and then <strong>Add Scope</strong></li>
<li class="">Define scope names like <code>okta.users.read</code> or <code>okta.groups.read</code> for accessing Okta APIs</li>
<li class="">Configure consent requirements for each scope</li>
</ul>
</li>
</ol>
<p>For a complete list of available scopes and their descriptions, please refer to the <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/api/openapi/okta-oauth/guides/overview/#scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta OIDC documentation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>In Logto Okta connector:</strong></p>
<ol>
<li class="">Logto automatically includes <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information. You can leave the <code>Scopes</code> field blank if you only need basic user information.</li>
<li class="">Add <code>offline_access</code> to the <code>Scopes</code> field if you plan to store tokens for persistent API access. This scope enables refresh tokens for long-lived API access.</li>
<li class="">Add additional scopes (separated by spaces) in the <code>Scopes</code> field to request more data from Okta. For example: <code>okta.users.read okta.groups.read</code></li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>If your app requests these scopes to access Okta APIs and perform actions, make sure to enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. See the next section for details.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-store-tokens-to-access-okta-apis-optional">Step 5: Store tokens to access Okta APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#step-5-store-tokens-to-access-okta-apis-optional" class="hash-link" aria-label="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" title="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" translate="no">​</a></h3>
<p>If you want to access <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/guides/request-user-consent/main/#enable-consent-for-scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta scopes<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and perform actions with user authorization, Logto needs to get specific scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in your Okta developer console API permissions configuration and Logto Okta connector.</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. Logto will securely store Okta access and refresh tokens in the Secret Vault.</li>
<li class="">To ensure refresh tokens are returned, add the <code>offline_access</code> scope to your Okta application permissions and include it in your Logto Okta connector scopes. This scope allows your application to maintain access to resources for extended periods.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-6-set-email-domains-and-enable-the-sso-connector">Step 6: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#step-6-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Lien direct vers Step 6: Set email domains and enable the SSO connector" title="Lien direct vers Step 6: Set email domains and enable the SSO connector" translate="no">​</a></h3>
<p>Provide the <code>email domains</code> of your organization on Logto's connector <code>SSO experience</code> tab. This will enable the SSO connector as an authentication method for those users.</p>
<p>Users with email addresses in the specified domains will be redirected to use your SSO connector as their only authentication method.</p>
<p>For more details about creating OIDC integration with Okta, please check <span class="linkWrapper_B4Bt"><a href="https://help.okta.com/oie/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm" target="_blank" rel="noopener noreferrer" class="link_hf7f">Create OIDC App Integrations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#save-your-configuration" class="hash-link" aria-label="Lien direct vers Save your configuration" title="Lien direct vers Save your configuration" translate="no">​</a></h3>
<p>Double check you have filled out necessary values in the Logto connector configuration area. Click
"Save and Done" (or "Save changes") and the <!-- -->Okta enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable Okta enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" title="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" translate="no">​</a></h2>
<p>You don’t need to configure enterprise connectors individually, Logto simplifies SSO integration into your applications with just one click.</p>
<ol>
<li class="">Navigate to: <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/sign-in-experience/sign-up-and-sign-in" target="_blank" rel="noopener noreferrer" class="link_hf7f">Console &gt; Sign-in &amp; account &gt; Sign-up and sign-in<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">Enable the "Enterprise SSO" toggle.</li>
<li class="">Save changes.</li>
</ol>
<p>Once enabled, a "Single Sign-On" button will appear on your sign-in page. Enterprise users with SSO-enabled email domains can access your services using their enterprise identity providers (IdPs).</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-email-auto-navigation.png" alt="Auto detect SSO sign-in via email domain">
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-link-button-navigation.png" alt="Navigate to SSO sign-in via manually click link button">
<p>To learn more about the SSO user experience, including SP-initiated SSO and IdP-initiated SSO, refer to User flows: <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="testing-and-validation">Testing and Validation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#testing-and-validation" class="hash-link" aria-label="Lien direct vers Testing and Validation" title="Lien direct vers Testing and Validation" translate="no">​</a></h2>
<p>Return to your <!-- -->.NET Core (Blazor Server)<!-- --> app. You should now be able to sign in with <!-- -->Okta enterprise SSO<!-- -->. Enjoy!</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="further-readings">Further readings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#further-readings" class="hash-link" aria-label="Lien direct vers Further readings" title="Lien direct vers Further readings" translate="no">​</a></h2>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows" target="_blank" rel="noopener noreferrer" class="link_hf7f">End-user flows<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Logto provides a out-of-the-box authentication flows including MFA and enterprise SSO, along with powerful APIs for flexible implementation of account settings, security verification, and multi-tenant experience.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/authorization" target="_blank" rel="noopener noreferrer" class="link_hf7f">Authorization<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Authorization defines the actions a user can do or resources they can access after being authenticated. Explore how to protect your API for native and single-page applications and implement Role-based Access Control (RBAC).</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/organizations" target="_blank" rel="noopener noreferrer" class="link_hf7f">Organizations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Particularly effective in multi-tenant SaaS and B2B apps, the organization feature enable tenant creation, member management, organization-level RBAC, and just-in-time-provisioning.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://blog.logto.io/ciam-101-intro-authn-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Customer IAM series<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> Our serial blog posts about Customer (or Consumer) Identity and Access Management, from 101 to advanced topics and beyond.</p>]]></content:encoded>
            <category>SSO providers</category>
            <category>okta-enterprise-sso</category>
            <category>dotnet-core-blazor-server</category>
            <category>c#</category>
            <category>SAML authentication</category>
            <category>enterprise login</category>
            <category>SSO login</category>
        </item>
        <item>
            <title><![CDATA[How to build Okta enterprise SSO with .NET Core (Blazor WebAssembly)]]></title>
            <link>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto</link>
            <guid>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto</guid>
            <pubDate>Fri, 17 Apr 2026 02:54:06 GMT</pubDate>
            <description><![CDATA[{/*]]></description>
            <content:encoded><![CDATA[
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">For our new friends<!-- -->:</span><br><br><p><span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> is an Auth0 alternative designed for modern apps and SaaS products. It
offers both <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/logto" target="_blank" rel="noopener noreferrer" class="link_hf7f">Open-source<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>
services to help you quickly launch your identity and management (IAM) system. Enjoy authentication,
authorization, and multi-tenant management <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">all in one<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.<!-- --> </p><p>We recommend starting with a free development tenant on <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. This allows you to explore all the features easily.</p></div></div></div>
<p>In this article, we will go through the steps to quickly build the <!-- -->Okta enterprise SSO<!-- --> sign-in
experience (user authentication) with <a href="https://learn.microsoft.com/en-us/aspnet/core/blazor/hosting-models#blazor-webassembly" target="_blank" rel="noopener">.NET Core (Blazor WebAssembly)</a> and <span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>Prerequisites</strong></p>
<ul>
<li class="">A running Logto instance. Check out the <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">introduction page<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to get started.</li>
<li class="">Basic knowledge of <a href="https://learn.microsoft.com/en-us/aspnet/core/blazor/hosting-models#blazor-webassembly" target="_blank" rel="noopener">.NET Core (Blazor WebAssembly)</a>.</li>
<li class="">A usable <!-- -->Okta enterprise SSO<!-- --> account.</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="create-an-application-in-logto">Create an application in Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Lien direct vers Create an application in Logto" title="Lien direct vers Create an application in Logto" translate="no">​</a></h2>
<p>Logto is based on OpenID Connect (OIDC) authentication and OAuth 2.0 authorization. It supports federated identity management across multiple applications, commonly called Single Sign-On (SSO).</p>
<p>To create your <!-- -->Single page app<!-- --> application, simply follow these steps:</p>
<ol>
<li class="">Open the <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. In the "Get started" section, click the "View all" link to open the application frameworks list. Alternatively, you can navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/applications" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console &gt; Applications<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, and click the "Create application" button.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/get-started.png" alt="Get started">
</li>
<li class="">In the opening modal, click the "<!-- -->Single page app<!-- -->" section or filter all the available "<!-- -->Single page app<!-- -->" frameworks using the quick filter checkboxes on the left. Click the "<!-- -->.NET Core (Blazor WebAssembly)<!-- -->" framework card to start creating your application.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/framework-list.png" alt="Frameworks">
</li>
<li class="">Enter the application name, e.g., "Bookstore," and click "Create application".</li>
</ol>
<p>🎉 Ta-da! You just created your first application in Logto. You'll see a congrats page which includes a detailed integration guide. Follow the guide to see what the experience will be in your application.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="integrate-with-logto">Integrate .NET Core (Blazor WebAssembly) with Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#integrate-with-logto" class="hash-link" aria-label="Lien direct vers Integrate .NET Core (Blazor WebAssembly) with Logto" title="Lien direct vers Integrate .NET Core (Blazor WebAssembly) with Logto" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><ul>
<li class="">The following demonstration is built on .NET Core 8.0 and <span class="linkWrapper_B4Bt"><a href="https://github.com/WildGums/Blorc.OpenIdConnect" target="_blank" rel="noopener noreferrer" class="link_hf7f">Blorc.OpenIdConnect<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">The .NET Core sample projects are available in the <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/csharp" target="_blank" rel="noopener noreferrer" class="link_hf7f">GitHub repository<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ul></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="installation">Installation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#installation" class="hash-link" aria-label="Lien direct vers Installation" title="Lien direct vers Installation" translate="no">​</a></h3>
<p>Add the NuGet package to your project:</p>
<div class="language-bash codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-bash codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">dotnet </span><span class="token function" style="color:rgb(80, 250, 123)">add</span><span class="token plain"> package Blorc.OpenIdConnect</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="add-script-references">Add script references<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#add-script-references" class="hash-link" aria-label="Lien direct vers Add script references" title="Lien direct vers Add script references" translate="no">​</a></h3>
<p>Include <code>Blorc.Core/injector.js</code> the <code>index.html</code> file:</p>
<div class="language-html codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">index.html</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-html codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">head</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">&lt;!-- ... --&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">script</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">src</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">_content/Blorc.Core/injector.js</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token script"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">script</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">&lt;!-- ... --&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">head</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="register-services">Register services<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#register-services" class="hash-link" aria-label="Lien direct vers Register services" title="Lien direct vers Register services" translate="no">​</a></h3>
<p>Add the following code to the <code>Program.cs</code> file:</p>
<div class="language-csharp codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">Program.cs</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-csharp codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">using</span><span class="token plain"> </span><span class="token namespace">Blorc</span><span class="token namespace punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token namespace">OpenIdConnect</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">using</span><span class="token plain"> </span><span class="token namespace">Blorc</span><span class="token namespace punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token namespace">Services</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">builder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Services</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">AddBlorcCore</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">builder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Services</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">AddAuthorizationCore</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">builder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Services</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">AddBlorcOpenIdConnect</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    options </span><span class="token operator">=&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        builder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Configuration</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Bind</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"IdentityServer"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> options</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token class-name keyword" style="color:rgb(189, 147, 249);font-style:italic">var</span><span class="token plain"> webAssemblyHost </span><span class="token operator">=</span><span class="token plain"> builder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Build</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> webAssemblyHost</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">ConfigureDocumentAsync</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> documentService </span><span class="token operator">=&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> documentService</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">InjectBlorcCoreJsAsync</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> documentService</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">InjectOpenIdConnectAsync</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> webAssemblyHost</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">RunAsync</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">info<!-- -->:</span><p>There's no need to use the <code>Microsoft.AspNetCore.Components.WebAssembly.Authentication</code> package. The <code>Blorc.OpenIdConnect</code> package will take care of the authentication process.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uris">Configure redirect URIs<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#configure-redirect-uris" class="hash-link" aria-label="Lien direct vers Configure redirect URIs" title="Lien direct vers Configure redirect URIs" translate="no">​</a></h3>
<p>Before we dive into the details, here's a quick overview of the end-user experience. The sign-in process can be simplified as follows:</p>
<!-- -->
<ol>
<li class="">Your app invokes the sign-in method.</li>
<li class="">The user is redirected to the Logto sign-in page. For native apps, the system browser is opened.</li>
<li class="">The user signs in and is redirected back to your app (configured as the redirect URI).</li>
</ol>
<details class="details_Qsrn details_Jw1Q" data-collapsed="true"><summary><h3 class="anchor anchorTargetStickyNavbar_iJWz" id="regarding-redirect-based-sign-in">Regarding redirect-based sign-in<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Lien direct vers Regarding redirect-based sign-in" title="Lien direct vers Regarding redirect-based sign-in" translate="no">​</a></h3></summary><div><div class="collapsibleContent_brv9"><ol>
<li class="">This authentication process follows the <span class="linkWrapper_B4Bt"><a href="https://openid.net/specs/openid-connect-core-1_0.html" target="_blank" rel="noopener noreferrer" class="link_hf7f">OpenID Connect (OIDC)<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> protocol, and Logto enforces strict security measures to protect user sign-in.</li>
<li class="">If you have multiple apps, you can use the same identity provider (Logto). Once the user signs in to one app, Logto will automatically complete the sign-in process when the user accesses another app.</li>
</ol><p>To learn more about the rationale and benefits of redirect-based sign-in, see <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/concepts/sign-in-experience" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Logto sign-in experience explained<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p></div></div></details>
<hr>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>In the following code snippets, we assume your app is running on <code>http://localhost:3000/</code>.</p></div></div></div>
<!-- -->
<!-- -->
<h4 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uris">Configure redirect URIs<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#configure-redirect-uris" class="hash-link" aria-label="Lien direct vers Configure redirect URIs" title="Lien direct vers Configure redirect URIs" translate="no">​</a></h4>
<p>Switch to the application details page of Logto Console. Add a redirect URI <code>http://localhost:3000/callback</code>.</p>
<img alt="Redirect URI in Logto Console" src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/web-redirect-uri.png" width="600px">
<p>Just like signing in, users should be redirected to Logto for signing out of the shared session. Once finished, it would be great to redirect the user back to your website. For example, add <code>http://localhost:3000/</code> as the post sign-out redirect URI section.</p>
<p>Then click "Save" to save the changes.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-application">Configure application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#configure-application" class="hash-link" aria-label="Lien direct vers Configure application" title="Lien direct vers Configure application" translate="no">​</a></h3>
<p>Add the following code to the <code>appsettings.json</code> file:</p>
<div class="language-json5 codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">appsettings.json</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-json5 codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token property unquoted">IdentityServer</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token property unquoted">Authority</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'https://&lt;your-logto-endpoint&gt;/oidc'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token property unquoted">ClientId</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'&lt;your-logto-app-id&gt;'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token property unquoted">PostLogoutRedirectUri</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'http://localhost:3000/'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token property unquoted">RedirectUri</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'http://localhost:3000/callback'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token property unquoted">ResponseType</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'code'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token property unquoted">Scope</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'openid profile'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">// Add more scopes if needed</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>Remember to add the <code>RedirectUri</code> and <code>PostLogoutRedirectUri</code> to the list of allowed redirect URIs in the Logto application settings. They are both the URL of your WASM application.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="add-authorizeview-component">Add <code>AuthorizeView</code> component<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#add-authorizeview-component" class="hash-link" aria-label="Lien direct vers add-authorizeview-component" title="Lien direct vers add-authorizeview-component" translate="no">​</a></h3>
<p>In the Razor pages that require authentication, add the <code>AuthorizeView</code> component. Let's assume it's the <code>Home.razor</code> page:</p>
<div class="language-cshtml codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">Pages/Home.razor</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-cshtml codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token directive keyword" style="color:rgb(189, 147, 249);font-style:italic">@using</span><span class="token directive"> </span><span class="token directive csharp language-csharp">Microsoft</span><span class="token directive csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token directive csharp language-csharp">AspNetCore</span><span class="token directive csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token directive csharp language-csharp">Components</span><span class="token directive csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token directive csharp language-csharp">Authorization</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token directive keyword" style="color:rgb(189, 147, 249);font-style:italic">@page</span><span class="token directive"> </span><span class="token directive csharp language-csharp string" style="color:rgb(255, 121, 198)">"/"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">AuthorizeView</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">Authorized</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token razor-comment comment" style="color:rgb(98, 114, 164)">@* Signed in view *@</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">button</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">@onclick</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">OnLogoutButtonClickAsync</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            Sign out</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">button</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">Authorized</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">NotAuthorized</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token razor-comment comment" style="color:rgb(98, 114, 164)">@* Unauthenticated view *@</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">button</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">@onclick</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">OnLoginButtonClickAsync</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            Sign in</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">button</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">NotAuthorized</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">AuthorizeView</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="set-up-authentication">Set up authentication<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#set-up-authentication" class="hash-link" aria-label="Lien direct vers Set up authentication" title="Lien direct vers Set up authentication" translate="no">​</a></h3>
<p>In the <code>Home.razor.cs</code> file (create it if it doesn't exist), add the following code:</p>
<div class="language-csharp codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">Pages/Home.razor.cs</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-csharp codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">using</span><span class="token plain"> </span><span class="token namespace">Microsoft</span><span class="token namespace punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token namespace">AspNetCore</span><span class="token namespace punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token namespace">Authorization</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">using</span><span class="token plain"> </span><span class="token namespace">Microsoft</span><span class="token namespace punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token namespace">AspNetCore</span><span class="token namespace punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token namespace">Components</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">using</span><span class="token plain"> </span><span class="token namespace">Microsoft</span><span class="token namespace punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token namespace">AspNetCore</span><span class="token namespace punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token namespace">Components</span><span class="token namespace punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token namespace">Web</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">using</span><span class="token plain"> </span><span class="token namespace">Blorc</span><span class="token namespace punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token namespace">OpenIdConnect</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">using</span><span class="token plain"> </span><span class="token namespace">Microsoft</span><span class="token namespace punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token namespace">AspNetCore</span><span class="token namespace punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token namespace">Components</span><span class="token namespace punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token namespace">Authorization</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token attribute class-name">Authorize</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">public</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">partial</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> </span><span class="token class-name">Home</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token type-list class-name">ComponentBase</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token attribute class-name">Inject</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">public</span><span class="token plain"> required </span><span class="token return-type class-name">IUserManager</span><span class="token plain"> UserManager </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">get</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">set</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">public</span><span class="token plain"> </span><span class="token return-type class-name">User</span><span class="token return-type class-name punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token return-type class-name">Profile</span><span class="token return-type class-name punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token return-type class-name punctuation" style="color:rgb(248, 248, 242)">?</span><span class="token plain"> User </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">get</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">set</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token attribute class-name">CascadingParameter</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">protected</span><span class="token plain"> </span><span class="token return-type class-name">Task</span><span class="token return-type class-name punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token return-type class-name">AuthenticationState</span><span class="token return-type class-name punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token return-type class-name punctuation" style="color:rgb(248, 248, 242)">?</span><span class="token plain"> AuthenticationStateTask </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">get</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">set</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">protected</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">override</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> </span><span class="token return-type class-name">Task</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">OnInitializedAsync</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        User </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> UserManager</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token generic-method function" style="color:rgb(80, 250, 123)">GetUserAsync</span><span class="token generic-method generic class-name punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token generic-method generic class-name">User</span><span class="token generic-method generic class-name punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token generic-method generic class-name">Profile</span><span class="token generic-method generic class-name punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token generic-method generic class-name punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">AuthenticationStateTask</span><span class="token operator">!</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">private</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> </span><span class="token return-type class-name">Task</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">OnLoginButtonClickAsync</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token class-name">MouseEventArgs</span><span class="token plain"> obj</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> UserManager</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">SignInRedirectAsync</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">private</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> </span><span class="token return-type class-name">Task</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">OnLogoutButtonClickAsync</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token class-name">MouseEventArgs</span><span class="token plain"> obj</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> UserManager</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">SignOutRedirectAsync</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>Once the user is authenticated, the <code>User</code> property will be populated with the user information.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="checkpoint-test-your-application">Checkpoint: Test your application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Lien direct vers Checkpoint: Test your application" title="Lien direct vers Checkpoint: Test your application" translate="no">​</a></h3>
<p>Now, you can test your application:</p>
<ol>
<li class="">Run your application, you will see the sign-in button.</li>
<li class="">Click the sign-in button, the SDK will init the sign-in process and redirect you to the Logto sign-in page.</li>
<li class="">After you signed in, you will be redirected back to your application and see the sign-out button.</li>
<li class="">Click the sign-out button to clear token storage and sign out.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="add-connector-connector">Add Okta enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#add-connector-connector" class="hash-link" aria-label="Lien direct vers Add Okta enterprise SSO connector" title="Lien direct vers Add Okta enterprise SSO connector" translate="no">​</a></h2>
<p>To simplify access management and gain enterprise-level safeguards for your big clients, connect with <!-- -->.NET Core (Blazor WebAssembly)<!-- --> as a federated identity provider. The Logto enterprise SSO connector helps you establish this connection in minutes by allowing several parameter inputs.</p>
<p>To add an enterprise SSO connector, simply follow these steps:</p>
<ol>
<li class="">Navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto console &gt; Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-page.png" alt="SSO page">
<ol start="2">
<li class="">Click "Add enterprise connector" button and choose your SSO provider type. Choose from prebuilt connectors for Microsoft Entra ID (Azure AD), Google Workspace, and Okta, or create a custom SSO connection using the standard OpenID Connect (OIDC) or SAML protocol.</li>
<li class="">Provide a unique name (e.g., SSO sign-in for Acme Company).</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/select-your-sso-provider.png" alt="Select your SSO provider">
<ol start="4">
<li class="">Configure the connection with your IdP in the "Connection" tab. Check the guides above for each connector types.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-connection-settings.png" alt="SSO connection">
<ol start="5">
<li class="">Customize the SSO experience and enterprise’s <strong>email domain</strong> in the "Experience" tab. Users sign in with the SSO-enabled email domain will be redirected to SSO authentication.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-experience-settings.png" alt="SSO experience">
<ol start="6">
<li class="">Save changes.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="set-up-connectorconfigname">Set up OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Lien direct vers Set up OIDC application on Okta admin portal" title="Lien direct vers Set up OIDC application on Okta admin portal" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-okta-admin-portal">Step 1: Create an OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#step-1-create-an-oidc-application-on-okta-admin-portal" class="hash-link" aria-label="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" title="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" translate="no">​</a></h3>
<ul>
<li class="">Visit the Okta admin portal and sign in as an administrator.</li>
<li class="">Navigate to the <code>Applications</code>/<code>Applications</code> page using the side menu.</li>
<li class="">Click the <code>Create App Integration</code> button to create a new OIDC application.</li>
<li class="">Select the <code>OIDC - OpenID Connect</code> option as the <code>Sign-in method</code>.</li>
<li class="">Select the <code>Web Application</code> option as the <code>Application type</code>.</li>
</ul>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_create_application.webp" alt="Okta create application">
<p>Click the <code>Next</code> button to continue.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-the-application-settings">Step 2: Configure the application settings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Lien direct vers Step 2: Configure the application settings" title="Lien direct vers Step 2: Configure the application settings" translate="no">​</a></h3>
<ol>
<li class="">Provide an <code>App integration name</code>. It will be used as the identifier of your OIDC application.</li>
<li class="">Add a new <code>Sign-in redirect URIs</code> using the Logto SSO connector's callback URL.</li>
</ol>
<p>This is the URI that the Okta will redirect the user's browser after successful authentication. After a user successfully authenticates with the IdP, the IdP redirects the user's browser back to this designated URI along with an authorization code. Logto will complete the authentication process based on the authorization code received from this URI.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_application_settings.webp" alt="Okta application settings">
<ol start="3">
<li class="">Assign users to the application.</li>
</ol>
<p>Based on the <code>Assignments</code> settings, you can choose to assign the application to all users or specific users/groups.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_assign_users.webp" alt="Okta assign users">
<p>Click the <code>Save</code> button to save the application settings.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-set-up-logto-connector-with-the-client-credentials">Step 3: Set up Logto connector with the client credentials<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#step-3-set-up-logto-connector-with-the-client-credentials" class="hash-link" aria-label="Lien direct vers Step 3: Set up Logto connector with the client credentials" title="Lien direct vers Step 3: Set up Logto connector with the client credentials" translate="no">​</a></h3>
<p>After successfully creating the OIDC application, you will be redirected to the application details page.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_client_credentials.webp" alt="Okta client credentials">
<p>Copy the <code>client ID</code> and <code>client secret</code> and fill in the corresponding fields on the Logto SSO connector <code>Connection</code> tab.</p>
<p>Use your Okta domain as the <code>issuer</code>. Example: <code>https://dev-12345678.okta.com</code>. Once you have filled in all the fields, click the <code>Save</code> button to save the connector settings.</p>
<p>If the <code>issuer</code> link you provided is valid, you will see a parsed full list of Okta IdP configurations shown below the <code>issuer</code> field.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-additional-scopes-optional">Step 4: Additional scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Lien direct vers Step 4: Additional scopes (Optional)" title="Lien direct vers Step 4: Additional scopes (Optional)" translate="no">​</a></h3>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their Okta accounts. Requesting additional Okta permissions requires configuration on both sides:</p>
<p><strong>In Okta admin console:</strong></p>
<ol>
<li class="">Navigate to <strong>Applications &gt; Applications</strong> and select your OIDC application.</li>
<li class="">Go to the <strong>Assignments</strong> tab to ensure your app has access to the required users and groups.</li>
<li class="">For custom scopes, navigate to <strong>Security &gt; API &gt; Authorization Servers</strong> and select your authorization server.</li>
<li class="">Add custom scopes if needed:<!-- -->
<ul>
<li class="">Click <strong>Scopes</strong> and then <strong>Add Scope</strong></li>
<li class="">Define scope names like <code>okta.users.read</code> or <code>okta.groups.read</code> for accessing Okta APIs</li>
<li class="">Configure consent requirements for each scope</li>
</ul>
</li>
</ol>
<p>For a complete list of available scopes and their descriptions, please refer to the <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/api/openapi/okta-oauth/guides/overview/#scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta OIDC documentation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>In Logto Okta connector:</strong></p>
<ol>
<li class="">Logto automatically includes <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information. You can leave the <code>Scopes</code> field blank if you only need basic user information.</li>
<li class="">Add <code>offline_access</code> to the <code>Scopes</code> field if you plan to store tokens for persistent API access. This scope enables refresh tokens for long-lived API access.</li>
<li class="">Add additional scopes (separated by spaces) in the <code>Scopes</code> field to request more data from Okta. For example: <code>okta.users.read okta.groups.read</code></li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>If your app requests these scopes to access Okta APIs and perform actions, make sure to enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. See the next section for details.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-store-tokens-to-access-okta-apis-optional">Step 5: Store tokens to access Okta APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#step-5-store-tokens-to-access-okta-apis-optional" class="hash-link" aria-label="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" title="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" translate="no">​</a></h3>
<p>If you want to access <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/guides/request-user-consent/main/#enable-consent-for-scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta scopes<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and perform actions with user authorization, Logto needs to get specific scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in your Okta developer console API permissions configuration and Logto Okta connector.</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. Logto will securely store Okta access and refresh tokens in the Secret Vault.</li>
<li class="">To ensure refresh tokens are returned, add the <code>offline_access</code> scope to your Okta application permissions and include it in your Logto Okta connector scopes. This scope allows your application to maintain access to resources for extended periods.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-6-set-email-domains-and-enable-the-sso-connector">Step 6: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#step-6-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Lien direct vers Step 6: Set email domains and enable the SSO connector" title="Lien direct vers Step 6: Set email domains and enable the SSO connector" translate="no">​</a></h3>
<p>Provide the <code>email domains</code> of your organization on Logto's connector <code>SSO experience</code> tab. This will enable the SSO connector as an authentication method for those users.</p>
<p>Users with email addresses in the specified domains will be redirected to use your SSO connector as their only authentication method.</p>
<p>For more details about creating OIDC integration with Okta, please check <span class="linkWrapper_B4Bt"><a href="https://help.okta.com/oie/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm" target="_blank" rel="noopener noreferrer" class="link_hf7f">Create OIDC App Integrations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#save-your-configuration" class="hash-link" aria-label="Lien direct vers Save your configuration" title="Lien direct vers Save your configuration" translate="no">​</a></h3>
<p>Double check you have filled out necessary values in the Logto connector configuration area. Click
"Save and Done" (or "Save changes") and the <!-- -->Okta enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable Okta enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" title="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" translate="no">​</a></h2>
<p>You don’t need to configure enterprise connectors individually, Logto simplifies SSO integration into your applications with just one click.</p>
<ol>
<li class="">Navigate to: <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/sign-in-experience/sign-up-and-sign-in" target="_blank" rel="noopener noreferrer" class="link_hf7f">Console &gt; Sign-in &amp; account &gt; Sign-up and sign-in<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">Enable the "Enterprise SSO" toggle.</li>
<li class="">Save changes.</li>
</ol>
<p>Once enabled, a "Single Sign-On" button will appear on your sign-in page. Enterprise users with SSO-enabled email domains can access your services using their enterprise identity providers (IdPs).</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-email-auto-navigation.png" alt="Auto detect SSO sign-in via email domain">
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-link-button-navigation.png" alt="Navigate to SSO sign-in via manually click link button">
<p>To learn more about the SSO user experience, including SP-initiated SSO and IdP-initiated SSO, refer to User flows: <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="testing-and-validation">Testing and Validation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#testing-and-validation" class="hash-link" aria-label="Lien direct vers Testing and Validation" title="Lien direct vers Testing and Validation" translate="no">​</a></h2>
<p>Return to your <!-- -->.NET Core (Blazor WebAssembly)<!-- --> app. You should now be able to sign in with <!-- -->Okta enterprise SSO<!-- -->. Enjoy!</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="further-readings">Further readings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#further-readings" class="hash-link" aria-label="Lien direct vers Further readings" title="Lien direct vers Further readings" translate="no">​</a></h2>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows" target="_blank" rel="noopener noreferrer" class="link_hf7f">End-user flows<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Logto provides a out-of-the-box authentication flows including MFA and enterprise SSO, along with powerful APIs for flexible implementation of account settings, security verification, and multi-tenant experience.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/authorization" target="_blank" rel="noopener noreferrer" class="link_hf7f">Authorization<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Authorization defines the actions a user can do or resources they can access after being authenticated. Explore how to protect your API for native and single-page applications and implement Role-based Access Control (RBAC).</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/organizations" target="_blank" rel="noopener noreferrer" class="link_hf7f">Organizations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Particularly effective in multi-tenant SaaS and B2B apps, the organization feature enable tenant creation, member management, organization-level RBAC, and just-in-time-provisioning.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://blog.logto.io/ciam-101-intro-authn-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Customer IAM series<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> Our serial blog posts about Customer (or Consumer) Identity and Access Management, from 101 to advanced topics and beyond.</p>]]></content:encoded>
            <category>SSO providers</category>
            <category>okta-enterprise-sso</category>
            <category>dotnet-core-blazor-webassembly</category>
            <category>c#</category>
            <category>SAML authentication</category>
            <category>enterprise login</category>
            <category>SSO login</category>
        </item>
        <item>
            <title><![CDATA[How to build Okta enterprise SSO with .NET Core (MVC)]]></title>
            <link>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto</link>
            <guid>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto</guid>
            <pubDate>Fri, 17 Apr 2026 02:54:06 GMT</pubDate>
            <description><![CDATA[{/*]]></description>
            <content:encoded><![CDATA[
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">For our new friends<!-- -->:</span><br><br><p><span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> is an Auth0 alternative designed for modern apps and SaaS products. It
offers both <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/logto" target="_blank" rel="noopener noreferrer" class="link_hf7f">Open-source<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>
services to help you quickly launch your identity and management (IAM) system. Enjoy authentication,
authorization, and multi-tenant management <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">all in one<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.<!-- --> </p><p>We recommend starting with a free development tenant on <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. This allows you to explore all the features easily.</p></div></div></div>
<p>In this article, we will go through the steps to quickly build the <!-- -->Okta enterprise SSO<!-- --> sign-in
experience (user authentication) with <a href="https://dotnet.microsoft.com/apps/aspnet/mvc" target="_blank" rel="noopener">.NET Core (MVC)</a> and <span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>Prerequisites</strong></p>
<ul>
<li class="">A running Logto instance. Check out the <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">introduction page<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to get started.</li>
<li class="">Basic knowledge of <a href="https://dotnet.microsoft.com/apps/aspnet/mvc" target="_blank" rel="noopener">.NET Core (MVC)</a>.</li>
<li class="">A usable <!-- -->Okta enterprise SSO<!-- --> account.</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="create-an-application-in-logto">Create an application in Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Lien direct vers Create an application in Logto" title="Lien direct vers Create an application in Logto" translate="no">​</a></h2>
<p>Logto is based on OpenID Connect (OIDC) authentication and OAuth 2.0 authorization. It supports federated identity management across multiple applications, commonly called Single Sign-On (SSO).</p>
<p>To create your <!-- -->Traditional web<!-- --> application, simply follow these steps:</p>
<ol>
<li class="">Open the <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. In the "Get started" section, click the "View all" link to open the application frameworks list. Alternatively, you can navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/applications" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console &gt; Applications<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, and click the "Create application" button.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/get-started.png" alt="Get started">
</li>
<li class="">In the opening modal, click the "<!-- -->Traditional web<!-- -->" section or filter all the available "<!-- -->Traditional web<!-- -->" frameworks using the quick filter checkboxes on the left. Click the "<!-- -->.NET Core (MVC)<!-- -->" framework card to start creating your application.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/framework-list.png" alt="Frameworks">
</li>
<li class="">Enter the application name, e.g., "Bookstore," and click "Create application".</li>
</ol>
<p>🎉 Ta-da! You just created your first application in Logto. You'll see a congrats page which includes a detailed integration guide. Follow the guide to see what the experience will be in your application.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="integrate-with-logto">Integrate .NET Core (MVC) with Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#integrate-with-logto" class="hash-link" aria-label="Lien direct vers Integrate .NET Core (MVC) with Logto" title="Lien direct vers Integrate .NET Core (MVC) with Logto" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><ul>
<li class="">The following demonstration is built on .NET Core 8.0. The SDK is compatible with .NET 6.0 or higher.</li>
<li class="">The .NET Core sample projects are available in the <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/csharp" target="_blank" rel="noopener noreferrer" class="link_hf7f">GitHub repository<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ul></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="installation">Installation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#installation" class="hash-link" aria-label="Lien direct vers Installation" title="Lien direct vers Installation" translate="no">​</a></h3>
<p>Add the NuGet package to your project:</p>
<div class="language-bash codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-bash codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">dotnet </span><span class="token function" style="color:rgb(80, 250, 123)">add</span><span class="token plain"> package Logto.AspNetCore.Authentication</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="add-logto-authentication">Add Logto authentication<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#add-logto-authentication" class="hash-link" aria-label="Lien direct vers Add Logto authentication" title="Lien direct vers Add Logto authentication" translate="no">​</a></h3>
<p>Open <code>Startup.cs</code> (or <code>Program.cs</code>) and add the following code to register Logto authentication services:</p>
<div class="language-csharp codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">Program.cs</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-csharp codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">using</span><span class="token plain"> </span><span class="token namespace">Logto</span><span class="token namespace punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token namespace">AspNetCore</span><span class="token namespace punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token namespace">Authentication</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token class-name keyword" style="color:rgb(189, 147, 249);font-style:italic">var</span><span class="token plain"> builder </span><span class="token operator">=</span><span class="token plain"> WebApplication</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">CreateBuilder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">args</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">builder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Services</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">AddLogtoAuthentication</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">options </span><span class="token operator">=&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  options</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Endpoint </span><span class="token operator">=</span><span class="token plain"> builder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Configuration</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">"Logto:Endpoint"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token operator">!</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  options</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">AppId </span><span class="token operator">=</span><span class="token plain"> builder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Configuration</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">"Logto:AppId"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token operator">!</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  options</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">AppSecret </span><span class="token operator">=</span><span class="token plain"> builder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Configuration</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">"Logto:AppSecret"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<p>The <code>AddLogtoAuthentication</code> method will do the following things:</p>
<ul>
<li class="">Set the default authentication scheme to <code>LogtoDefaults.CookieScheme</code>.</li>
<li class="">Set the default challenge scheme to <code>LogtoDefaults.AuthenticationScheme</code>.</li>
<li class="">Set the default sign-out scheme to <code>LogtoDefaults.AuthenticationScheme</code>.</li>
<li class="">Add cookie and OpenID Connect authentication handlers to the authentication scheme.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="sign-in-and-sign-out-flows">Sign-in and sign-out flows<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#sign-in-and-sign-out-flows" class="hash-link" aria-label="Lien direct vers Sign-in and sign-out flows" title="Lien direct vers Sign-in and sign-out flows" translate="no">​</a></h3>
<p>Before we proceed, there are two confusing terms in the .NET Core authentication middleware that we need to clarify:</p>
<ol>
<li class=""><strong>CallbackPath</strong>: The URI that Logto will redirect the user back to after the user has signed in (the "redirect URI" in Logto)</li>
<li class=""><strong>RedirectUri</strong>: The URI that will be redirected to after necessary actions have been taken in the Logto authentication middleware.</li>
</ol>
<p>The sign-in process can be illustrated as follows:</p>
<!-- -->
<br>
<p>Similarly, .NET Core also has <strong>SignedOutCallbackPath</strong> and <strong>RedirectUri</strong> for the sign-out flow.</p>
<p>For the sake of clarity, we'll refer them as follows:</p>
<table><thead><tr><th>Term we use</th><th>.NET Core term</th></tr></thead><tbody><tr><td>Logto redirect URI</td><td>CallbackPath</td></tr><tr><td>Logto post sign-out redirect URI</td><td>SignedOutCallbackPath</td></tr><tr><td>Application redirect URI</td><td>RedirectUri</td></tr></tbody></table>
<details class="details_Qsrn details_Jw1Q" data-collapsed="true"><summary><h3 class="anchor anchorTargetStickyNavbar_iJWz" id="regarding-redirect-based-sign-in">Regarding redirect-based sign-in<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Lien direct vers Regarding redirect-based sign-in" title="Lien direct vers Regarding redirect-based sign-in" translate="no">​</a></h3></summary><div><div class="collapsibleContent_brv9"><ol>
<li class="">This authentication process follows the <span class="linkWrapper_B4Bt"><a href="https://openid.net/specs/openid-connect-core-1_0.html" target="_blank" rel="noopener noreferrer" class="link_hf7f">OpenID Connect (OIDC)<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> protocol, and Logto enforces strict security measures to protect user sign-in.</li>
<li class="">If you have multiple apps, you can use the same identity provider (Logto). Once the user signs in to one app, Logto will automatically complete the sign-in process when the user accesses another app.</li>
</ol><p>To learn more about the rationale and benefits of redirect-based sign-in, see <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/concepts/sign-in-experience" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Logto sign-in experience explained<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p></div></div></details>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uris">Configure redirect URIs<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#configure-redirect-uris" class="hash-link" aria-label="Lien direct vers Configure redirect URIs" title="Lien direct vers Configure redirect URIs" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>In the following code snippets, we assume your app is running on <code>http://localhost:3000/</code>.</p></div></div></div>
<p>First, let's configure the <strong>Logto redirect URI</strong>. Add the following URI to the "Redirect URIs" list in the Logto application details page:</p>
<div class="language-text codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-text codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">http://localhost:3000/Callback</span><br></span></code></pre></div></div>
<p>To configure the <strong>Logto post sign-out redirect URI</strong>, add the following URI to the "Post sign-out redirect URIs" list in the Logto application details page:</p>
<div class="language-text codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-text codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">http://localhost:3000/SignedOutCallback</span><br></span></code></pre></div></div>
<h4 class="anchor anchorTargetStickyNavbar_iJWz" id="change-the-default-paths">Change the default paths<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#change-the-default-paths" class="hash-link" aria-label="Lien direct vers Change the default paths" title="Lien direct vers Change the default paths" translate="no">​</a></h4>
<p>The <strong>Logto redirect URI</strong> has a default path of <code>/Callback</code>, and the <strong>Logto post sign-out redirect URI</strong> has a default path of <code>/SignedOutCallback</code>.</p>
<p>You can leave them as are if there's no special requirement. If you want to change it, you can set the <code>CallbackPath</code> and <code>SignedOutCallbackPath</code> property for <code>LogtoOptions</code>:</p>
<div class="language-csharp codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">Program.cs</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-csharp codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">builder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Services</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">AddLogtoAuthentication</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">options </span><span class="token operator">=&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">// Other configurations...</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">  options</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">CallbackPath </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"/Foo"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">  options</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">SignedOutCallbackPath </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"/Bar"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<p>Remember to update the value in the Logto application details page accordingly.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-sign-insign-out-buttons">Implement sign-in/sign-out buttons<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#implement-sign-insign-out-buttons" class="hash-link" aria-label="Lien direct vers Implement sign-in/sign-out buttons" title="Lien direct vers Implement sign-in/sign-out buttons" translate="no">​</a></h3>
<p>First, add actions methods to your <code>Controller</code>, for example:</p>
<div class="language-csharp codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">Controllers/HomeController.cs</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-csharp codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">public</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> </span><span class="token class-name">HomeController</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token type-list class-name">Controller</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">public</span><span class="token plain"> </span><span class="token return-type class-name">IActionResult</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">SignIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">// This will redirect the user to the Logto sign-in page.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">Challenge</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">new</span><span class="token plain"> </span><span class="token constructor-invocation class-name">AuthenticationProperties</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> RedirectUri </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"/"</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">// Use the `new` keyword to avoid conflict with the `ControllerBase.SignOut` method</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">new</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">public</span><span class="token plain"> </span><span class="token return-type class-name">IActionResult</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">SignOut</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">// This will clear the authentication cookie and redirect the user to the Logto sign-out page</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">// to clear the Logto session as well.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">SignOut</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">new</span><span class="token plain"> </span><span class="token constructor-invocation class-name">AuthenticationProperties</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> RedirectUri </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"/"</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>Then, add the links to your View:</p>
<div class="language-cshtml codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">Views/Home/Index.cshtml</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-cshtml codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain">Is authenticated: </span><span class="token value variable keyword" style="color:rgb(189, 147, 249);font-style:italic">@</span><span class="token value variable csharp language-csharp" style="color:rgb(189, 147, 249);font-style:italic">User</span><span class="token value variable csharp language-csharp punctuation" style="color:rgb(248, 248, 242);font-style:italic">.</span><span class="token value variable csharp language-csharp" style="color:rgb(189, 147, 249);font-style:italic">Identity</span><span class="token value variable csharp language-csharp punctuation" style="color:rgb(248, 248, 242);font-style:italic">?.</span><span class="token value variable csharp language-csharp" style="color:rgb(189, 147, 249);font-style:italic">IsAuthenticated</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token block keyword" style="color:rgb(189, 147, 249);font-style:italic">@if</span><span class="token block"> </span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token block csharp language-csharp">User</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token block csharp language-csharp">Identity</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">?.</span><span class="token block csharp language-csharp">IsAuthenticated </span><span class="token block csharp language-csharp operator">==</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp boolean">true</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">  </span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)">a</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)"> </span><span class="token block csharp language-csharp html tag attr-name" style="color:rgb(241, 250, 140)">asp-controller</span><span class="token block csharp language-csharp html tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token block csharp language-csharp html tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token block csharp language-csharp html tag attr-value" style="color:rgb(255, 121, 198)">Home</span><span class="token block csharp language-csharp html tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)"> </span><span class="token block csharp language-csharp html tag attr-name" style="color:rgb(241, 250, 140)">asp-action</span><span class="token block csharp language-csharp html tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token block csharp language-csharp html tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token block csharp language-csharp html tag attr-value" style="color:rgb(255, 121, 198)">SignOut</span><span class="token block csharp language-csharp html tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token block csharp language-csharp html">Sign out</span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)">a</span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp"></span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp keyword" style="color:rgb(189, 147, 249);font-style:italic">else</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">  </span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)">a</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)"> </span><span class="token block csharp language-csharp html tag attr-name" style="color:rgb(241, 250, 140)">asp-controller</span><span class="token block csharp language-csharp html tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token block csharp language-csharp html tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token block csharp language-csharp html tag attr-value" style="color:rgb(255, 121, 198)">Home</span><span class="token block csharp language-csharp html tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)"> </span><span class="token block csharp language-csharp html tag attr-name" style="color:rgb(241, 250, 140)">asp-action</span><span class="token block csharp language-csharp html tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token block csharp language-csharp html tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token block csharp language-csharp html tag attr-value" style="color:rgb(255, 121, 198)">SignIn</span><span class="token block csharp language-csharp html tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token block csharp language-csharp html">Sign in</span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)">a</span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp"></span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>It will show the "Sign in" link if the user is not authenticated, and show the "Sign out" link if the user is authenticated.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="checkpoint-test-your-application">Checkpoint: Test your application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Lien direct vers Checkpoint: Test your application" title="Lien direct vers Checkpoint: Test your application" translate="no">​</a></h3>
<p>Now, you can test your application:</p>
<ol>
<li class="">Run your application, you will see the sign-in button.</li>
<li class="">Click the sign-in button, the SDK will init the sign-in process and redirect you to the Logto sign-in page.</li>
<li class="">After you signed in, you will be redirected back to your application and see the sign-out button.</li>
<li class="">Click the sign-out button to clear token storage and sign out.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="add-connector-connector">Add Okta enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#add-connector-connector" class="hash-link" aria-label="Lien direct vers Add Okta enterprise SSO connector" title="Lien direct vers Add Okta enterprise SSO connector" translate="no">​</a></h2>
<p>To simplify access management and gain enterprise-level safeguards for your big clients, connect with <!-- -->.NET Core (MVC)<!-- --> as a federated identity provider. The Logto enterprise SSO connector helps you establish this connection in minutes by allowing several parameter inputs.</p>
<p>To add an enterprise SSO connector, simply follow these steps:</p>
<ol>
<li class="">Navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto console &gt; Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-page.png" alt="SSO page">
<ol start="2">
<li class="">Click "Add enterprise connector" button and choose your SSO provider type. Choose from prebuilt connectors for Microsoft Entra ID (Azure AD), Google Workspace, and Okta, or create a custom SSO connection using the standard OpenID Connect (OIDC) or SAML protocol.</li>
<li class="">Provide a unique name (e.g., SSO sign-in for Acme Company).</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/select-your-sso-provider.png" alt="Select your SSO provider">
<ol start="4">
<li class="">Configure the connection with your IdP in the "Connection" tab. Check the guides above for each connector types.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-connection-settings.png" alt="SSO connection">
<ol start="5">
<li class="">Customize the SSO experience and enterprise’s <strong>email domain</strong> in the "Experience" tab. Users sign in with the SSO-enabled email domain will be redirected to SSO authentication.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-experience-settings.png" alt="SSO experience">
<ol start="6">
<li class="">Save changes.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="set-up-connectorconfigname">Set up OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Lien direct vers Set up OIDC application on Okta admin portal" title="Lien direct vers Set up OIDC application on Okta admin portal" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-okta-admin-portal">Step 1: Create an OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#step-1-create-an-oidc-application-on-okta-admin-portal" class="hash-link" aria-label="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" title="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" translate="no">​</a></h3>
<ul>
<li class="">Visit the Okta admin portal and sign in as an administrator.</li>
<li class="">Navigate to the <code>Applications</code>/<code>Applications</code> page using the side menu.</li>
<li class="">Click the <code>Create App Integration</code> button to create a new OIDC application.</li>
<li class="">Select the <code>OIDC - OpenID Connect</code> option as the <code>Sign-in method</code>.</li>
<li class="">Select the <code>Web Application</code> option as the <code>Application type</code>.</li>
</ul>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_create_application.webp" alt="Okta create application">
<p>Click the <code>Next</code> button to continue.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-the-application-settings">Step 2: Configure the application settings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Lien direct vers Step 2: Configure the application settings" title="Lien direct vers Step 2: Configure the application settings" translate="no">​</a></h3>
<ol>
<li class="">Provide an <code>App integration name</code>. It will be used as the identifier of your OIDC application.</li>
<li class="">Add a new <code>Sign-in redirect URIs</code> using the Logto SSO connector's callback URL.</li>
</ol>
<p>This is the URI that the Okta will redirect the user's browser after successful authentication. After a user successfully authenticates with the IdP, the IdP redirects the user's browser back to this designated URI along with an authorization code. Logto will complete the authentication process based on the authorization code received from this URI.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_application_settings.webp" alt="Okta application settings">
<ol start="3">
<li class="">Assign users to the application.</li>
</ol>
<p>Based on the <code>Assignments</code> settings, you can choose to assign the application to all users or specific users/groups.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_assign_users.webp" alt="Okta assign users">
<p>Click the <code>Save</code> button to save the application settings.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-set-up-logto-connector-with-the-client-credentials">Step 3: Set up Logto connector with the client credentials<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#step-3-set-up-logto-connector-with-the-client-credentials" class="hash-link" aria-label="Lien direct vers Step 3: Set up Logto connector with the client credentials" title="Lien direct vers Step 3: Set up Logto connector with the client credentials" translate="no">​</a></h3>
<p>After successfully creating the OIDC application, you will be redirected to the application details page.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_client_credentials.webp" alt="Okta client credentials">
<p>Copy the <code>client ID</code> and <code>client secret</code> and fill in the corresponding fields on the Logto SSO connector <code>Connection</code> tab.</p>
<p>Use your Okta domain as the <code>issuer</code>. Example: <code>https://dev-12345678.okta.com</code>. Once you have filled in all the fields, click the <code>Save</code> button to save the connector settings.</p>
<p>If the <code>issuer</code> link you provided is valid, you will see a parsed full list of Okta IdP configurations shown below the <code>issuer</code> field.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-additional-scopes-optional">Step 4: Additional scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Lien direct vers Step 4: Additional scopes (Optional)" title="Lien direct vers Step 4: Additional scopes (Optional)" translate="no">​</a></h3>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their Okta accounts. Requesting additional Okta permissions requires configuration on both sides:</p>
<p><strong>In Okta admin console:</strong></p>
<ol>
<li class="">Navigate to <strong>Applications &gt; Applications</strong> and select your OIDC application.</li>
<li class="">Go to the <strong>Assignments</strong> tab to ensure your app has access to the required users and groups.</li>
<li class="">For custom scopes, navigate to <strong>Security &gt; API &gt; Authorization Servers</strong> and select your authorization server.</li>
<li class="">Add custom scopes if needed:<!-- -->
<ul>
<li class="">Click <strong>Scopes</strong> and then <strong>Add Scope</strong></li>
<li class="">Define scope names like <code>okta.users.read</code> or <code>okta.groups.read</code> for accessing Okta APIs</li>
<li class="">Configure consent requirements for each scope</li>
</ul>
</li>
</ol>
<p>For a complete list of available scopes and their descriptions, please refer to the <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/api/openapi/okta-oauth/guides/overview/#scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta OIDC documentation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>In Logto Okta connector:</strong></p>
<ol>
<li class="">Logto automatically includes <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information. You can leave the <code>Scopes</code> field blank if you only need basic user information.</li>
<li class="">Add <code>offline_access</code> to the <code>Scopes</code> field if you plan to store tokens for persistent API access. This scope enables refresh tokens for long-lived API access.</li>
<li class="">Add additional scopes (separated by spaces) in the <code>Scopes</code> field to request more data from Okta. For example: <code>okta.users.read okta.groups.read</code></li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>If your app requests these scopes to access Okta APIs and perform actions, make sure to enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. See the next section for details.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-store-tokens-to-access-okta-apis-optional">Step 5: Store tokens to access Okta APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#step-5-store-tokens-to-access-okta-apis-optional" class="hash-link" aria-label="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" title="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" translate="no">​</a></h3>
<p>If you want to access <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/guides/request-user-consent/main/#enable-consent-for-scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta scopes<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and perform actions with user authorization, Logto needs to get specific scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in your Okta developer console API permissions configuration and Logto Okta connector.</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. Logto will securely store Okta access and refresh tokens in the Secret Vault.</li>
<li class="">To ensure refresh tokens are returned, add the <code>offline_access</code> scope to your Okta application permissions and include it in your Logto Okta connector scopes. This scope allows your application to maintain access to resources for extended periods.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-6-set-email-domains-and-enable-the-sso-connector">Step 6: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#step-6-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Lien direct vers Step 6: Set email domains and enable the SSO connector" title="Lien direct vers Step 6: Set email domains and enable the SSO connector" translate="no">​</a></h3>
<p>Provide the <code>email domains</code> of your organization on Logto's connector <code>SSO experience</code> tab. This will enable the SSO connector as an authentication method for those users.</p>
<p>Users with email addresses in the specified domains will be redirected to use your SSO connector as their only authentication method.</p>
<p>For more details about creating OIDC integration with Okta, please check <span class="linkWrapper_B4Bt"><a href="https://help.okta.com/oie/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm" target="_blank" rel="noopener noreferrer" class="link_hf7f">Create OIDC App Integrations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#save-your-configuration" class="hash-link" aria-label="Lien direct vers Save your configuration" title="Lien direct vers Save your configuration" translate="no">​</a></h3>
<p>Double check you have filled out necessary values in the Logto connector configuration area. Click
"Save and Done" (or "Save changes") and the <!-- -->Okta enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable Okta enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" title="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" translate="no">​</a></h2>
<p>You don’t need to configure enterprise connectors individually, Logto simplifies SSO integration into your applications with just one click.</p>
<ol>
<li class="">Navigate to: <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/sign-in-experience/sign-up-and-sign-in" target="_blank" rel="noopener noreferrer" class="link_hf7f">Console &gt; Sign-in &amp; account &gt; Sign-up and sign-in<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">Enable the "Enterprise SSO" toggle.</li>
<li class="">Save changes.</li>
</ol>
<p>Once enabled, a "Single Sign-On" button will appear on your sign-in page. Enterprise users with SSO-enabled email domains can access your services using their enterprise identity providers (IdPs).</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-email-auto-navigation.png" alt="Auto detect SSO sign-in via email domain">
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-link-button-navigation.png" alt="Navigate to SSO sign-in via manually click link button">
<p>To learn more about the SSO user experience, including SP-initiated SSO and IdP-initiated SSO, refer to User flows: <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="testing-and-validation">Testing and Validation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#testing-and-validation" class="hash-link" aria-label="Lien direct vers Testing and Validation" title="Lien direct vers Testing and Validation" translate="no">​</a></h2>
<p>Return to your <!-- -->.NET Core (MVC)<!-- --> app. You should now be able to sign in with <!-- -->Okta enterprise SSO<!-- -->. Enjoy!</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="further-readings">Further readings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#further-readings" class="hash-link" aria-label="Lien direct vers Further readings" title="Lien direct vers Further readings" translate="no">​</a></h2>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows" target="_blank" rel="noopener noreferrer" class="link_hf7f">End-user flows<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Logto provides a out-of-the-box authentication flows including MFA and enterprise SSO, along with powerful APIs for flexible implementation of account settings, security verification, and multi-tenant experience.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/authorization" target="_blank" rel="noopener noreferrer" class="link_hf7f">Authorization<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Authorization defines the actions a user can do or resources they can access after being authenticated. Explore how to protect your API for native and single-page applications and implement Role-based Access Control (RBAC).</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/organizations" target="_blank" rel="noopener noreferrer" class="link_hf7f">Organizations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Particularly effective in multi-tenant SaaS and B2B apps, the organization feature enable tenant creation, member management, organization-level RBAC, and just-in-time-provisioning.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://blog.logto.io/ciam-101-intro-authn-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Customer IAM series<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> Our serial blog posts about Customer (or Consumer) Identity and Access Management, from 101 to advanced topics and beyond.</p>]]></content:encoded>
            <category>SSO providers</category>
            <category>okta-enterprise-sso</category>
            <category>dotnet-core-mvc</category>
            <category>c#</category>
            <category>SAML authentication</category>
            <category>enterprise login</category>
            <category>SSO login</category>
        </item>
        <item>
            <title><![CDATA[How to build Okta enterprise SSO with .NET Core (Razor Pages)]]></title>
            <link>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto</link>
            <guid>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto</guid>
            <pubDate>Fri, 17 Apr 2026 02:54:06 GMT</pubDate>
            <description><![CDATA[{/*]]></description>
            <content:encoded><![CDATA[
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">For our new friends<!-- -->:</span><br><br><p><span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> is an Auth0 alternative designed for modern apps and SaaS products. It
offers both <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/logto" target="_blank" rel="noopener noreferrer" class="link_hf7f">Open-source<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>
services to help you quickly launch your identity and management (IAM) system. Enjoy authentication,
authorization, and multi-tenant management <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">all in one<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.<!-- --> </p><p>We recommend starting with a free development tenant on <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. This allows you to explore all the features easily.</p></div></div></div>
<p>In this article, we will go through the steps to quickly build the <!-- -->Okta enterprise SSO<!-- --> sign-in
experience (user authentication) with <a href="https://learn.microsoft.com/aspnet/core/razor-pages" target="_blank" rel="noopener">.NET Core (Razor Pages)</a> and <span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>Prerequisites</strong></p>
<ul>
<li class="">A running Logto instance. Check out the <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">introduction page<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to get started.</li>
<li class="">Basic knowledge of <a href="https://learn.microsoft.com/aspnet/core/razor-pages" target="_blank" rel="noopener">.NET Core (Razor Pages)</a>.</li>
<li class="">A usable <!-- -->Okta enterprise SSO<!-- --> account.</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="create-an-application-in-logto">Create an application in Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Lien direct vers Create an application in Logto" title="Lien direct vers Create an application in Logto" translate="no">​</a></h2>
<p>Logto is based on OpenID Connect (OIDC) authentication and OAuth 2.0 authorization. It supports federated identity management across multiple applications, commonly called Single Sign-On (SSO).</p>
<p>To create your <!-- -->Traditional web<!-- --> application, simply follow these steps:</p>
<ol>
<li class="">Open the <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. In the "Get started" section, click the "View all" link to open the application frameworks list. Alternatively, you can navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/applications" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console &gt; Applications<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, and click the "Create application" button.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/get-started.png" alt="Get started">
</li>
<li class="">In the opening modal, click the "<!-- -->Traditional web<!-- -->" section or filter all the available "<!-- -->Traditional web<!-- -->" frameworks using the quick filter checkboxes on the left. Click the "<!-- -->.NET Core (Razor Pages)<!-- -->" framework card to start creating your application.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/framework-list.png" alt="Frameworks">
</li>
<li class="">Enter the application name, e.g., "Bookstore," and click "Create application".</li>
</ol>
<p>🎉 Ta-da! You just created your first application in Logto. You'll see a congrats page which includes a detailed integration guide. Follow the guide to see what the experience will be in your application.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="integrate-with-logto">Integrate .NET Core (Razor Pages) with Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#integrate-with-logto" class="hash-link" aria-label="Lien direct vers Integrate .NET Core (Razor Pages) with Logto" title="Lien direct vers Integrate .NET Core (Razor Pages) with Logto" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><ul>
<li class="">The following demonstration is built on .NET Core 8.0. The SDK is compatible with .NET 6.0 or higher.</li>
<li class="">The .NET Core sample projects are available in the <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/csharp" target="_blank" rel="noopener noreferrer" class="link_hf7f">GitHub repository<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ul></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="installation">Installation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#installation" class="hash-link" aria-label="Lien direct vers Installation" title="Lien direct vers Installation" translate="no">​</a></h3>
<p>Add the NuGet package to your project:</p>
<div class="language-bash codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-bash codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">dotnet </span><span class="token function" style="color:rgb(80, 250, 123)">add</span><span class="token plain"> package Logto.AspNetCore.Authentication</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="add-logto-authentication">Add Logto authentication<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#add-logto-authentication" class="hash-link" aria-label="Lien direct vers Add Logto authentication" title="Lien direct vers Add Logto authentication" translate="no">​</a></h3>
<p>Open <code>Startup.cs</code> (or <code>Program.cs</code>) and add the following code to register Logto authentication services:</p>
<div class="language-csharp codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">Program.cs</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-csharp codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">using</span><span class="token plain"> </span><span class="token namespace">Logto</span><span class="token namespace punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token namespace">AspNetCore</span><span class="token namespace punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token namespace">Authentication</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token class-name keyword" style="color:rgb(189, 147, 249);font-style:italic">var</span><span class="token plain"> builder </span><span class="token operator">=</span><span class="token plain"> WebApplication</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">CreateBuilder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">args</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">builder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Services</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">AddLogtoAuthentication</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">options </span><span class="token operator">=&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  options</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Endpoint </span><span class="token operator">=</span><span class="token plain"> builder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Configuration</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">"Logto:Endpoint"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token operator">!</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  options</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">AppId </span><span class="token operator">=</span><span class="token plain"> builder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Configuration</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">"Logto:AppId"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token operator">!</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  options</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">AppSecret </span><span class="token operator">=</span><span class="token plain"> builder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Configuration</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">"Logto:AppSecret"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<p>The <code>AddLogtoAuthentication</code> method will do the following things:</p>
<ul>
<li class="">Set the default authentication scheme to <code>LogtoDefaults.CookieScheme</code>.</li>
<li class="">Set the default challenge scheme to <code>LogtoDefaults.AuthenticationScheme</code>.</li>
<li class="">Set the default sign-out scheme to <code>LogtoDefaults.AuthenticationScheme</code>.</li>
<li class="">Add cookie and OpenID Connect authentication handlers to the authentication scheme.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="sign-in-and-sign-out-flows">Sign-in and sign-out flows<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#sign-in-and-sign-out-flows" class="hash-link" aria-label="Lien direct vers Sign-in and sign-out flows" title="Lien direct vers Sign-in and sign-out flows" translate="no">​</a></h3>
<p>Before we proceed, there are two confusing terms in the .NET Core authentication middleware that we need to clarify:</p>
<ol>
<li class=""><strong>CallbackPath</strong>: The URI that Logto will redirect the user back to after the user has signed in (the "redirect URI" in Logto)</li>
<li class=""><strong>RedirectUri</strong>: The URI that will be redirected to after necessary actions have been taken in the Logto authentication middleware.</li>
</ol>
<p>The sign-in process can be illustrated as follows:</p>
<!-- -->
<br>
<p>Similarly, .NET Core also has <strong>SignedOutCallbackPath</strong> and <strong>RedirectUri</strong> for the sign-out flow.</p>
<p>For the sake of clarity, we'll refer them as follows:</p>
<table><thead><tr><th>Term we use</th><th>.NET Core term</th></tr></thead><tbody><tr><td>Logto redirect URI</td><td>CallbackPath</td></tr><tr><td>Logto post sign-out redirect URI</td><td>SignedOutCallbackPath</td></tr><tr><td>Application redirect URI</td><td>RedirectUri</td></tr></tbody></table>
<details class="details_Qsrn details_Jw1Q" data-collapsed="true"><summary><h3 class="anchor anchorTargetStickyNavbar_iJWz" id="regarding-redirect-based-sign-in">Regarding redirect-based sign-in<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Lien direct vers Regarding redirect-based sign-in" title="Lien direct vers Regarding redirect-based sign-in" translate="no">​</a></h3></summary><div><div class="collapsibleContent_brv9"><ol>
<li class="">This authentication process follows the <span class="linkWrapper_B4Bt"><a href="https://openid.net/specs/openid-connect-core-1_0.html" target="_blank" rel="noopener noreferrer" class="link_hf7f">OpenID Connect (OIDC)<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> protocol, and Logto enforces strict security measures to protect user sign-in.</li>
<li class="">If you have multiple apps, you can use the same identity provider (Logto). Once the user signs in to one app, Logto will automatically complete the sign-in process when the user accesses another app.</li>
</ol><p>To learn more about the rationale and benefits of redirect-based sign-in, see <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/concepts/sign-in-experience" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Logto sign-in experience explained<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p></div></div></details>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uris">Configure redirect URIs<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#configure-redirect-uris" class="hash-link" aria-label="Lien direct vers Configure redirect URIs" title="Lien direct vers Configure redirect URIs" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>In the following code snippets, we assume your app is running on <code>http://localhost:3000/</code>.</p></div></div></div>
<p>First, let's configure the <strong>Logto redirect URI</strong>. Add the following URI to the "Redirect URIs" list in the Logto application details page:</p>
<div class="language-text codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-text codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">http://localhost:3000/Callback</span><br></span></code></pre></div></div>
<p>To configure the <strong>Logto post sign-out redirect URI</strong>, add the following URI to the "Post sign-out redirect URIs" list in the Logto application details page:</p>
<div class="language-text codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-text codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">http://localhost:3000/SignedOutCallback</span><br></span></code></pre></div></div>
<h4 class="anchor anchorTargetStickyNavbar_iJWz" id="change-the-default-paths">Change the default paths<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#change-the-default-paths" class="hash-link" aria-label="Lien direct vers Change the default paths" title="Lien direct vers Change the default paths" translate="no">​</a></h4>
<p>The <strong>Logto redirect URI</strong> has a default path of <code>/Callback</code>, and the <strong>Logto post sign-out redirect URI</strong> has a default path of <code>/SignedOutCallback</code>.</p>
<p>You can leave them as are if there's no special requirement. If you want to change it, you can set the <code>CallbackPath</code> and <code>SignedOutCallbackPath</code> property for <code>LogtoOptions</code>:</p>
<div class="language-csharp codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">Program.cs</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-csharp codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">builder</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Services</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">AddLogtoAuthentication</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">options </span><span class="token operator">=&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">// Other configurations...</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">  options</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">CallbackPath </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"/Foo"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">  options</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">SignedOutCallbackPath </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"/Bar"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<p>Remember to update the value in the Logto application details page accordingly.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-sign-insign-out-buttons">Implement sign-in/sign-out buttons<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#implement-sign-insign-out-buttons" class="hash-link" aria-label="Lien direct vers Implement sign-in/sign-out buttons" title="Lien direct vers Implement sign-in/sign-out buttons" translate="no">​</a></h3>
<p>First, add the handler methods to your <code>PageModel</code>, for example:</p>
<div class="language-csharp codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">Pages/Index.cshtml.cs</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-csharp codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">public</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> </span><span class="token class-name">IndexModel</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token type-list class-name">PageModel</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">public</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> </span><span class="token return-type class-name">Task</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">OnPostSignInAsync</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> HttpContext</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">ChallengeAsync</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">new</span><span class="token plain"> </span><span class="token constructor-invocation class-name">AuthenticationProperties</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      RedirectUri </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"/"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">public</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> </span><span class="token return-type class-name">Task</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">OnPostSignOutAsync</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> HttpContext</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">SignOutAsync</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">new</span><span class="token plain"> </span><span class="token constructor-invocation class-name">AuthenticationProperties</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      RedirectUri </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"/"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>Then, add the buttons to your Razor page:</p>
<div class="language-cshtml codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">Pages/Index.cshtml</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-cshtml codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain">Is authenticated: </span><span class="token value variable keyword" style="color:rgb(189, 147, 249);font-style:italic">@</span><span class="token value variable csharp language-csharp" style="color:rgb(189, 147, 249);font-style:italic">User</span><span class="token value variable csharp language-csharp punctuation" style="color:rgb(248, 248, 242);font-style:italic">.</span><span class="token value variable csharp language-csharp" style="color:rgb(189, 147, 249);font-style:italic">Identity</span><span class="token value variable csharp language-csharp punctuation" style="color:rgb(248, 248, 242);font-style:italic">?.</span><span class="token value variable csharp language-csharp" style="color:rgb(189, 147, 249);font-style:italic">IsAuthenticated</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">form</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">method</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">post</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token block keyword" style="color:rgb(189, 147, 249);font-style:italic">@if</span><span class="token block"> </span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token block csharp language-csharp">User</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token block csharp language-csharp">Identity</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">?.</span><span class="token block csharp language-csharp">IsAuthenticated </span><span class="token block csharp language-csharp operator">==</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp boolean">true</span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">    </span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)">button</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)"> </span><span class="token block csharp language-csharp html tag attr-name" style="color:rgb(241, 250, 140)">type</span><span class="token block csharp language-csharp html tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token block csharp language-csharp html tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token block csharp language-csharp html tag attr-value" style="color:rgb(255, 121, 198)">submit</span><span class="token block csharp language-csharp html tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)"> </span><span class="token block csharp language-csharp html tag attr-name" style="color:rgb(241, 250, 140)">asp-page-handler</span><span class="token block csharp language-csharp html tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token block csharp language-csharp html tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token block csharp language-csharp html tag attr-value" style="color:rgb(255, 121, 198)">SignOut</span><span class="token block csharp language-csharp html tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token block csharp language-csharp html">Sign out</span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)">button</span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">  </span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp keyword" style="color:rgb(189, 147, 249);font-style:italic">else</span><span class="token block csharp language-csharp"> </span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">    </span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)">button</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)"> </span><span class="token block csharp language-csharp html tag attr-name" style="color:rgb(241, 250, 140)">type</span><span class="token block csharp language-csharp html tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token block csharp language-csharp html tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token block csharp language-csharp html tag attr-value" style="color:rgb(255, 121, 198)">submit</span><span class="token block csharp language-csharp html tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)"> </span><span class="token block csharp language-csharp html tag attr-name" style="color:rgb(241, 250, 140)">asp-page-handler</span><span class="token block csharp language-csharp html tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token block csharp language-csharp html tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token block csharp language-csharp html tag attr-value" style="color:rgb(255, 121, 198)">SignIn</span><span class="token block csharp language-csharp html tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token block csharp language-csharp html">Sign in</span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token block csharp language-csharp html tag" style="color:rgb(255, 121, 198)">button</span><span class="token block csharp language-csharp html tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token block csharp language-csharp"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token block csharp language-csharp">  </span><span class="token block csharp language-csharp punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">form</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><br></span></code></pre></div></div>
<p>It will show the "Sign in" button if the user is not authenticated, and show the "Sign out" button if the user is authenticated.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="checkpoint-test-your-application">Checkpoint: Test your application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Lien direct vers Checkpoint: Test your application" title="Lien direct vers Checkpoint: Test your application" translate="no">​</a></h3>
<p>Now, you can test your application:</p>
<ol>
<li class="">Run your application, you will see the sign-in button.</li>
<li class="">Click the sign-in button, the SDK will init the sign-in process and redirect you to the Logto sign-in page.</li>
<li class="">After you signed in, you will be redirected back to your application and see the sign-out button.</li>
<li class="">Click the sign-out button to clear token storage and sign out.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="add-connector-connector">Add Okta enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#add-connector-connector" class="hash-link" aria-label="Lien direct vers Add Okta enterprise SSO connector" title="Lien direct vers Add Okta enterprise SSO connector" translate="no">​</a></h2>
<p>To simplify access management and gain enterprise-level safeguards for your big clients, connect with <!-- -->.NET Core (Razor Pages)<!-- --> as a federated identity provider. The Logto enterprise SSO connector helps you establish this connection in minutes by allowing several parameter inputs.</p>
<p>To add an enterprise SSO connector, simply follow these steps:</p>
<ol>
<li class="">Navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto console &gt; Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-page.png" alt="SSO page">
<ol start="2">
<li class="">Click "Add enterprise connector" button and choose your SSO provider type. Choose from prebuilt connectors for Microsoft Entra ID (Azure AD), Google Workspace, and Okta, or create a custom SSO connection using the standard OpenID Connect (OIDC) or SAML protocol.</li>
<li class="">Provide a unique name (e.g., SSO sign-in for Acme Company).</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/select-your-sso-provider.png" alt="Select your SSO provider">
<ol start="4">
<li class="">Configure the connection with your IdP in the "Connection" tab. Check the guides above for each connector types.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-connection-settings.png" alt="SSO connection">
<ol start="5">
<li class="">Customize the SSO experience and enterprise’s <strong>email domain</strong> in the "Experience" tab. Users sign in with the SSO-enabled email domain will be redirected to SSO authentication.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-experience-settings.png" alt="SSO experience">
<ol start="6">
<li class="">Save changes.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="set-up-connectorconfigname">Set up OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Lien direct vers Set up OIDC application on Okta admin portal" title="Lien direct vers Set up OIDC application on Okta admin portal" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-okta-admin-portal">Step 1: Create an OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#step-1-create-an-oidc-application-on-okta-admin-portal" class="hash-link" aria-label="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" title="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" translate="no">​</a></h3>
<ul>
<li class="">Visit the Okta admin portal and sign in as an administrator.</li>
<li class="">Navigate to the <code>Applications</code>/<code>Applications</code> page using the side menu.</li>
<li class="">Click the <code>Create App Integration</code> button to create a new OIDC application.</li>
<li class="">Select the <code>OIDC - OpenID Connect</code> option as the <code>Sign-in method</code>.</li>
<li class="">Select the <code>Web Application</code> option as the <code>Application type</code>.</li>
</ul>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_create_application.webp" alt="Okta create application">
<p>Click the <code>Next</code> button to continue.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-the-application-settings">Step 2: Configure the application settings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Lien direct vers Step 2: Configure the application settings" title="Lien direct vers Step 2: Configure the application settings" translate="no">​</a></h3>
<ol>
<li class="">Provide an <code>App integration name</code>. It will be used as the identifier of your OIDC application.</li>
<li class="">Add a new <code>Sign-in redirect URIs</code> using the Logto SSO connector's callback URL.</li>
</ol>
<p>This is the URI that the Okta will redirect the user's browser after successful authentication. After a user successfully authenticates with the IdP, the IdP redirects the user's browser back to this designated URI along with an authorization code. Logto will complete the authentication process based on the authorization code received from this URI.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_application_settings.webp" alt="Okta application settings">
<ol start="3">
<li class="">Assign users to the application.</li>
</ol>
<p>Based on the <code>Assignments</code> settings, you can choose to assign the application to all users or specific users/groups.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_assign_users.webp" alt="Okta assign users">
<p>Click the <code>Save</code> button to save the application settings.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-set-up-logto-connector-with-the-client-credentials">Step 3: Set up Logto connector with the client credentials<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#step-3-set-up-logto-connector-with-the-client-credentials" class="hash-link" aria-label="Lien direct vers Step 3: Set up Logto connector with the client credentials" title="Lien direct vers Step 3: Set up Logto connector with the client credentials" translate="no">​</a></h3>
<p>After successfully creating the OIDC application, you will be redirected to the application details page.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_client_credentials.webp" alt="Okta client credentials">
<p>Copy the <code>client ID</code> and <code>client secret</code> and fill in the corresponding fields on the Logto SSO connector <code>Connection</code> tab.</p>
<p>Use your Okta domain as the <code>issuer</code>. Example: <code>https://dev-12345678.okta.com</code>. Once you have filled in all the fields, click the <code>Save</code> button to save the connector settings.</p>
<p>If the <code>issuer</code> link you provided is valid, you will see a parsed full list of Okta IdP configurations shown below the <code>issuer</code> field.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-additional-scopes-optional">Step 4: Additional scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Lien direct vers Step 4: Additional scopes (Optional)" title="Lien direct vers Step 4: Additional scopes (Optional)" translate="no">​</a></h3>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their Okta accounts. Requesting additional Okta permissions requires configuration on both sides:</p>
<p><strong>In Okta admin console:</strong></p>
<ol>
<li class="">Navigate to <strong>Applications &gt; Applications</strong> and select your OIDC application.</li>
<li class="">Go to the <strong>Assignments</strong> tab to ensure your app has access to the required users and groups.</li>
<li class="">For custom scopes, navigate to <strong>Security &gt; API &gt; Authorization Servers</strong> and select your authorization server.</li>
<li class="">Add custom scopes if needed:<!-- -->
<ul>
<li class="">Click <strong>Scopes</strong> and then <strong>Add Scope</strong></li>
<li class="">Define scope names like <code>okta.users.read</code> or <code>okta.groups.read</code> for accessing Okta APIs</li>
<li class="">Configure consent requirements for each scope</li>
</ul>
</li>
</ol>
<p>For a complete list of available scopes and their descriptions, please refer to the <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/api/openapi/okta-oauth/guides/overview/#scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta OIDC documentation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>In Logto Okta connector:</strong></p>
<ol>
<li class="">Logto automatically includes <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information. You can leave the <code>Scopes</code> field blank if you only need basic user information.</li>
<li class="">Add <code>offline_access</code> to the <code>Scopes</code> field if you plan to store tokens for persistent API access. This scope enables refresh tokens for long-lived API access.</li>
<li class="">Add additional scopes (separated by spaces) in the <code>Scopes</code> field to request more data from Okta. For example: <code>okta.users.read okta.groups.read</code></li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>If your app requests these scopes to access Okta APIs and perform actions, make sure to enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. See the next section for details.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-store-tokens-to-access-okta-apis-optional">Step 5: Store tokens to access Okta APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#step-5-store-tokens-to-access-okta-apis-optional" class="hash-link" aria-label="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" title="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" translate="no">​</a></h3>
<p>If you want to access <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/guides/request-user-consent/main/#enable-consent-for-scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta scopes<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and perform actions with user authorization, Logto needs to get specific scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in your Okta developer console API permissions configuration and Logto Okta connector.</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. Logto will securely store Okta access and refresh tokens in the Secret Vault.</li>
<li class="">To ensure refresh tokens are returned, add the <code>offline_access</code> scope to your Okta application permissions and include it in your Logto Okta connector scopes. This scope allows your application to maintain access to resources for extended periods.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-6-set-email-domains-and-enable-the-sso-connector">Step 6: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#step-6-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Lien direct vers Step 6: Set email domains and enable the SSO connector" title="Lien direct vers Step 6: Set email domains and enable the SSO connector" translate="no">​</a></h3>
<p>Provide the <code>email domains</code> of your organization on Logto's connector <code>SSO experience</code> tab. This will enable the SSO connector as an authentication method for those users.</p>
<p>Users with email addresses in the specified domains will be redirected to use your SSO connector as their only authentication method.</p>
<p>For more details about creating OIDC integration with Okta, please check <span class="linkWrapper_B4Bt"><a href="https://help.okta.com/oie/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm" target="_blank" rel="noopener noreferrer" class="link_hf7f">Create OIDC App Integrations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#save-your-configuration" class="hash-link" aria-label="Lien direct vers Save your configuration" title="Lien direct vers Save your configuration" translate="no">​</a></h3>
<p>Double check you have filled out necessary values in the Logto connector configuration area. Click
"Save and Done" (or "Save changes") and the <!-- -->Okta enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable Okta enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" title="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" translate="no">​</a></h2>
<p>You don’t need to configure enterprise connectors individually, Logto simplifies SSO integration into your applications with just one click.</p>
<ol>
<li class="">Navigate to: <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/sign-in-experience/sign-up-and-sign-in" target="_blank" rel="noopener noreferrer" class="link_hf7f">Console &gt; Sign-in &amp; account &gt; Sign-up and sign-in<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">Enable the "Enterprise SSO" toggle.</li>
<li class="">Save changes.</li>
</ol>
<p>Once enabled, a "Single Sign-On" button will appear on your sign-in page. Enterprise users with SSO-enabled email domains can access your services using their enterprise identity providers (IdPs).</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-email-auto-navigation.png" alt="Auto detect SSO sign-in via email domain">
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-link-button-navigation.png" alt="Navigate to SSO sign-in via manually click link button">
<p>To learn more about the SSO user experience, including SP-initiated SSO and IdP-initiated SSO, refer to User flows: <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="testing-and-validation">Testing and Validation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#testing-and-validation" class="hash-link" aria-label="Lien direct vers Testing and Validation" title="Lien direct vers Testing and Validation" translate="no">​</a></h2>
<p>Return to your <!-- -->.NET Core (Razor Pages)<!-- --> app. You should now be able to sign in with <!-- -->Okta enterprise SSO<!-- -->. Enjoy!</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="further-readings">Further readings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#further-readings" class="hash-link" aria-label="Lien direct vers Further readings" title="Lien direct vers Further readings" translate="no">​</a></h2>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows" target="_blank" rel="noopener noreferrer" class="link_hf7f">End-user flows<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Logto provides a out-of-the-box authentication flows including MFA and enterprise SSO, along with powerful APIs for flexible implementation of account settings, security verification, and multi-tenant experience.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/authorization" target="_blank" rel="noopener noreferrer" class="link_hf7f">Authorization<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Authorization defines the actions a user can do or resources they can access after being authenticated. Explore how to protect your API for native and single-page applications and implement Role-based Access Control (RBAC).</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/organizations" target="_blank" rel="noopener noreferrer" class="link_hf7f">Organizations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Particularly effective in multi-tenant SaaS and B2B apps, the organization feature enable tenant creation, member management, organization-level RBAC, and just-in-time-provisioning.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://blog.logto.io/ciam-101-intro-authn-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Customer IAM series<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> Our serial blog posts about Customer (or Consumer) Identity and Access Management, from 101 to advanced topics and beyond.</p>]]></content:encoded>
            <category>SSO providers</category>
            <category>okta-enterprise-sso</category>
            <category>dotnet-core-razor-pages</category>
            <category>c#</category>
            <category>SAML authentication</category>
            <category>enterprise login</category>
            <category>SSO login</category>
        </item>
        <item>
            <title><![CDATA[How to build Okta enterprise SSO with Expo (React Native)]]></title>
            <link>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto</link>
            <guid>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto</guid>
            <pubDate>Fri, 17 Apr 2026 02:54:06 GMT</pubDate>
            <description><![CDATA[{/*]]></description>
            <content:encoded><![CDATA[
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">For our new friends<!-- -->:</span><br><br><p><span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> is an Auth0 alternative designed for modern apps and SaaS products. It
offers both <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/logto" target="_blank" rel="noopener noreferrer" class="link_hf7f">Open-source<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>
services to help you quickly launch your identity and management (IAM) system. Enjoy authentication,
authorization, and multi-tenant management <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">all in one<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.<!-- --> </p><p>We recommend starting with a free development tenant on <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. This allows you to explore all the features easily.</p></div></div></div>
<p>In this article, we will go through the steps to quickly build the <!-- -->Okta enterprise SSO<!-- --> sign-in
experience (user authentication) with <a href="https://expo.dev/" target="_blank" rel="noopener">Expo (React Native)</a> and <span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>Prerequisites</strong></p>
<ul>
<li class="">A running Logto instance. Check out the <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">introduction page<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to get started.</li>
<li class="">Basic knowledge of <a href="https://expo.dev/" target="_blank" rel="noopener">Expo (React Native)</a>.</li>
<li class="">A usable <!-- -->Okta enterprise SSO<!-- --> account.</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="create-an-application-in-logto">Create an application in Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Lien direct vers Create an application in Logto" title="Lien direct vers Create an application in Logto" translate="no">​</a></h2>
<p>Logto is based on OpenID Connect (OIDC) authentication and OAuth 2.0 authorization. It supports federated identity management across multiple applications, commonly called Single Sign-On (SSO).</p>
<p>To create your <!-- -->Native app<!-- --> application, simply follow these steps:</p>
<ol>
<li class="">Open the <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. In the "Get started" section, click the "View all" link to open the application frameworks list. Alternatively, you can navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/applications" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console &gt; Applications<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, and click the "Create application" button.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/get-started.png" alt="Get started">
</li>
<li class="">In the opening modal, click the "<!-- -->Native app<!-- -->" section or filter all the available "<!-- -->Native app<!-- -->" frameworks using the quick filter checkboxes on the left. Click the "<!-- -->Expo<!-- -->" framework card to start creating your application.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/framework-list.png" alt="Frameworks">
</li>
<li class="">Enter the application name, e.g., "Bookstore," and click "Create application".</li>
</ol>
<p>🎉 Ta-da! You just created your first application in Logto. You'll see a congrats page which includes a detailed integration guide. Follow the guide to see what the experience will be in your application.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="integrate-with-logto">Integrate Expo with Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#integrate-with-logto" class="hash-link" aria-label="Lien direct vers Integrate Expo with Logto" title="Lien direct vers Integrate Expo with Logto" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><ul>
<li class="">The following demonstration is built on Expo ~50.0.6.</li>
<li class="">The sample project is available on our <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/react-native/tree/master/packages/rn-sample" target="_blank" rel="noopener noreferrer" class="link_hf7f">SDK repository<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ul></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="installation">Installation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#installation" class="hash-link" aria-label="Lien direct vers Installation" title="Lien direct vers Installation" translate="no">​</a></h3>
<p>Install Logto SDK and peer dependencies via your favorite package manager:</p>
<div class="theme-tabs-container tabs-container tabList_q32P"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_DwL7 tabs__item--active">npm</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_DwL7">Yarn</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_DwL7">pnpm</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_bR4Y"><div class="language-bash codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-bash codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> i @logto/rn</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> i expo-crypto expo-secure-store expo-web-browser @react-native-async-storage/async-storage</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_bR4Y" hidden=""><div class="language-bash codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-bash codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">yarn</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">add</span><span class="token plain"> @logto/rn</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token function" style="color:rgb(80, 250, 123)">yarn</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">add</span><span class="token plain"> expo-crypto expo-secure-store expo-web-browser @react-native-async-storage/async-storage</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_bR4Y" hidden=""><div class="language-bash codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-bash codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">pnpm</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">add</span><span class="token plain"> @logto/rn</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token function" style="color:rgb(80, 250, 123)">pnpm</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">add</span><span class="token plain"> expo-crypto expo-secure-store expo-web-browser @react-native-async-storage/async-storage</span><br></span></code></pre></div></div></div></div></div>
<p>The <code>@logto/rn</code> package is the SDK for Logto. The remaining packages are its peer dependencies. They couldn't be listed as direct dependencies because the Expo CLI requires that all dependencies for native modules be installed directly within the root project's <code>package.json</code>.</p>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>If you're installing this in a <span class="linkWrapper_B4Bt"><a href="https://docs.expo.dev/bare/overview" target="_blank" rel="noopener noreferrer" class="link_hf7f">bare React Native app<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, you should also follow these <span class="linkWrapper_B4Bt"><a href="https://docs.expo.dev/bare/installing-expo-modules/" target="_blank" rel="noopener noreferrer" class="link_hf7f">additional installation instructions<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="init-logto-provider">Init Logto provider<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#init-logto-provider" class="hash-link" aria-label="Lien direct vers Init Logto provider" title="Lien direct vers Init Logto provider" translate="no">​</a></h3>
<p>Import and use <code>LogtoProvider</code> to provide a Logto context:</p>
<div class="language-tsx codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">App.tsx</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-tsx codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token imports"> </span><span class="token imports maybe-class-name">LogtoProvider</span><span class="token imports punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token imports"> </span><span class="token imports maybe-class-name">LogtoConfig</span><span class="token imports"> </span><span class="token imports punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'@logto/rn'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> config</span><span class="token operator">:</span><span class="token plain"> </span><span class="token maybe-class-name">LogtoConfig</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  endpoint</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'&lt;your-logto-endpoint&gt;'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  appId</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'&lt;your-application-id&gt;'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token function-variable function" style="color:rgb(80, 250, 123)">App</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token arrow operator">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">LogtoProvider</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">config</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(248, 248, 242)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)">config</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text">    </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">YourAppContent</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">/&gt;</span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text">  </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">LogtoProvider</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-sign-in-and-sign-out">Implement sign-in and sign-out<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#implement-sign-in-and-sign-out" class="hash-link" aria-label="Lien direct vers Implement sign-in and sign-out" title="Lien direct vers Implement sign-in and sign-out" translate="no">​</a></h3>
<p>Before we dive into the details, here's a quick overview of the end-user experience. The sign-in process can be simplified as follows:</p>
<!-- -->
<ol>
<li class="">Your app invokes the sign-in method.</li>
<li class="">The user is redirected to the Logto sign-in page. For native apps, the system browser is opened.</li>
<li class="">The user signs in and is redirected back to your app (configured as the redirect URI).</li>
</ol>
<details class="details_Qsrn details_Jw1Q" data-collapsed="true"><summary><h3 class="anchor anchorTargetStickyNavbar_iJWz" id="regarding-redirect-based-sign-in">Regarding redirect-based sign-in<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Lien direct vers Regarding redirect-based sign-in" title="Lien direct vers Regarding redirect-based sign-in" translate="no">​</a></h3></summary><div><div class="collapsibleContent_brv9"><ol>
<li class="">This authentication process follows the <span class="linkWrapper_B4Bt"><a href="https://openid.net/specs/openid-connect-core-1_0.html" target="_blank" rel="noopener noreferrer" class="link_hf7f">OpenID Connect (OIDC)<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> protocol, and Logto enforces strict security measures to protect user sign-in.</li>
<li class="">If you have multiple apps, you can use the same identity provider (Logto). Once the user signs in to one app, Logto will automatically complete the sign-in process when the user accesses another app.</li>
</ol><p>To learn more about the rationale and benefits of redirect-based sign-in, see <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/concepts/sign-in-experience" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Logto sign-in experience explained<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p></div></div></details>
<hr>
<p>Switch to the application details page of Logto Console. Add a native redirect URI (for example, <code>io.logto://callback</code>), then click "Save".</p>
<ul>
<li class="">
<p>For iOS, the redirect URI scheme does not really matter since the <code>ASWebAuthenticationSession</code> class will listen to the redirect URI regardless of if it's registered.</p>
</li>
<li class="">
<p>For Android, the redirect URI scheme must be filled in Expo's <code>app.json</code> file, for example:</p>
<div class="language-json codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">app.json</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-json codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token property">"expo"</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token property">"scheme"</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"io.logto"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
</li>
</ul>
<p>Now back to your app, you can use <code>useLogto</code> hook to sign in and sign out:</p>
<div class="language-tsx codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">App.tsx</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-tsx codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token imports"> useLogto </span><span class="token imports punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'@logto/rn'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token imports"> </span><span class="token imports maybe-class-name">Button</span><span class="token imports"> </span><span class="token imports punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'react-native'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token function-variable function" style="color:rgb(80, 250, 123)">Content</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token arrow operator">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> signOut</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> isAuthenticated </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">useLogto</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">div</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text">      </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain">isAuthenticated </span><span class="token operator">?</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Button</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">title</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">Sign out</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">onPress</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(248, 248, 242)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript arrow operator" style="color:rgb(255, 121, 198)">=&gt;</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript function" style="color:rgb(80, 250, 123)">signOut</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">/&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token comment" style="color:rgb(98, 114, 164)">// Replace the redirect URI with your own</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Button</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">title</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">Sign in</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">onPress</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(248, 248, 242)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript arrow operator" style="color:rgb(255, 121, 198)">=&gt;</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript function" style="color:rgb(80, 250, 123)">signIn</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'io.logto://callback'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">/&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text">    </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">div</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="checkpoint-test-your-application">Checkpoint: Test your application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Lien direct vers Checkpoint: Test your application" title="Lien direct vers Checkpoint: Test your application" translate="no">​</a></h3>
<p>Now, you can test your application:</p>
<ol>
<li class="">Run your application, you will see the sign-in button.</li>
<li class="">Click the sign-in button, the SDK will init the sign-in process and redirect you to the Logto sign-in page.</li>
<li class="">After you signed in, you will be redirected back to your application and see the sign-out button.</li>
<li class="">Click the sign-out button to clear token storage and sign out.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="add-connector-connector">Add Okta enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#add-connector-connector" class="hash-link" aria-label="Lien direct vers Add Okta enterprise SSO connector" title="Lien direct vers Add Okta enterprise SSO connector" translate="no">​</a></h2>
<p>To simplify access management and gain enterprise-level safeguards for your big clients, connect with <!-- -->Expo<!-- --> as a federated identity provider. The Logto enterprise SSO connector helps you establish this connection in minutes by allowing several parameter inputs.</p>
<p>To add an enterprise SSO connector, simply follow these steps:</p>
<ol>
<li class="">Navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto console &gt; Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-page.png" alt="SSO page">
<ol start="2">
<li class="">Click "Add enterprise connector" button and choose your SSO provider type. Choose from prebuilt connectors for Microsoft Entra ID (Azure AD), Google Workspace, and Okta, or create a custom SSO connection using the standard OpenID Connect (OIDC) or SAML protocol.</li>
<li class="">Provide a unique name (e.g., SSO sign-in for Acme Company).</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/select-your-sso-provider.png" alt="Select your SSO provider">
<ol start="4">
<li class="">Configure the connection with your IdP in the "Connection" tab. Check the guides above for each connector types.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-connection-settings.png" alt="SSO connection">
<ol start="5">
<li class="">Customize the SSO experience and enterprise’s <strong>email domain</strong> in the "Experience" tab. Users sign in with the SSO-enabled email domain will be redirected to SSO authentication.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-experience-settings.png" alt="SSO experience">
<ol start="6">
<li class="">Save changes.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="set-up-connectorconfigname">Set up OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Lien direct vers Set up OIDC application on Okta admin portal" title="Lien direct vers Set up OIDC application on Okta admin portal" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-okta-admin-portal">Step 1: Create an OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#step-1-create-an-oidc-application-on-okta-admin-portal" class="hash-link" aria-label="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" title="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" translate="no">​</a></h3>
<ul>
<li class="">Visit the Okta admin portal and sign in as an administrator.</li>
<li class="">Navigate to the <code>Applications</code>/<code>Applications</code> page using the side menu.</li>
<li class="">Click the <code>Create App Integration</code> button to create a new OIDC application.</li>
<li class="">Select the <code>OIDC - OpenID Connect</code> option as the <code>Sign-in method</code>.</li>
<li class="">Select the <code>Web Application</code> option as the <code>Application type</code>.</li>
</ul>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_create_application.webp" alt="Okta create application">
<p>Click the <code>Next</code> button to continue.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-the-application-settings">Step 2: Configure the application settings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Lien direct vers Step 2: Configure the application settings" title="Lien direct vers Step 2: Configure the application settings" translate="no">​</a></h3>
<ol>
<li class="">Provide an <code>App integration name</code>. It will be used as the identifier of your OIDC application.</li>
<li class="">Add a new <code>Sign-in redirect URIs</code> using the Logto SSO connector's callback URL.</li>
</ol>
<p>This is the URI that the Okta will redirect the user's browser after successful authentication. After a user successfully authenticates with the IdP, the IdP redirects the user's browser back to this designated URI along with an authorization code. Logto will complete the authentication process based on the authorization code received from this URI.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_application_settings.webp" alt="Okta application settings">
<ol start="3">
<li class="">Assign users to the application.</li>
</ol>
<p>Based on the <code>Assignments</code> settings, you can choose to assign the application to all users or specific users/groups.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_assign_users.webp" alt="Okta assign users">
<p>Click the <code>Save</code> button to save the application settings.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-set-up-logto-connector-with-the-client-credentials">Step 3: Set up Logto connector with the client credentials<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#step-3-set-up-logto-connector-with-the-client-credentials" class="hash-link" aria-label="Lien direct vers Step 3: Set up Logto connector with the client credentials" title="Lien direct vers Step 3: Set up Logto connector with the client credentials" translate="no">​</a></h3>
<p>After successfully creating the OIDC application, you will be redirected to the application details page.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_client_credentials.webp" alt="Okta client credentials">
<p>Copy the <code>client ID</code> and <code>client secret</code> and fill in the corresponding fields on the Logto SSO connector <code>Connection</code> tab.</p>
<p>Use your Okta domain as the <code>issuer</code>. Example: <code>https://dev-12345678.okta.com</code>. Once you have filled in all the fields, click the <code>Save</code> button to save the connector settings.</p>
<p>If the <code>issuer</code> link you provided is valid, you will see a parsed full list of Okta IdP configurations shown below the <code>issuer</code> field.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-additional-scopes-optional">Step 4: Additional scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Lien direct vers Step 4: Additional scopes (Optional)" title="Lien direct vers Step 4: Additional scopes (Optional)" translate="no">​</a></h3>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their Okta accounts. Requesting additional Okta permissions requires configuration on both sides:</p>
<p><strong>In Okta admin console:</strong></p>
<ol>
<li class="">Navigate to <strong>Applications &gt; Applications</strong> and select your OIDC application.</li>
<li class="">Go to the <strong>Assignments</strong> tab to ensure your app has access to the required users and groups.</li>
<li class="">For custom scopes, navigate to <strong>Security &gt; API &gt; Authorization Servers</strong> and select your authorization server.</li>
<li class="">Add custom scopes if needed:<!-- -->
<ul>
<li class="">Click <strong>Scopes</strong> and then <strong>Add Scope</strong></li>
<li class="">Define scope names like <code>okta.users.read</code> or <code>okta.groups.read</code> for accessing Okta APIs</li>
<li class="">Configure consent requirements for each scope</li>
</ul>
</li>
</ol>
<p>For a complete list of available scopes and their descriptions, please refer to the <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/api/openapi/okta-oauth/guides/overview/#scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta OIDC documentation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>In Logto Okta connector:</strong></p>
<ol>
<li class="">Logto automatically includes <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information. You can leave the <code>Scopes</code> field blank if you only need basic user information.</li>
<li class="">Add <code>offline_access</code> to the <code>Scopes</code> field if you plan to store tokens for persistent API access. This scope enables refresh tokens for long-lived API access.</li>
<li class="">Add additional scopes (separated by spaces) in the <code>Scopes</code> field to request more data from Okta. For example: <code>okta.users.read okta.groups.read</code></li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>If your app requests these scopes to access Okta APIs and perform actions, make sure to enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. See the next section for details.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-store-tokens-to-access-okta-apis-optional">Step 5: Store tokens to access Okta APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#step-5-store-tokens-to-access-okta-apis-optional" class="hash-link" aria-label="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" title="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" translate="no">​</a></h3>
<p>If you want to access <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/guides/request-user-consent/main/#enable-consent-for-scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta scopes<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and perform actions with user authorization, Logto needs to get specific scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in your Okta developer console API permissions configuration and Logto Okta connector.</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. Logto will securely store Okta access and refresh tokens in the Secret Vault.</li>
<li class="">To ensure refresh tokens are returned, add the <code>offline_access</code> scope to your Okta application permissions and include it in your Logto Okta connector scopes. This scope allows your application to maintain access to resources for extended periods.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-6-set-email-domains-and-enable-the-sso-connector">Step 6: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#step-6-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Lien direct vers Step 6: Set email domains and enable the SSO connector" title="Lien direct vers Step 6: Set email domains and enable the SSO connector" translate="no">​</a></h3>
<p>Provide the <code>email domains</code> of your organization on Logto's connector <code>SSO experience</code> tab. This will enable the SSO connector as an authentication method for those users.</p>
<p>Users with email addresses in the specified domains will be redirected to use your SSO connector as their only authentication method.</p>
<p>For more details about creating OIDC integration with Okta, please check <span class="linkWrapper_B4Bt"><a href="https://help.okta.com/oie/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm" target="_blank" rel="noopener noreferrer" class="link_hf7f">Create OIDC App Integrations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#save-your-configuration" class="hash-link" aria-label="Lien direct vers Save your configuration" title="Lien direct vers Save your configuration" translate="no">​</a></h3>
<p>Double check you have filled out necessary values in the Logto connector configuration area. Click
"Save and Done" (or "Save changes") and the <!-- -->Okta enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable Okta enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" title="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" translate="no">​</a></h2>
<p>You don’t need to configure enterprise connectors individually, Logto simplifies SSO integration into your applications with just one click.</p>
<ol>
<li class="">Navigate to: <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/sign-in-experience/sign-up-and-sign-in" target="_blank" rel="noopener noreferrer" class="link_hf7f">Console &gt; Sign-in &amp; account &gt; Sign-up and sign-in<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">Enable the "Enterprise SSO" toggle.</li>
<li class="">Save changes.</li>
</ol>
<p>Once enabled, a "Single Sign-On" button will appear on your sign-in page. Enterprise users with SSO-enabled email domains can access your services using their enterprise identity providers (IdPs).</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-email-auto-navigation.png" alt="Auto detect SSO sign-in via email domain">
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-link-button-navigation.png" alt="Navigate to SSO sign-in via manually click link button">
<p>To learn more about the SSO user experience, including SP-initiated SSO and IdP-initiated SSO, refer to User flows: <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="testing-and-validation">Testing and Validation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#testing-and-validation" class="hash-link" aria-label="Lien direct vers Testing and Validation" title="Lien direct vers Testing and Validation" translate="no">​</a></h2>
<p>Return to your <!-- -->Expo (React Native)<!-- --> app. You should now be able to sign in with <!-- -->Okta enterprise SSO<!-- -->. Enjoy!</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="further-readings">Further readings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#further-readings" class="hash-link" aria-label="Lien direct vers Further readings" title="Lien direct vers Further readings" translate="no">​</a></h2>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows" target="_blank" rel="noopener noreferrer" class="link_hf7f">End-user flows<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Logto provides a out-of-the-box authentication flows including MFA and enterprise SSO, along with powerful APIs for flexible implementation of account settings, security verification, and multi-tenant experience.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/authorization" target="_blank" rel="noopener noreferrer" class="link_hf7f">Authorization<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Authorization defines the actions a user can do or resources they can access after being authenticated. Explore how to protect your API for native and single-page applications and implement Role-based Access Control (RBAC).</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/organizations" target="_blank" rel="noopener noreferrer" class="link_hf7f">Organizations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Particularly effective in multi-tenant SaaS and B2B apps, the organization feature enable tenant creation, member management, organization-level RBAC, and just-in-time-provisioning.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://blog.logto.io/ciam-101-intro-authn-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Customer IAM series<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> Our serial blog posts about Customer (or Consumer) Identity and Access Management, from 101 to advanced topics and beyond.</p>]]></content:encoded>
            <category>SSO providers</category>
            <category>okta-enterprise-sso</category>
            <category>expo-react-native</category>
            <category>js</category>
            <category>SAML authentication</category>
            <category>enterprise login</category>
            <category>SSO login</category>
        </item>
        <item>
            <title><![CDATA[How to build Okta enterprise SSO with Express]]></title>
            <link>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto</link>
            <guid>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto</guid>
            <pubDate>Fri, 17 Apr 2026 02:54:06 GMT</pubDate>
            <description><![CDATA[{/*]]></description>
            <content:encoded><![CDATA[
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">For our new friends<!-- -->:</span><br><br><p><span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> is an Auth0 alternative designed for modern apps and SaaS products. It
offers both <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/logto" target="_blank" rel="noopener noreferrer" class="link_hf7f">Open-source<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>
services to help you quickly launch your identity and management (IAM) system. Enjoy authentication,
authorization, and multi-tenant management <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">all in one<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.<!-- --> </p><p>We recommend starting with a free development tenant on <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. This allows you to explore all the features easily.</p></div></div></div>
<p>In this article, we will go through the steps to quickly build the <!-- -->Okta enterprise SSO<!-- --> sign-in
experience (user authentication) with <a href="https://expressjs.com/" target="_blank" rel="noopener">Express</a> and <span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>Prerequisites</strong></p>
<ul>
<li class="">A running Logto instance. Check out the <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">introduction page<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to get started.</li>
<li class="">Basic knowledge of <a href="https://expressjs.com/" target="_blank" rel="noopener">Express</a>.</li>
<li class="">A usable <!-- -->Okta enterprise SSO<!-- --> account.</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="create-an-application-in-logto">Create an application in Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Lien direct vers Create an application in Logto" title="Lien direct vers Create an application in Logto" translate="no">​</a></h2>
<p>Logto is based on OpenID Connect (OIDC) authentication and OAuth 2.0 authorization. It supports federated identity management across multiple applications, commonly called Single Sign-On (SSO).</p>
<p>To create your <!-- -->Traditional web<!-- --> application, simply follow these steps:</p>
<ol>
<li class="">Open the <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. In the "Get started" section, click the "View all" link to open the application frameworks list. Alternatively, you can navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/applications" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console &gt; Applications<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, and click the "Create application" button.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/get-started.png" alt="Get started">
</li>
<li class="">In the opening modal, click the "<!-- -->Traditional web<!-- -->" section or filter all the available "<!-- -->Traditional web<!-- -->" frameworks using the quick filter checkboxes on the left. Click the "<!-- -->Express<!-- -->" framework card to start creating your application.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/framework-list.png" alt="Frameworks">
</li>
<li class="">Enter the application name, e.g., "Bookstore," and click "Create application".</li>
</ol>
<p>🎉 Ta-da! You just created your first application in Logto. You'll see a congrats page which includes a detailed integration guide. Follow the guide to see what the experience will be in your application.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="integrate-with-logto">Integrate Express with Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#integrate-with-logto" class="hash-link" aria-label="Lien direct vers Integrate Express with Logto" title="Lien direct vers Integrate Express with Logto" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><ul>
<li class="">The sample project is available on our <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/js/tree/master/packages/express-sample" target="_blank" rel="noopener noreferrer" class="link_hf7f">SDK repository<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ul></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="installation">Installation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#installation" class="hash-link" aria-label="Lien direct vers Installation" title="Lien direct vers Installation" translate="no">​</a></h3>
<!-- -->
<p>Install Logto SDK via your favorite package manager:</p>
<div class="theme-tabs-container tabs-container tabList_q32P"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_DwL7 tabs__item--active">npm</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_DwL7">pnpm</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_DwL7">yarn</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_bR4Y"><pre><code class="language-bash">npm i <!-- -->@logto/express cookie-parser express-session</code></pre></div><div role="tabpanel" class="tabItem_bR4Y" hidden=""><pre><code class="language-bash">pnpm add <!-- -->@logto/express cookie-parser express-session</code></pre></div><div role="tabpanel" class="tabItem_bR4Y" hidden=""><pre><code class="language-bash">yarn add <!-- -->@logto/express cookie-parser express-session</code></pre></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="integration">Integration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#integration" class="hash-link" aria-label="Lien direct vers Integration" title="Lien direct vers Integration" translate="no">​</a></h3>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="prepare-configs-and-required-middlewares">Prepare configs and required middlewares<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#prepare-configs-and-required-middlewares" class="hash-link" aria-label="Lien direct vers Prepare configs and required middlewares" title="Lien direct vers Prepare configs and required middlewares" translate="no">​</a></h3>
<p>Prepare configuration for the Logto client:</p>
<div class="language-ts codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">app.ts</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-ts codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> LogtoExpressConfig </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'@logto/express'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> config</span><span class="token operator">:</span><span class="token plain"> LogtoExpressConfig </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  appId</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'&lt;your-application-id&gt;'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  appSecret</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'&lt;your-application-secret&gt;'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  endpoint</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'&lt;your-logto-endpoint&gt;'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">// E.g. http://localhost:3001</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  baseUrl</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'&lt;your-express-app-base-url&gt;'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">// E.g. http://localhost:3000</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<p>The SDK requires <span class="linkWrapper_B4Bt"><a href="https://www.npmjs.com/package/express-session" target="_blank" rel="noopener noreferrer" class="link_hf7f">express-session<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to be configured in prior.</p>
<div class="language-ts codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">app.ts</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-ts codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> cookieParser </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'cookie-parser'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> session </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'express-session'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">app</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">use</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token function" style="color:rgb(80, 250, 123)">cookieParser</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">app</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">use</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token function" style="color:rgb(80, 250, 123)">session</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    secret</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'random_session_key'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">// Replace with your own secret</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    cookie</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> maxAge</span><span class="token operator">:</span><span class="token plain"> </span><span class="token number">14</span><span class="token plain"> </span><span class="token operator">*</span><span class="token plain"> </span><span class="token number">24</span><span class="token plain"> </span><span class="token operator">*</span><span class="token plain"> </span><span class="token number">60</span><span class="token plain"> </span><span class="token operator">*</span><span class="token plain"> </span><span class="token number">60</span><span class="token plain"> </span><span class="token operator">*</span><span class="token plain"> </span><span class="token number">1000</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">// In miliseconds</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uris">Configure redirect URIs<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#configure-redirect-uris" class="hash-link" aria-label="Lien direct vers Configure redirect URIs" title="Lien direct vers Configure redirect URIs" translate="no">​</a></h3>
<p>Before we dive into the details, here's a quick overview of the end-user experience. The sign-in process can be simplified as follows:</p>
<!-- -->
<ol>
<li class="">Your app invokes the sign-in method.</li>
<li class="">The user is redirected to the Logto sign-in page. For native apps, the system browser is opened.</li>
<li class="">The user signs in and is redirected back to your app (configured as the redirect URI).</li>
</ol>
<details class="details_Qsrn details_Jw1Q" data-collapsed="true"><summary><h3 class="anchor anchorTargetStickyNavbar_iJWz" id="regarding-redirect-based-sign-in">Regarding redirect-based sign-in<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Lien direct vers Regarding redirect-based sign-in" title="Lien direct vers Regarding redirect-based sign-in" translate="no">​</a></h3></summary><div><div class="collapsibleContent_brv9"><ol>
<li class="">This authentication process follows the <span class="linkWrapper_B4Bt"><a href="https://openid.net/specs/openid-connect-core-1_0.html" target="_blank" rel="noopener noreferrer" class="link_hf7f">OpenID Connect (OIDC)<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> protocol, and Logto enforces strict security measures to protect user sign-in.</li>
<li class="">If you have multiple apps, you can use the same identity provider (Logto). Once the user signs in to one app, Logto will automatically complete the sign-in process when the user accesses another app.</li>
</ol><p>To learn more about the rationale and benefits of redirect-based sign-in, see <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/concepts/sign-in-experience" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Logto sign-in experience explained<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p></div></div></details>
<hr>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>In the following code snippets, we assume your app is running on <code>http://localhost:3000/</code>.</p></div></div></div>
<!-- -->
<!-- -->
<h4 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uris">Configure redirect URIs<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#configure-redirect-uris" class="hash-link" aria-label="Lien direct vers Configure redirect URIs" title="Lien direct vers Configure redirect URIs" translate="no">​</a></h4>
<p>Switch to the application details page of Logto Console. Add a redirect URI <code>http://localhost:3000/callback</code>.</p>
<img alt="Redirect URI in Logto Console" src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/web-redirect-uri.png" width="600px">
<p>Just like signing in, users should be redirected to Logto for signing out of the shared session. Once finished, it would be great to redirect the user back to your website. For example, add <code>http://localhost:3000/</code> as the post sign-out redirect URI section.</p>
<p>Then click "Save" to save the changes.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="register-routes">Register routes<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#register-routes" class="hash-link" aria-label="Lien direct vers Register routes" title="Lien direct vers Register routes" translate="no">​</a></h3>
<p>The SDK provides a helper function <code>handleAuthRoutes</code> to register 3 routes:</p>
<ol>
<li class=""><code>/logto/sign-in</code>: Sign in with Logto.</li>
<li class=""><code>/logto/sign-in-callback</code>: Handle sign-in callback.</li>
<li class=""><code>/logto/sign-out</code>: Sign out with Logto.</li>
</ol>
<p>Add the following code to your app:</p>
<div class="language-ts codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">app.ts</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-ts codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> handleAuthRoutes </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'@logto/express'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">app</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">use</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token function" style="color:rgb(80, 250, 123)">handleAuthRoutes</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">config</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-sign-in-and-sign-out">Implement sign-in and sign-out<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#implement-sign-in-and-sign-out" class="hash-link" aria-label="Lien direct vers Implement sign-in and sign-out" title="Lien direct vers Implement sign-in and sign-out" translate="no">​</a></h3>
<p>With the routes registered, now let's implement the sign-in and sign-out buttons in the home page. We need to redirect the user to the sign-in or sign-out route when needed. To help with this, use <code>withLogto</code> to inject authentication status to <code>req.user</code>.</p>
<div class="language-ts codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">app.ts</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-ts codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> withLogto </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'@logto/express'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">app</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">get</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'/'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">withLogto</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">config</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">req</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> res</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  res</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">setHeader</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'content-type'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'text/html'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">req</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">user</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">isAuthenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    res</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">end</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token template-string template-punctuation string" style="color:rgb(255, 121, 198)">`</span><span class="token template-string string" style="color:rgb(255, 121, 198)">&lt;div&gt;Hello </span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">${</span><span class="token template-string interpolation">req</span><span class="token template-string interpolation punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token template-string interpolation">user</span><span class="token template-string interpolation punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token template-string interpolation">claims</span><span class="token template-string interpolation operator">?.</span><span class="token template-string interpolation">sub</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token template-string string" style="color:rgb(255, 121, 198)">, &lt;a href="/logto/sign-out"&gt;Sign Out&lt;/a&gt;&lt;/div&gt;</span><span class="token template-string template-punctuation string" style="color:rgb(255, 121, 198)">`</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">else</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    res</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">end</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'&lt;div&gt;&lt;a href="/logto/sign-in"&gt;Sign In&lt;/a&gt;&lt;/div&gt;'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="checkpoint-test-your-application">Checkpoint: Test your application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Lien direct vers Checkpoint: Test your application" title="Lien direct vers Checkpoint: Test your application" translate="no">​</a></h3>
<p>Now, you can test your application:</p>
<ol>
<li class="">Run your application, you will see the sign-in button.</li>
<li class="">Click the sign-in button, the SDK will init the sign-in process and redirect you to the Logto sign-in page.</li>
<li class="">After you signed in, you will be redirected back to your application and see the sign-out button.</li>
<li class="">Click the sign-out button to clear token storage and sign out.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="add-connector-connector">Add Okta enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#add-connector-connector" class="hash-link" aria-label="Lien direct vers Add Okta enterprise SSO connector" title="Lien direct vers Add Okta enterprise SSO connector" translate="no">​</a></h2>
<p>To simplify access management and gain enterprise-level safeguards for your big clients, connect with <!-- -->Express<!-- --> as a federated identity provider. The Logto enterprise SSO connector helps you establish this connection in minutes by allowing several parameter inputs.</p>
<p>To add an enterprise SSO connector, simply follow these steps:</p>
<ol>
<li class="">Navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto console &gt; Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-page.png" alt="SSO page">
<ol start="2">
<li class="">Click "Add enterprise connector" button and choose your SSO provider type. Choose from prebuilt connectors for Microsoft Entra ID (Azure AD), Google Workspace, and Okta, or create a custom SSO connection using the standard OpenID Connect (OIDC) or SAML protocol.</li>
<li class="">Provide a unique name (e.g., SSO sign-in for Acme Company).</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/select-your-sso-provider.png" alt="Select your SSO provider">
<ol start="4">
<li class="">Configure the connection with your IdP in the "Connection" tab. Check the guides above for each connector types.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-connection-settings.png" alt="SSO connection">
<ol start="5">
<li class="">Customize the SSO experience and enterprise’s <strong>email domain</strong> in the "Experience" tab. Users sign in with the SSO-enabled email domain will be redirected to SSO authentication.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-experience-settings.png" alt="SSO experience">
<ol start="6">
<li class="">Save changes.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="set-up-connectorconfigname">Set up OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Lien direct vers Set up OIDC application on Okta admin portal" title="Lien direct vers Set up OIDC application on Okta admin portal" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-okta-admin-portal">Step 1: Create an OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#step-1-create-an-oidc-application-on-okta-admin-portal" class="hash-link" aria-label="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" title="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" translate="no">​</a></h3>
<ul>
<li class="">Visit the Okta admin portal and sign in as an administrator.</li>
<li class="">Navigate to the <code>Applications</code>/<code>Applications</code> page using the side menu.</li>
<li class="">Click the <code>Create App Integration</code> button to create a new OIDC application.</li>
<li class="">Select the <code>OIDC - OpenID Connect</code> option as the <code>Sign-in method</code>.</li>
<li class="">Select the <code>Web Application</code> option as the <code>Application type</code>.</li>
</ul>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_create_application.webp" alt="Okta create application">
<p>Click the <code>Next</code> button to continue.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-the-application-settings">Step 2: Configure the application settings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Lien direct vers Step 2: Configure the application settings" title="Lien direct vers Step 2: Configure the application settings" translate="no">​</a></h3>
<ol>
<li class="">Provide an <code>App integration name</code>. It will be used as the identifier of your OIDC application.</li>
<li class="">Add a new <code>Sign-in redirect URIs</code> using the Logto SSO connector's callback URL.</li>
</ol>
<p>This is the URI that the Okta will redirect the user's browser after successful authentication. After a user successfully authenticates with the IdP, the IdP redirects the user's browser back to this designated URI along with an authorization code. Logto will complete the authentication process based on the authorization code received from this URI.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_application_settings.webp" alt="Okta application settings">
<ol start="3">
<li class="">Assign users to the application.</li>
</ol>
<p>Based on the <code>Assignments</code> settings, you can choose to assign the application to all users or specific users/groups.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_assign_users.webp" alt="Okta assign users">
<p>Click the <code>Save</code> button to save the application settings.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-set-up-logto-connector-with-the-client-credentials">Step 3: Set up Logto connector with the client credentials<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#step-3-set-up-logto-connector-with-the-client-credentials" class="hash-link" aria-label="Lien direct vers Step 3: Set up Logto connector with the client credentials" title="Lien direct vers Step 3: Set up Logto connector with the client credentials" translate="no">​</a></h3>
<p>After successfully creating the OIDC application, you will be redirected to the application details page.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_client_credentials.webp" alt="Okta client credentials">
<p>Copy the <code>client ID</code> and <code>client secret</code> and fill in the corresponding fields on the Logto SSO connector <code>Connection</code> tab.</p>
<p>Use your Okta domain as the <code>issuer</code>. Example: <code>https://dev-12345678.okta.com</code>. Once you have filled in all the fields, click the <code>Save</code> button to save the connector settings.</p>
<p>If the <code>issuer</code> link you provided is valid, you will see a parsed full list of Okta IdP configurations shown below the <code>issuer</code> field.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-additional-scopes-optional">Step 4: Additional scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Lien direct vers Step 4: Additional scopes (Optional)" title="Lien direct vers Step 4: Additional scopes (Optional)" translate="no">​</a></h3>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their Okta accounts. Requesting additional Okta permissions requires configuration on both sides:</p>
<p><strong>In Okta admin console:</strong></p>
<ol>
<li class="">Navigate to <strong>Applications &gt; Applications</strong> and select your OIDC application.</li>
<li class="">Go to the <strong>Assignments</strong> tab to ensure your app has access to the required users and groups.</li>
<li class="">For custom scopes, navigate to <strong>Security &gt; API &gt; Authorization Servers</strong> and select your authorization server.</li>
<li class="">Add custom scopes if needed:<!-- -->
<ul>
<li class="">Click <strong>Scopes</strong> and then <strong>Add Scope</strong></li>
<li class="">Define scope names like <code>okta.users.read</code> or <code>okta.groups.read</code> for accessing Okta APIs</li>
<li class="">Configure consent requirements for each scope</li>
</ul>
</li>
</ol>
<p>For a complete list of available scopes and their descriptions, please refer to the <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/api/openapi/okta-oauth/guides/overview/#scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta OIDC documentation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>In Logto Okta connector:</strong></p>
<ol>
<li class="">Logto automatically includes <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information. You can leave the <code>Scopes</code> field blank if you only need basic user information.</li>
<li class="">Add <code>offline_access</code> to the <code>Scopes</code> field if you plan to store tokens for persistent API access. This scope enables refresh tokens for long-lived API access.</li>
<li class="">Add additional scopes (separated by spaces) in the <code>Scopes</code> field to request more data from Okta. For example: <code>okta.users.read okta.groups.read</code></li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>If your app requests these scopes to access Okta APIs and perform actions, make sure to enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. See the next section for details.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-store-tokens-to-access-okta-apis-optional">Step 5: Store tokens to access Okta APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#step-5-store-tokens-to-access-okta-apis-optional" class="hash-link" aria-label="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" title="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" translate="no">​</a></h3>
<p>If you want to access <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/guides/request-user-consent/main/#enable-consent-for-scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta scopes<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and perform actions with user authorization, Logto needs to get specific scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in your Okta developer console API permissions configuration and Logto Okta connector.</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. Logto will securely store Okta access and refresh tokens in the Secret Vault.</li>
<li class="">To ensure refresh tokens are returned, add the <code>offline_access</code> scope to your Okta application permissions and include it in your Logto Okta connector scopes. This scope allows your application to maintain access to resources for extended periods.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-6-set-email-domains-and-enable-the-sso-connector">Step 6: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#step-6-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Lien direct vers Step 6: Set email domains and enable the SSO connector" title="Lien direct vers Step 6: Set email domains and enable the SSO connector" translate="no">​</a></h3>
<p>Provide the <code>email domains</code> of your organization on Logto's connector <code>SSO experience</code> tab. This will enable the SSO connector as an authentication method for those users.</p>
<p>Users with email addresses in the specified domains will be redirected to use your SSO connector as their only authentication method.</p>
<p>For more details about creating OIDC integration with Okta, please check <span class="linkWrapper_B4Bt"><a href="https://help.okta.com/oie/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm" target="_blank" rel="noopener noreferrer" class="link_hf7f">Create OIDC App Integrations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#save-your-configuration" class="hash-link" aria-label="Lien direct vers Save your configuration" title="Lien direct vers Save your configuration" translate="no">​</a></h3>
<p>Double check you have filled out necessary values in the Logto connector configuration area. Click
"Save and Done" (or "Save changes") and the <!-- -->Okta enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable Okta enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" title="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" translate="no">​</a></h2>
<p>You don’t need to configure enterprise connectors individually, Logto simplifies SSO integration into your applications with just one click.</p>
<ol>
<li class="">Navigate to: <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/sign-in-experience/sign-up-and-sign-in" target="_blank" rel="noopener noreferrer" class="link_hf7f">Console &gt; Sign-in &amp; account &gt; Sign-up and sign-in<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">Enable the "Enterprise SSO" toggle.</li>
<li class="">Save changes.</li>
</ol>
<p>Once enabled, a "Single Sign-On" button will appear on your sign-in page. Enterprise users with SSO-enabled email domains can access your services using their enterprise identity providers (IdPs).</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-email-auto-navigation.png" alt="Auto detect SSO sign-in via email domain">
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-link-button-navigation.png" alt="Navigate to SSO sign-in via manually click link button">
<p>To learn more about the SSO user experience, including SP-initiated SSO and IdP-initiated SSO, refer to User flows: <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="testing-and-validation">Testing and Validation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#testing-and-validation" class="hash-link" aria-label="Lien direct vers Testing and Validation" title="Lien direct vers Testing and Validation" translate="no">​</a></h2>
<p>Return to your <!-- -->Express<!-- --> app. You should now be able to sign in with <!-- -->Okta enterprise SSO<!-- -->. Enjoy!</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="further-readings">Further readings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#further-readings" class="hash-link" aria-label="Lien direct vers Further readings" title="Lien direct vers Further readings" translate="no">​</a></h2>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows" target="_blank" rel="noopener noreferrer" class="link_hf7f">End-user flows<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Logto provides a out-of-the-box authentication flows including MFA and enterprise SSO, along with powerful APIs for flexible implementation of account settings, security verification, and multi-tenant experience.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/authorization" target="_blank" rel="noopener noreferrer" class="link_hf7f">Authorization<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Authorization defines the actions a user can do or resources they can access after being authenticated. Explore how to protect your API for native and single-page applications and implement Role-based Access Control (RBAC).</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/organizations" target="_blank" rel="noopener noreferrer" class="link_hf7f">Organizations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Particularly effective in multi-tenant SaaS and B2B apps, the organization feature enable tenant creation, member management, organization-level RBAC, and just-in-time-provisioning.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://blog.logto.io/ciam-101-intro-authn-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Customer IAM series<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> Our serial blog posts about Customer (or Consumer) Identity and Access Management, from 101 to advanced topics and beyond.</p>]]></content:encoded>
            <category>SSO providers</category>
            <category>okta-enterprise-sso</category>
            <category>express</category>
            <category>js</category>
            <category>SAML authentication</category>
            <category>enterprise login</category>
            <category>SSO login</category>
        </item>
        <item>
            <title><![CDATA[How to build Okta enterprise SSO with Flutter]]></title>
            <link>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto</link>
            <guid>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto</guid>
            <pubDate>Fri, 17 Apr 2026 02:54:06 GMT</pubDate>
            <description><![CDATA[{/*]]></description>
            <content:encoded><![CDATA[
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">For our new friends<!-- -->:</span><br><br><p><span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> is an Auth0 alternative designed for modern apps and SaaS products. It
offers both <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/logto" target="_blank" rel="noopener noreferrer" class="link_hf7f">Open-source<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>
services to help you quickly launch your identity and management (IAM) system. Enjoy authentication,
authorization, and multi-tenant management <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">all in one<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.<!-- --> </p><p>We recommend starting with a free development tenant on <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. This allows you to explore all the features easily.</p></div></div></div>
<p>In this article, we will go through the steps to quickly build the <!-- -->Okta enterprise SSO<!-- --> sign-in
experience (user authentication) with <a href="https://flutter.dev/" target="_blank" rel="noopener">Flutter</a> and <span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>Prerequisites</strong></p>
<ul>
<li class="">A running Logto instance. Check out the <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">introduction page<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to get started.</li>
<li class="">Basic knowledge of <a href="https://flutter.dev/" target="_blank" rel="noopener">Flutter</a>.</li>
<li class="">A usable <!-- -->Okta enterprise SSO<!-- --> account.</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="create-an-application-in-logto">Create an application in Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Lien direct vers Create an application in Logto" title="Lien direct vers Create an application in Logto" translate="no">​</a></h2>
<p>Logto is based on OpenID Connect (OIDC) authentication and OAuth 2.0 authorization. It supports federated identity management across multiple applications, commonly called Single Sign-On (SSO).</p>
<p>To create your <!-- -->Native app<!-- --> application, simply follow these steps:</p>
<ol>
<li class="">Open the <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. In the "Get started" section, click the "View all" link to open the application frameworks list. Alternatively, you can navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/applications" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console &gt; Applications<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, and click the "Create application" button.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/get-started.png" alt="Get started">
</li>
<li class="">In the opening modal, click the "<!-- -->Native app<!-- -->" section or filter all the available "<!-- -->Native app<!-- -->" frameworks using the quick filter checkboxes on the left. Click the "<!-- -->Flutter<!-- -->" framework card to start creating your application.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/framework-list.png" alt="Frameworks">
</li>
<li class="">Enter the application name, e.g., "Bookstore," and click "Create application".</li>
</ol>
<p>🎉 Ta-da! You just created your first application in Logto. You'll see a congrats page which includes a detailed integration guide. Follow the guide to see what the experience will be in your application.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="integrate-with-logto">Integrate Flutter with Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#integrate-with-logto" class="hash-link" aria-label="Lien direct vers Integrate Flutter with Logto" title="Lien direct vers Integrate Flutter with Logto" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><ul>
<li class="">The SDK package is available on <span class="linkWrapper_B4Bt"><a href="https://pub.dev/packages/logto_dart_sdk" target="_blank" rel="noopener noreferrer" class="link_hf7f">pub.dev<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and Logto <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/dart" target="_blank" rel="noopener noreferrer" class="link_hf7f">GitHub repository<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">The sample project is built using <span class="linkWrapper_B4Bt"><a href="https://flutter.dev/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Flutter material<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. You can find it on <span class="linkWrapper_B4Bt"><a href="https://pub.dev/packages/logto_dart_sdk/example" target="_blank" rel="noopener noreferrer" class="link_hf7f">pub.dev<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">This SDK is compatible with Flutter applications on iOS, Android, and Web platforms. Compatibility with other platforms has not been tested.</li>
</ul></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="installation">Installation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#installation" class="hash-link" aria-label="Lien direct vers Installation" title="Lien direct vers Installation" translate="no">​</a></h2>
<div class="theme-tabs-container tabs-container tabList_q32P"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_DwL7 tabs__item--active">pub.dev</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_DwL7">GitHub</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_bR4Y"><p>You can install the <code>logto_dart_sdk package</code> directly using the pub package manager.
Run the following command under your project root:</p><div class="language-bash codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-bash codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">flutter pub </span><span class="token function" style="color:rgb(80, 250, 123)">add</span><span class="token plain"> logto_dart_sdk</span><br></span></code></pre></div></div><p>Or add the following to your <code>pubspec.yaml</code> file:</p><div class="language-yaml codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-yaml codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token key atrule">dependencies</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token key atrule">logto_dart_sdk</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> ^3.0.0</span><br></span></code></pre></div></div><p>Then run:</p><div class="language-bash codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-bash codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">flutter pub get</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_bR4Y" hidden=""><p>If you prefer to fork your own version of the SDK, you can clone the repository directly from GitHub.</p><div class="language-bash codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-bash codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">git</span><span class="token plain"> clone https://github.com/logto-io/dart</span><br></span></code></pre></div></div></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="dependency-and-configurations">Dependency and configurations<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#dependency-and-configurations" class="hash-link" aria-label="Lien direct vers Dependency and configurations" title="Lien direct vers Dependency and configurations" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="sdk-version-compatibility">SDK version compatibility<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#sdk-version-compatibility" class="hash-link" aria-label="Lien direct vers SDK version compatibility" title="Lien direct vers SDK version compatibility" translate="no">​</a></h3>
<table><thead><tr><th>Logto SDK version</th><th>Dart SDK version</th><th>Dart 3.0 compatible</th></tr></thead><tbody><tr><td>&lt; 2.0.0</td><td>&gt;= 2.17.6 &lt; 3.0.0</td><td>false</td></tr><tr><td>&gt;= 2.0.0 &lt; 3.0.0</td><td>&gt;= 3.0.0</td><td>true</td></tr><tr><td>&gt;= 3.0.0</td><td>&gt;= 3.6.0</td><td>true</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="flutter_secure_storage-set-up">flutter_secure_storage set up<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#flutter_secure_storage-set-up" class="hash-link" aria-label="Lien direct vers flutter_secure_storage set up" title="Lien direct vers flutter_secure_storage set up" translate="no">​</a></h3>
<p>Under the hood, this SDK uses <span class="linkWrapper_B4Bt"><a href="https://pub.dev/packages/flutter_secure_storage" target="_blank" rel="noopener noreferrer" class="link_hf7f">flutter_secure_storage<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to implement the cross-platform persistent secure token storage.</p>
<ul>
<li class="">Keychain is used for iOS</li>
<li class="">AES encryption is used for Android.</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_iJWz" id="config-android-version">Config Android version<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#config-android-version" class="hash-link" aria-label="Lien direct vers Config Android version" title="Lien direct vers Config Android version" translate="no">​</a></h4>
<p>Set the android<!-- -->:minSdkVersion<!-- --> to <code>&gt;= 18</code> in your project's <code>android/app/build.gradle</code> file.</p>
<div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">build.gradle</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">  android </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      </span><span class="token operator">..</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      defaultConfig </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          </span><span class="token operator">..</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          minSdkVersion </span><span class="token number">18</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          </span><span class="token operator">..</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<h4 class="anchor anchorTargetStickyNavbar_iJWz" id="disable-auto-backup-on-android">Disable auto backup on Android<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#disable-auto-backup-on-android" class="hash-link" aria-label="Lien direct vers Disable auto backup on Android" title="Lien direct vers Disable auto backup on Android" translate="no">​</a></h4>
<p>By default Android backups data on Google Drive. It can cause exception <code>java.security.InvalidKeyException:Failed</code> to unwrap key. To avoid this,</p>
<ol>
<li class="">
<p>To disable auto backup, go to your app manifest file and set the <code>android:allowBackup</code> and <code>android:fullBackupContent</code> attributes to <code>false</code>.</p>
<div class="language-xml codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">AndroidManifest.xml</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-xml codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">manifest</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">...</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    ...</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">application</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)">      </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">android:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">allowBackup</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">false</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)">      </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">android:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">fullBackupContent</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">false</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)">      </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">...</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)">    </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        ...</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">application</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">manifest</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Exclude <code>sharedprefs</code> from <code>FlutterSecureStorage</code>.</p>
<p>If you need to keep the <code>android:fullBackupContent</code> for your app rather than disabling it, you can exclude the <code>sharedprefs</code> directory from the backup.
See more details in the <span class="linkWrapper_B4Bt"><a href="https://developer.android.com/identity/data/autobackup#IncludingFiles" target="_blank" rel="noopener noreferrer" class="link_hf7f">Android documentation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<blockquote>
<p>In your AndroidManifest.xml file, add the android<!-- -->:fullBackupContent<!-- --> attribute to the <code>&lt;application&gt;</code> element, as shown in the following example. This attribute points to an XML file that contains backup rules.</p>
</blockquote>
<div class="language-xml codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">AndroidManifest.xml</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-xml codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">application</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">...</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)">  </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">android:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">fullBackupContent</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">@xml/backup_rules</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">application</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><br></span></code></pre></div></div>
<blockquote>
<p>Create an XML file called <code>@xml/backup_rules</code> in the <code>res/xml/</code> directory. In this file, add rules with the <code>&lt;include&gt;</code> and <code>&lt;exclude&gt;</code> elements. The following sample backs up all shared preferences except device.xml:</p>
</blockquote>
<div class="language-xml codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">@xml/backup_rules</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-xml codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token prolog" style="color:rgb(189, 147, 249)">&lt;?xml version="1.0" encoding="utf-8"?&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">full-backup-content</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">exclude</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">domain</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">sharedpref</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">path</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">FlutterSecureStorage</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">/&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">full-backup-content</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><br></span></code></pre></div></div>
</li>
</ol>
<p>Please check <span class="linkWrapper_B4Bt"><a href="https://pub.dev/packages/flutter_secure_storage#configure-android-version" target="_blank" rel="noopener noreferrer" class="link_hf7f">flutter_secure_storage<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> for more details.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="flutter_web_auth_2-set-up">flutter_web_auth_2 set up<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#flutter_web_auth_2-set-up" class="hash-link" aria-label="Lien direct vers flutter_web_auth_2 set up" title="Lien direct vers flutter_web_auth_2 set up" translate="no">​</a></h3>
<p>Behind the scenes, this SDK uses <span class="linkWrapper_B4Bt"><a href="https://pub.dev/packages/flutter_web_auth_2" target="_blank" rel="noopener noreferrer" class="link_hf7f">flutter_web_auth_2<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to authenticate users with Logto. This package provides a simple way to authenticate users with Logto using the system webview or browser.</p>
<p>This plugin uses <code>ASWebAuthenticationSession</code> on iOS 12+ and macOS 10.15+, <code>SFAuthenticationSession</code> on iOS 11, <code>Chrome Custom Tabs</code> on Android and opens a new window on Web.</p>
<ul>
<li class="">
<p>iOS: No additional setup required</p>
</li>
<li class="">
<p>Android: Register the callback url on Android</p>
<p>In order to capture the callback url from Logto's sign-in web page, you will need to register your sign-in redirectUri to your <code>AndroidManifest.xml</code> file.</p>
<div class="language-xml codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">AndroidManifest.xml</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-xml codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">manifest</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">application</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">activity</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)">          </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">android:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">name</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">com.linusu.flutter_web_auth_2.CallbackActivity</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)">          </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">android:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">exported</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">true</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">intent-filter</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">android:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">label</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">flutter_web_auth_2</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">action</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">android:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">name</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">android.intent.action.VIEW</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">/&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">category</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">android:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">name</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">android.intent.category.DEFAULT</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">/&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">category</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">android:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">name</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">android.intent.category.BROWSABLE</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">/&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">data</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">android:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">scheme</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">YOUR_CALLBACK_URL_SCHEME_HERE</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">/&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">intent-filter</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">activity</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">application</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">manifest</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Web browser: Create an endpoint to handle the callback URL</p>
<p>If you are using the web platform, you need to create an endpoint to handle the callback URL and send it back to the application using the <code>postMessage</code> API.</p>
<div class="language-html codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">callback.html</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-html codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token doctype punctuation" style="color:rgb(248, 248, 242)">&lt;!</span><span class="token doctype doctype-tag">doctype</span><span class="token doctype"> </span><span class="token doctype name">html</span><span class="token doctype punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">title</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain">Authentication complete</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">title</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain">Authentication is complete. If this does not happen automatically, please close the window.</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">script</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token script language-javascript"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token script language-javascript">  </span><span class="token script language-javascript keyword" style="color:rgb(189, 147, 249);font-style:italic">function</span><span class="token script language-javascript"> </span><span class="token script language-javascript function" style="color:rgb(80, 250, 123)">postAuthenticationMessage</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token script language-javascript"> </span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token script language-javascript"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token script language-javascript">    </span><span class="token script language-javascript keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token script language-javascript"> message </span><span class="token script language-javascript operator">=</span><span class="token script language-javascript"> </span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token script language-javascript"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token script language-javascript">      </span><span class="token script language-javascript string-property property">'flutter-web-auth-2'</span><span class="token script language-javascript operator">:</span><span class="token script language-javascript"> </span><span class="token script language-javascript dom variable" style="color:rgb(189, 147, 249);font-style:italic">window</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token script language-javascript property-access">location</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token script language-javascript property-access">href</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token script language-javascript"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token script language-javascript">    </span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token script language-javascript"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token script language-javascript" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token script language-javascript">    </span><span class="token script language-javascript keyword control-flow" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token script language-javascript"> </span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token script language-javascript dom variable" style="color:rgb(189, 147, 249);font-style:italic">window</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token script language-javascript property-access">opener</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token script language-javascript"> </span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token script language-javascript"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token script language-javascript">      </span><span class="token script language-javascript dom variable" style="color:rgb(189, 147, 249);font-style:italic">window</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token script language-javascript property-access">opener</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token script language-javascript method function property-access" style="color:rgb(80, 250, 123)">postMessage</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token script language-javascript">message</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token script language-javascript"> </span><span class="token script language-javascript dom variable" style="color:rgb(189, 147, 249);font-style:italic">window</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token script language-javascript property-access">location</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token script language-javascript property-access">origin</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token script language-javascript"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token script language-javascript">      </span><span class="token script language-javascript dom variable" style="color:rgb(189, 147, 249);font-style:italic">window</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token script language-javascript method function property-access" style="color:rgb(80, 250, 123)">close</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token script language-javascript"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token script language-javascript">    </span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token script language-javascript"> </span><span class="token script language-javascript keyword control-flow" style="color:rgb(189, 147, 249);font-style:italic">else</span><span class="token script language-javascript"> </span><span class="token script language-javascript keyword control-flow" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token script language-javascript"> </span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token script language-javascript dom variable" style="color:rgb(189, 147, 249);font-style:italic">window</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token script language-javascript property-access">parent</span><span class="token script language-javascript"> </span><span class="token script language-javascript operator">&amp;&amp;</span><span class="token script language-javascript"> </span><span class="token script language-javascript dom variable" style="color:rgb(189, 147, 249);font-style:italic">window</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token script language-javascript property-access">parent</span><span class="token script language-javascript"> </span><span class="token script language-javascript operator">!==</span><span class="token script language-javascript"> </span><span class="token script language-javascript dom variable" style="color:rgb(189, 147, 249);font-style:italic">window</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token script language-javascript"> </span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token script language-javascript"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token script language-javascript">      </span><span class="token script language-javascript dom variable" style="color:rgb(189, 147, 249);font-style:italic">window</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token script language-javascript property-access">parent</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token script language-javascript method function property-access" style="color:rgb(80, 250, 123)">postMessage</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token script language-javascript">message</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token script language-javascript"> </span><span class="token script language-javascript dom variable" style="color:rgb(189, 147, 249);font-style:italic">window</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token script language-javascript property-access">location</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token script language-javascript property-access">origin</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token script language-javascript"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token script language-javascript">    </span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token script language-javascript"> </span><span class="token script language-javascript keyword control-flow" style="color:rgb(189, 147, 249);font-style:italic">else</span><span class="token script language-javascript"> </span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token script language-javascript"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token script language-javascript">      </span><span class="token script language-javascript dom variable" style="color:rgb(189, 147, 249);font-style:italic">localStorage</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token script language-javascript method function property-access" style="color:rgb(80, 250, 123)">setItem</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token script language-javascript string" style="color:rgb(255, 121, 198)">'flutter-web-auth-2'</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token script language-javascript"> </span><span class="token script language-javascript dom variable" style="color:rgb(189, 147, 249);font-style:italic">window</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token script language-javascript property-access">location</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token script language-javascript property-access">href</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token script language-javascript"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token script language-javascript">      </span><span class="token script language-javascript dom variable" style="color:rgb(189, 147, 249);font-style:italic">window</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token script language-javascript method function property-access" style="color:rgb(80, 250, 123)">close</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token script language-javascript"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token script language-javascript">    </span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token script language-javascript"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token script language-javascript">  </span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token script language-javascript"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token script language-javascript" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token script language-javascript">  </span><span class="token script language-javascript function" style="color:rgb(80, 250, 123)">postAuthenticationMessage</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token script language-javascript"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token script language-javascript"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">script</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><br></span></code></pre></div></div>
</li>
</ul>
<p>Please check the setup guide in the <span class="linkWrapper_B4Bt"><a href="https://pub.dev/packages/flutter_web_auth_2#setup" target="_blank" rel="noopener noreferrer" class="link_hf7f">flutter_web_auth_2<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> package for more details.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="integration">Integration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#integration" class="hash-link" aria-label="Lien direct vers Integration" title="Lien direct vers Integration" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="init-logtoclient">Init LogtoClient<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#init-logtoclient" class="hash-link" aria-label="Lien direct vers Init LogtoClient" title="Lien direct vers Init LogtoClient" translate="no">​</a></h3>
<p>Import the <code>logto_dart_sdk</code> package and initialize the <code>LogtoClient</code> instance at the root of your application.</p>
<div class="language-dart codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">lib/main.dart</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-dart codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(255, 121, 198)">'package:logto_dart_sdk/logto_dart_sdk.dart'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(255, 121, 198)">'package:http/http.dart'</span><span class="token plain"> </span><span class="token operator">as</span><span class="token plain"> http</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">void</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">main</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token class-name">WidgetsFlutterBinding</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">ensureInitialized</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token function" style="color:rgb(80, 250, 123)">runApp</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token class-name">MyApp</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> </span><span class="token class-name">MyApp</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">extends</span><span class="token plain"> </span><span class="token class-name">StatelessWidget</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token class-name">MyApp</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token class-name">Key</span><span class="token operator">?</span><span class="token plain"> key</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">super</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">key</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> key</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token metadata function" style="color:rgb(80, 250, 123)">@override</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token class-name">Widget</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">build</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token class-name">BuildContext</span><span class="token plain"> context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token class-name">MaterialApp</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      title</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(255, 121, 198)">'Flutter Demo'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      home</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token class-name">MyHomePage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">title</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(255, 121, 198)">'Logto Demo Home Page'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> </span><span class="token class-name">MyHomePage</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">extends</span><span class="token plain"> </span><span class="token class-name">StatefulWidget</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token class-name">MyHomePage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token class-name">Key</span><span class="token operator">?</span><span class="token plain"> key</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> required </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">this</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">title</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">super</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">key</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> key</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">final</span><span class="token plain"> </span><span class="token class-name">String</span><span class="token plain"> title</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token metadata function" style="color:rgb(80, 250, 123)">@override</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token class-name">State</span><span class="token generics punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token generics class-name">MyHomePage</span><span class="token generics punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">createState</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">=</span><span class="token operator">&gt;</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">_MyHomePageState</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> _MyHomePageState </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">extends</span><span class="token plain"> </span><span class="token class-name">State</span><span class="token generics punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token generics class-name">MyHomePage</span><span class="token generics punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  late </span><span class="token class-name">LogtoClient</span><span class="token plain"> logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">void</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">render</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">// state change</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">// LogtoConfig</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">final</span><span class="token plain"> logtoConfig </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token class-name">LogtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">    endpoint</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(255, 121, 198)">"&lt;your-logto-endpoint&gt;"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">    appId</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(255, 121, 198)">"&lt;your-app-id&gt;"</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">void</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">_init</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">    logtoClient </span><span class="token operator">=</span><span class="token plain"> </span><span class="token class-name">LogtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">      config</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> logtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">      httpClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token class-name namespace">http</span><span class="token class-name namespace punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token class-name">Client</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">// Optional http client</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token function" style="color:rgb(80, 250, 123)">render</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token metadata function" style="color:rgb(80, 250, 123)">@override</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">void</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">initState</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">super</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">initState</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token function" style="color:rgb(80, 250, 123)">_init</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-sign-in">Implement sign-in<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#implement-sign-in" class="hash-link" aria-label="Lien direct vers Implement sign-in" title="Lien direct vers Implement sign-in" translate="no">​</a></h3>
<p>Before we dive into the details, here's a quick overview of the end-user experience. The sign-in process can be simplified as follows:</p>
<!-- -->
<ol>
<li class="">Your app invokes the sign-in method.</li>
<li class="">The user is redirected to the Logto sign-in page. For native apps, the system browser is opened.</li>
<li class="">The user signs in and is redirected back to your app (configured as the redirect URI).</li>
</ol>
<details class="details_Qsrn details_Jw1Q" data-collapsed="true"><summary><h3 class="anchor anchorTargetStickyNavbar_iJWz" id="regarding-redirect-based-sign-in">Regarding redirect-based sign-in<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Lien direct vers Regarding redirect-based sign-in" title="Lien direct vers Regarding redirect-based sign-in" translate="no">​</a></h3></summary><div><div class="collapsibleContent_brv9"><ol>
<li class="">This authentication process follows the <span class="linkWrapper_B4Bt"><a href="https://openid.net/specs/openid-connect-core-1_0.html" target="_blank" rel="noopener noreferrer" class="link_hf7f">OpenID Connect (OIDC)<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> protocol, and Logto enforces strict security measures to protect user sign-in.</li>
<li class="">If you have multiple apps, you can use the same identity provider (Logto). Once the user signs in to one app, Logto will automatically complete the sign-in process when the user accesses another app.</li>
</ol><p>To learn more about the rationale and benefits of redirect-based sign-in, see <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/concepts/sign-in-experience" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Logto sign-in experience explained<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p></div></div></details>
<hr>
<p>Before starting, you need to add a redirect URI in the Admin Console for your application.</p>
<p>Let's switch to the Application details page of Logto Console. Add a Redirect URI <code>io.logto://callback</code> and click "Save changes".</p>
<img alt="Redirect URI in Logto Console" src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/flutter-redirect-uri.png" width="600px">
<ul>
<li class="">For iOS, the redirect URI scheme does not really matter since the <code>ASWebAuthenticationSession</code> class will listen to the redirect URI regardless of if it's registered.</li>
<li class="">For Android, the redirect URI scheme must be registered in the <code>AndroidManifest.xml</code> file.</li>
</ul>
<p>After the redirect URI is configured, we add a sign-in button to your page, which will call <code>logtoClient.signIn</code> API to invoke the Logto sign-in flow:</p>
<div class="language-dart codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">lib/main.dart</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-dart codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> _MyHomePageState </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">extends</span><span class="token plain"> </span><span class="token class-name">State</span><span class="token generics punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token generics class-name">MyHomePage</span><span class="token generics punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">final</span><span class="token plain"> redirectUri </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(255, 121, 198)">'io.logto://callback'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token metadata function" style="color:rgb(80, 250, 123)">@override</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token class-name">Widget</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">build</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token class-name">BuildContext</span><span class="token plain"> context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token class-name">Widget</span><span class="token plain"> signInButton </span><span class="token operator">=</span><span class="token plain"> </span><span class="token class-name">TextButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      onPressed</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">redirectUri</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token function" style="color:rgb(80, 250, 123)">render</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      child</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token class-name">Text</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string-literal string" style="color:rgb(255, 121, 198)">'Sign In'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token class-name">Scaffold</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      appBar</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token class-name">AppBar</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        title</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token class-name">Text</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">widget</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">title</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      body</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token class-name">Center</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        child</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token class-name">Column</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          mainAxisAlignment</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token class-name">MainAxisAlignment</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">center</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          children</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token generics punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token generics class-name">Widget</span><span class="token generics punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token class-name">SelectableText</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string-literal string" style="color:rgb(255, 121, 198)">'My Demo App'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            signInButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-sign-out">Implement sign-out<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#implement-sign-out" class="hash-link" aria-label="Lien direct vers Implement sign-out" title="Lien direct vers Implement sign-out" translate="no">​</a></h3>
<p></p><p>Let's switch to the Application details page of Logto Console. Add a Post Sign-out Redirect
URI <code>io.logto://callback</code> and click "Save changes".</p><p></p>
<img alt="Post Sign-out Redirect URI in Logto Console" src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/flutter-post-sign-out-redirect-uri.png" width="600px">
<p><span class="linkWrapper_B4Bt"><a href="https://openid.net/specs/openid-connect-rpinitiated-1_0.html#RPLogout" target="_blank" rel="noopener noreferrer" class="link_hf7f">Post Sign-outRedirect URI<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> is an OAuth 2.0 concept which implies the location should redirect after signing out.</p>
<p>Now let's add a sign-out button on the main page so users can sign out from your application.</p>
<div class="language-dart codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">lib/main.dart</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-dart codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> _MyHomePageState </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">extends</span><span class="token plain"> </span><span class="token class-name">State</span><span class="token generics punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token generics class-name">MyHomePage</span><span class="token generics punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">final</span><span class="token plain"> postSignOutRedirectUri </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(255, 121, 198)">'io.logto//home'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token metadata function" style="color:rgb(80, 250, 123)">@override</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token class-name">Widget</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">build</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token class-name">BuildContext</span><span class="token plain"> context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token class-name">Widget</span><span class="token plain"> signOutButton </span><span class="token operator">=</span><span class="token plain"> </span><span class="token class-name">TextButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      onPressed</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">signOut</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">postSignOutRedirectUri</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token function" style="color:rgb(80, 250, 123)">render</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      child</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token class-name">Text</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string-literal string" style="color:rgb(255, 121, 198)">'Sign Out'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token class-name">Scaffold</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      appBar</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token class-name">AppBar</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        title</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token class-name">Text</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">widget</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">title</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      body</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token class-name">Center</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        child</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token class-name">Column</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          mainAxisAlignment</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token class-name">MainAxisAlignment</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">center</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          children</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token generics punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token generics class-name">Widget</span><span class="token generics punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token class-name">SelectableText</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string-literal string" style="color:rgb(255, 121, 198)">'My Demo App'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            signInButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            signOutButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="handle-authentication-status">Handle authentication status<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#handle-authentication-status" class="hash-link" aria-label="Lien direct vers Handle authentication status" title="Lien direct vers Handle authentication status" translate="no">​</a></h3>
<p>Logto SDK provides an asynchronous method to check the authentication status. The method is <code>logtoClient.isAuthenticated</code>. The method returns a boolean value, <code>true</code> if the user is authenticated, otherwise <code>false</code>.</p>
<p>In the example we conditionally render the sign-in and sign-out buttons based on the authentication status. Now let's update the <code>render</code> method in our Widget to handle the state change:</p>
<div class="language-dart codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">lib/main.dart</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-dart codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> _MyHomePageState </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">extends</span><span class="token plain"> </span><span class="token class-name">State</span><span class="token generics punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token generics class-name">MyHomePage</span><span class="token generics punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  bool</span><span class="token operator">?</span><span class="token plain"> isAuthenticated </span><span class="token operator">=</span><span class="token plain"> </span><span class="token boolean">false</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">void</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">render</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token function" style="color:rgb(80, 250, 123)">setState</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:#F8F8F2"><span class="token plain">      isAuthenticated </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">isAuthenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token metadata function" style="color:rgb(80, 250, 123)">@override</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token class-name">Widget</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">build</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token class-name">BuildContext</span><span class="token plain"> context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token class-name">Scaffold</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      appBar</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token class-name">AppBar</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        title</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token class-name">Text</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">widget</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">title</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      body</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token class-name">Center</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        child</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token class-name">Column</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          mainAxisAlignment</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token class-name">MainAxisAlignment</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">center</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          children</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token generics punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token generics class-name">Widget</span><span class="token generics punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token class-name">SelectableText</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string-literal string" style="color:rgb(255, 121, 198)">'My Demo App'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            isAuthenticated </span><span class="token operator">==</span><span class="token plain"> </span><span class="token boolean">true</span><span class="token plain"> </span><span class="token operator">?</span><span class="token plain"> signOutButton </span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> signInButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="checkpoint-test-your-application">Checkpoint: Test your application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Lien direct vers Checkpoint: Test your application" title="Lien direct vers Checkpoint: Test your application" translate="no">​</a></h3>
<p>Now, you can test your application:</p>
<ol>
<li class="">Run your application, you will see the sign-in button.</li>
<li class="">Click the sign-in button, the SDK will init the sign-in process and redirect you to the Logto sign-in page.</li>
<li class="">After you signed in, you will be redirected back to your application and see the sign-out button.</li>
<li class="">Click the sign-out button to clear token storage and sign out.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="add-connector-connector">Add Okta enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#add-connector-connector" class="hash-link" aria-label="Lien direct vers Add Okta enterprise SSO connector" title="Lien direct vers Add Okta enterprise SSO connector" translate="no">​</a></h2>
<p>To simplify access management and gain enterprise-level safeguards for your big clients, connect with <!-- -->Flutter<!-- --> as a federated identity provider. The Logto enterprise SSO connector helps you establish this connection in minutes by allowing several parameter inputs.</p>
<p>To add an enterprise SSO connector, simply follow these steps:</p>
<ol>
<li class="">Navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto console &gt; Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-page.png" alt="SSO page">
<ol start="2">
<li class="">Click "Add enterprise connector" button and choose your SSO provider type. Choose from prebuilt connectors for Microsoft Entra ID (Azure AD), Google Workspace, and Okta, or create a custom SSO connection using the standard OpenID Connect (OIDC) or SAML protocol.</li>
<li class="">Provide a unique name (e.g., SSO sign-in for Acme Company).</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/select-your-sso-provider.png" alt="Select your SSO provider">
<ol start="4">
<li class="">Configure the connection with your IdP in the "Connection" tab. Check the guides above for each connector types.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-connection-settings.png" alt="SSO connection">
<ol start="5">
<li class="">Customize the SSO experience and enterprise’s <strong>email domain</strong> in the "Experience" tab. Users sign in with the SSO-enabled email domain will be redirected to SSO authentication.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-experience-settings.png" alt="SSO experience">
<ol start="6">
<li class="">Save changes.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="set-up-connectorconfigname">Set up OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Lien direct vers Set up OIDC application on Okta admin portal" title="Lien direct vers Set up OIDC application on Okta admin portal" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-okta-admin-portal">Step 1: Create an OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#step-1-create-an-oidc-application-on-okta-admin-portal" class="hash-link" aria-label="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" title="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" translate="no">​</a></h3>
<ul>
<li class="">Visit the Okta admin portal and sign in as an administrator.</li>
<li class="">Navigate to the <code>Applications</code>/<code>Applications</code> page using the side menu.</li>
<li class="">Click the <code>Create App Integration</code> button to create a new OIDC application.</li>
<li class="">Select the <code>OIDC - OpenID Connect</code> option as the <code>Sign-in method</code>.</li>
<li class="">Select the <code>Web Application</code> option as the <code>Application type</code>.</li>
</ul>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_create_application.webp" alt="Okta create application">
<p>Click the <code>Next</code> button to continue.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-the-application-settings">Step 2: Configure the application settings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Lien direct vers Step 2: Configure the application settings" title="Lien direct vers Step 2: Configure the application settings" translate="no">​</a></h3>
<ol>
<li class="">Provide an <code>App integration name</code>. It will be used as the identifier of your OIDC application.</li>
<li class="">Add a new <code>Sign-in redirect URIs</code> using the Logto SSO connector's callback URL.</li>
</ol>
<p>This is the URI that the Okta will redirect the user's browser after successful authentication. After a user successfully authenticates with the IdP, the IdP redirects the user's browser back to this designated URI along with an authorization code. Logto will complete the authentication process based on the authorization code received from this URI.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_application_settings.webp" alt="Okta application settings">
<ol start="3">
<li class="">Assign users to the application.</li>
</ol>
<p>Based on the <code>Assignments</code> settings, you can choose to assign the application to all users or specific users/groups.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_assign_users.webp" alt="Okta assign users">
<p>Click the <code>Save</code> button to save the application settings.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-set-up-logto-connector-with-the-client-credentials">Step 3: Set up Logto connector with the client credentials<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#step-3-set-up-logto-connector-with-the-client-credentials" class="hash-link" aria-label="Lien direct vers Step 3: Set up Logto connector with the client credentials" title="Lien direct vers Step 3: Set up Logto connector with the client credentials" translate="no">​</a></h3>
<p>After successfully creating the OIDC application, you will be redirected to the application details page.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_client_credentials.webp" alt="Okta client credentials">
<p>Copy the <code>client ID</code> and <code>client secret</code> and fill in the corresponding fields on the Logto SSO connector <code>Connection</code> tab.</p>
<p>Use your Okta domain as the <code>issuer</code>. Example: <code>https://dev-12345678.okta.com</code>. Once you have filled in all the fields, click the <code>Save</code> button to save the connector settings.</p>
<p>If the <code>issuer</code> link you provided is valid, you will see a parsed full list of Okta IdP configurations shown below the <code>issuer</code> field.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-additional-scopes-optional">Step 4: Additional scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Lien direct vers Step 4: Additional scopes (Optional)" title="Lien direct vers Step 4: Additional scopes (Optional)" translate="no">​</a></h3>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their Okta accounts. Requesting additional Okta permissions requires configuration on both sides:</p>
<p><strong>In Okta admin console:</strong></p>
<ol>
<li class="">Navigate to <strong>Applications &gt; Applications</strong> and select your OIDC application.</li>
<li class="">Go to the <strong>Assignments</strong> tab to ensure your app has access to the required users and groups.</li>
<li class="">For custom scopes, navigate to <strong>Security &gt; API &gt; Authorization Servers</strong> and select your authorization server.</li>
<li class="">Add custom scopes if needed:<!-- -->
<ul>
<li class="">Click <strong>Scopes</strong> and then <strong>Add Scope</strong></li>
<li class="">Define scope names like <code>okta.users.read</code> or <code>okta.groups.read</code> for accessing Okta APIs</li>
<li class="">Configure consent requirements for each scope</li>
</ul>
</li>
</ol>
<p>For a complete list of available scopes and their descriptions, please refer to the <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/api/openapi/okta-oauth/guides/overview/#scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta OIDC documentation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>In Logto Okta connector:</strong></p>
<ol>
<li class="">Logto automatically includes <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information. You can leave the <code>Scopes</code> field blank if you only need basic user information.</li>
<li class="">Add <code>offline_access</code> to the <code>Scopes</code> field if you plan to store tokens for persistent API access. This scope enables refresh tokens for long-lived API access.</li>
<li class="">Add additional scopes (separated by spaces) in the <code>Scopes</code> field to request more data from Okta. For example: <code>okta.users.read okta.groups.read</code></li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>If your app requests these scopes to access Okta APIs and perform actions, make sure to enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. See the next section for details.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-store-tokens-to-access-okta-apis-optional">Step 5: Store tokens to access Okta APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#step-5-store-tokens-to-access-okta-apis-optional" class="hash-link" aria-label="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" title="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" translate="no">​</a></h3>
<p>If you want to access <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/guides/request-user-consent/main/#enable-consent-for-scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta scopes<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and perform actions with user authorization, Logto needs to get specific scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in your Okta developer console API permissions configuration and Logto Okta connector.</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. Logto will securely store Okta access and refresh tokens in the Secret Vault.</li>
<li class="">To ensure refresh tokens are returned, add the <code>offline_access</code> scope to your Okta application permissions and include it in your Logto Okta connector scopes. This scope allows your application to maintain access to resources for extended periods.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-6-set-email-domains-and-enable-the-sso-connector">Step 6: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#step-6-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Lien direct vers Step 6: Set email domains and enable the SSO connector" title="Lien direct vers Step 6: Set email domains and enable the SSO connector" translate="no">​</a></h3>
<p>Provide the <code>email domains</code> of your organization on Logto's connector <code>SSO experience</code> tab. This will enable the SSO connector as an authentication method for those users.</p>
<p>Users with email addresses in the specified domains will be redirected to use your SSO connector as their only authentication method.</p>
<p>For more details about creating OIDC integration with Okta, please check <span class="linkWrapper_B4Bt"><a href="https://help.okta.com/oie/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm" target="_blank" rel="noopener noreferrer" class="link_hf7f">Create OIDC App Integrations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#save-your-configuration" class="hash-link" aria-label="Lien direct vers Save your configuration" title="Lien direct vers Save your configuration" translate="no">​</a></h3>
<p>Double check you have filled out necessary values in the Logto connector configuration area. Click
"Save and Done" (or "Save changes") and the <!-- -->Okta enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable Okta enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" title="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" translate="no">​</a></h2>
<p>You don’t need to configure enterprise connectors individually, Logto simplifies SSO integration into your applications with just one click.</p>
<ol>
<li class="">Navigate to: <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/sign-in-experience/sign-up-and-sign-in" target="_blank" rel="noopener noreferrer" class="link_hf7f">Console &gt; Sign-in &amp; account &gt; Sign-up and sign-in<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">Enable the "Enterprise SSO" toggle.</li>
<li class="">Save changes.</li>
</ol>
<p>Once enabled, a "Single Sign-On" button will appear on your sign-in page. Enterprise users with SSO-enabled email domains can access your services using their enterprise identity providers (IdPs).</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-email-auto-navigation.png" alt="Auto detect SSO sign-in via email domain">
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-link-button-navigation.png" alt="Navigate to SSO sign-in via manually click link button">
<p>To learn more about the SSO user experience, including SP-initiated SSO and IdP-initiated SSO, refer to User flows: <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="testing-and-validation">Testing and Validation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#testing-and-validation" class="hash-link" aria-label="Lien direct vers Testing and Validation" title="Lien direct vers Testing and Validation" translate="no">​</a></h2>
<p>Return to your <!-- -->Flutter<!-- --> app. You should now be able to sign in with <!-- -->Okta enterprise SSO<!-- -->. Enjoy!</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="further-readings">Further readings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#further-readings" class="hash-link" aria-label="Lien direct vers Further readings" title="Lien direct vers Further readings" translate="no">​</a></h2>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows" target="_blank" rel="noopener noreferrer" class="link_hf7f">End-user flows<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Logto provides a out-of-the-box authentication flows including MFA and enterprise SSO, along with powerful APIs for flexible implementation of account settings, security verification, and multi-tenant experience.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/authorization" target="_blank" rel="noopener noreferrer" class="link_hf7f">Authorization<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Authorization defines the actions a user can do or resources they can access after being authenticated. Explore how to protect your API for native and single-page applications and implement Role-based Access Control (RBAC).</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/organizations" target="_blank" rel="noopener noreferrer" class="link_hf7f">Organizations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Particularly effective in multi-tenant SaaS and B2B apps, the organization feature enable tenant creation, member management, organization-level RBAC, and just-in-time-provisioning.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://blog.logto.io/ciam-101-intro-authn-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Customer IAM series<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> Our serial blog posts about Customer (or Consumer) Identity and Access Management, from 101 to advanced topics and beyond.</p>]]></content:encoded>
            <category>SSO providers</category>
            <category>okta-enterprise-sso</category>
            <category>flutter</category>
            <category>dart</category>
            <category>SAML authentication</category>
            <category>enterprise login</category>
            <category>SSO login</category>
        </item>
        <item>
            <title><![CDATA[How to build Okta enterprise SSO with Go]]></title>
            <link>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto</link>
            <guid>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto</guid>
            <pubDate>Fri, 17 Apr 2026 02:54:06 GMT</pubDate>
            <description><![CDATA[{/*]]></description>
            <content:encoded><![CDATA[
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">For our new friends<!-- -->:</span><br><br><p><span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> is an Auth0 alternative designed for modern apps and SaaS products. It
offers both <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/logto" target="_blank" rel="noopener noreferrer" class="link_hf7f">Open-source<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>
services to help you quickly launch your identity and management (IAM) system. Enjoy authentication,
authorization, and multi-tenant management <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">all in one<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.<!-- --> </p><p>We recommend starting with a free development tenant on <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. This allows you to explore all the features easily.</p></div></div></div>
<p>In this article, we will go through the steps to quickly build the <!-- -->Okta enterprise SSO<!-- --> sign-in
experience (user authentication) with <a href="https://go.dev/" target="_blank" rel="noopener">Go</a> and <span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>Prerequisites</strong></p>
<ul>
<li class="">A running Logto instance. Check out the <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">introduction page<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to get started.</li>
<li class="">Basic knowledge of <a href="https://go.dev/" target="_blank" rel="noopener">Go</a>.</li>
<li class="">A usable <!-- -->Okta enterprise SSO<!-- --> account.</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="create-an-application-in-logto">Create an application in Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Lien direct vers Create an application in Logto" title="Lien direct vers Create an application in Logto" translate="no">​</a></h2>
<p>Logto is based on OpenID Connect (OIDC) authentication and OAuth 2.0 authorization. It supports federated identity management across multiple applications, commonly called Single Sign-On (SSO).</p>
<p>To create your <!-- -->Traditional web<!-- --> application, simply follow these steps:</p>
<ol>
<li class="">Open the <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. In the "Get started" section, click the "View all" link to open the application frameworks list. Alternatively, you can navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/applications" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console &gt; Applications<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, and click the "Create application" button.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/get-started.png" alt="Get started">
</li>
<li class="">In the opening modal, click the "<!-- -->Traditional web<!-- -->" section or filter all the available "<!-- -->Traditional web<!-- -->" frameworks using the quick filter checkboxes on the left. Click the "<!-- -->Go<!-- -->" framework card to start creating your application.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/framework-list.png" alt="Frameworks">
</li>
<li class="">Enter the application name, e.g., "Bookstore," and click "Create application".</li>
</ol>
<p>🎉 Ta-da! You just created your first application in Logto. You'll see a congrats page which includes a detailed integration guide. Follow the guide to see what the experience will be in your application.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="integrate-with-logto">Integrate Go with Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#integrate-with-logto" class="hash-link" aria-label="Lien direct vers Integrate Go with Logto" title="Lien direct vers Integrate Go with Logto" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><ul>
<li class="">The following demonstration is built upon the <span class="linkWrapper_B4Bt"><a href="https://gin-gonic.com/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Gin Web Framework<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. You may also integrate Logto into other frameworks by taking the same steps.</li>
<li class="">The Go sample project is available on our <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/go/tree/v2/gin-sample" target="_blank" rel="noopener noreferrer" class="link_hf7f">Go SDK repo<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ul></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="installation">Installation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#installation" class="hash-link" aria-label="Lien direct vers Installation" title="Lien direct vers Installation" translate="no">​</a></h3>
<p>Execute in the project root directory:</p>
<div class="language-bash codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-bash codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)"># Install the core package for accessing predefined values and types</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">go get github.com/logto-io/go/v2/core</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># Install the client package for interacting with the Logto</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">go get github.com/logto-io/go/v2/client</span><br></span></code></pre></div></div>
<p>Add <code>github.com/logto-io/go/v2/core</code> and <code>github.com/logto-io/go/v2/client</code> packages to your application code:</p>
<div class="language-go codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">main.go</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-go codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">// main.go</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">package</span><span class="token plain"> main</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token string" style="color:rgb(255, 121, 198)">"github.com/gin-gonic/gin"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token comment" style="color:rgb(98, 114, 164)">// Add dependency</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token string" style="color:rgb(255, 121, 198)">"github.com/logto-io/go/v2/core"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token string" style="color:rgb(255, 121, 198)">"github.com/logto-io/go/v2/client"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">func</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">main</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	router </span><span class="token operator">:=</span><span class="token plain"> gin</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Default</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	router</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">GET</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"/"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">func</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">c </span><span class="token operator">*</span><span class="token plain">gin</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		c</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">String</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">200</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"Hello Logto!"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	router</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Run</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">":3000"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="create-a-session-storage">Create a session storage<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#create-a-session-storage" class="hash-link" aria-label="Lien direct vers Create a session storage" title="Lien direct vers Create a session storage" translate="no">​</a></h3>
<p>In traditional web applications, the user authentication information will be stored in the user session.</p>
<p>Logto SDK provides a <code>Storage</code> interface, you can implement a <code>Storage</code> adapter based on your web framework so that the Logto SDK can store user authentication information in the session.</p>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>We do NOT recommend using cookie-based sessions, as user authentication information stored by Logto may exceed the cookie size limit.
In this example, we use memory-based sessions. You can use Redis, MongoDB, and other technologies in production to store sessions as needed.</p></div></div></div>
<p>The <code>Storage</code> type in the Logto SDK is as follows:</p>
<div class="language-go codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">storage.go</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-go codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">package</span><span class="token plain"> client</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">type</span><span class="token plain"> Storage </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">interface</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token function" style="color:rgb(80, 250, 123)">GetItem</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">key </span><span class="token builtin" style="color:rgb(189, 147, 249)">string</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(189, 147, 249)">string</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token function" style="color:rgb(80, 250, 123)">SetItem</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">key</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> value </span><span class="token builtin" style="color:rgb(189, 147, 249)">string</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>We use <span class="linkWrapper_B4Bt"><a href="https://github.com/gin-contrib/sessions" target="_blank" rel="noopener noreferrer" class="link_hf7f">github.com/gin-contrib/sessions<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> middleware as an example to demonstrate this process.</p>
<p>Apply the middleware to the application, so that we can get the user session by the user request context in the route handler:</p>
<div class="language-go codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">main.go</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-go codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">package</span><span class="token plain"> main</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token string" style="color:rgb(255, 121, 198)">"github.com/gin-contrib/sessions"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token string" style="color:rgb(255, 121, 198)">"github.com/gin-contrib/sessions/memstore"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token string" style="color:rgb(255, 121, 198)">"github.com/gin-gonic/gin"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token string" style="color:rgb(255, 121, 198)">"github.com/logto-io/go/v2/client"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">func</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">main</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	router </span><span class="token operator">:=</span><span class="token plain"> gin</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Default</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token comment" style="color:rgb(98, 114, 164)">// We use memory-based session in this example</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	store </span><span class="token operator">:=</span><span class="token plain"> memstore</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">NewStore</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token function" style="color:rgb(80, 250, 123)">byte</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"your session secret"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	router</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Use</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">sessions</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Sessions</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"logto-session"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> store</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	router</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">GET</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"/"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">func</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ctx </span><span class="token operator">*</span><span class="token plain">gin</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token comment" style="color:rgb(98, 114, 164)">// Get user session</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		session </span><span class="token operator">:=</span><span class="token plain"> sessions</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Default</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ctx</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		ctx</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">String</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">200</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"Hello Logto!"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	router</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Run</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">":3000"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>Create a <code>session_storage.go</code> file, define a <code>SessionStorage</code> and implement the Logto SDK's <code>Storage</code> interfaces:</p>
<div class="language-go codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">session_storage.go</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-go codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">package</span><span class="token plain"> main</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token string" style="color:rgb(255, 121, 198)">"github.com/gin-contrib/sessions"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">type</span><span class="token plain"> SessionStorage </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">struct</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	session sessions</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Session</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">func</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">storage </span><span class="token operator">*</span><span class="token plain">SessionStorage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">GetItem</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">key </span><span class="token builtin" style="color:rgb(189, 147, 249)">string</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(189, 147, 249)">string</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	value </span><span class="token operator">:=</span><span class="token plain"> storage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">session</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Get</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">key</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> value </span><span class="token operator">==</span><span class="token plain"> </span><span class="token boolean">nil</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">""</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> value</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token builtin" style="color:rgb(189, 147, 249)">string</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">func</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">storage </span><span class="token operator">*</span><span class="token plain">SessionStorage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">SetItem</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">key</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> value </span><span class="token builtin" style="color:rgb(189, 147, 249)">string</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	storage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">session</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Set</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">key</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> value</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	storage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">session</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Save</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>Now, in the route handler, you can create a session storage for Logto:</p>
<div class="language-go codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-go codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">session </span><span class="token operator">:=</span><span class="token plain"> sessions</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Default</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ctx</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">sessionStorage </span><span class="token operator">:=</span><span class="token plain"> </span><span class="token operator">&amp;</span><span class="token plain">SessionStorage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain">session</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> session</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="init-logtoclient">Init LogtoClient<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#init-logtoclient" class="hash-link" aria-label="Lien direct vers Init LogtoClient" title="Lien direct vers Init LogtoClient" translate="no">​</a></h3>
<p>First, create a Logto config:</p>
<div class="language-go codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">main.go</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-go codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">func</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">main</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	logtoConfig </span><span class="token operator">:=</span><span class="token plain"> </span><span class="token operator">&amp;</span><span class="token plain">client</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">LogtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		Endpoint</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain">  </span><span class="token string" style="color:rgb(255, 121, 198)">"&lt;your-logto-endpoint&gt;"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">// E.g. http://localhost:3001</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		AppId</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain">     </span><span class="token string" style="color:rgb(255, 121, 198)">"&lt;your-application-id&gt;"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		AppSecret</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"&lt;your-application-secret&gt;"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>You can find and copy "App Secret" from application details page in Admin Console:</p><img alt="App Secret" src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/app-secret.png" width="586px"></div></div></div>
<p>Then, you can create a <code>LogtoClient</code> for each user request with the Logto config above:</p>
<div class="language-go codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">main.go</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-go codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">func</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">main</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	router</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">GET</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"/"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">func</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ctx </span><span class="token operator">*</span><span class="token plain">gin</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token comment" style="color:rgb(98, 114, 164)">// Create LogtoClient</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		session </span><span class="token operator">:=</span><span class="token plain"> sessions</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Default</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ctx</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		logtoClient </span><span class="token operator">:=</span><span class="token plain"> client</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">NewLogtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			logtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			</span><span class="token operator">&amp;</span><span class="token plain">SessionStorage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain">session</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> session</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token comment" style="color:rgb(98, 114, 164)">// Use Logto to control the content of the home page</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		authState </span><span class="token operator">:=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"You are not logged in to this website. :("</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">IsAuthenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			authState </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"You are logged in to this website! :)"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		homePage </span><span class="token operator">:=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">`&lt;h1&gt;Hello Logto&lt;/h1&gt;`</span><span class="token plain"> </span><span class="token operator">+</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			</span><span class="token string" style="color:rgb(255, 121, 198)">"&lt;div&gt;"</span><span class="token plain"> </span><span class="token operator">+</span><span class="token plain"> authState </span><span class="token operator">+</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"&lt;/div&gt;"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		ctx</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Data</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">http</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">StatusOK</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"text/html; charset=utf-8"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token function" style="color:rgb(80, 250, 123)">byte</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">homePage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-sign-in-route">Implement sign-in route<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#implement-sign-in-route" class="hash-link" aria-label="Lien direct vers Implement sign-in route" title="Lien direct vers Implement sign-in route" translate="no">​</a></h3>
<p>After the redirect URI is configured, we add a <code>sign-in</code> route to handle the sign-in request and also add an sign-in link on the home page:</p>
<div class="language-go codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">main.go</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-go codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">func</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">main</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token comment" style="color:rgb(98, 114, 164)">// Add a link to perform a sign-in request on the home page</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	router</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">GET</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"/"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">func</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ctx </span><span class="token operator">*</span><span class="token plain">gin</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		homePage </span><span class="token operator">:=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">`&lt;h1&gt;Hello Logto&lt;/h1&gt;`</span><span class="token plain"> </span><span class="token operator">+</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			</span><span class="token string" style="color:rgb(255, 121, 198)">"&lt;div&gt;"</span><span class="token plain"> </span><span class="token operator">+</span><span class="token plain"> authState </span><span class="token operator">+</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"&lt;/div&gt;"</span><span class="token plain"> </span><span class="token operator">+</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			</span><span class="token comment" style="color:rgb(98, 114, 164)">// Add link</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			</span><span class="token string" style="color:rgb(255, 121, 198)">`&lt;div&gt;&lt;a href="/sign-in"&gt;Sign In&lt;/a&gt;&lt;/div&gt;`</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		ctx</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Data</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">http</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">StatusOK</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"text/html; charset=utf-8"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token function" style="color:rgb(80, 250, 123)">byte</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">homePage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token comment" style="color:rgb(98, 114, 164)">// Add a route for handling sign-in requests</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	router</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">GET</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"/sign-in"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">func</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ctx </span><span class="token operator">*</span><span class="token plain">gin</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		session </span><span class="token operator">:=</span><span class="token plain"> sessions</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Default</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ctx</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		logtoClient </span><span class="token operator">:=</span><span class="token plain"> client</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">NewLogtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			logtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			</span><span class="token operator">&amp;</span><span class="token plain">SessionStorage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain">session</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> session</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token comment" style="color:rgb(98, 114, 164)">// The sign-in request is handled by Logto.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token comment" style="color:rgb(98, 114, 164)">// The user will be redirected to the Redirect URI on signed in.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		signInUri</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> err </span><span class="token operator">:=</span><span class="token plain"> logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">SignIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"http://localhost:3000/callback"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> err </span><span class="token operator">!=</span><span class="token plain"> </span><span class="token boolean">nil</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			ctx</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">String</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">http</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">StatusInternalServerError</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> err</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Error</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token comment" style="color:rgb(98, 114, 164)">// Redirect the user to the Logto sign-in page.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		ctx</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Redirect</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">http</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">StatusTemporaryRedirect</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> signInUri</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>Now, when your user visit <code>http://localhost:3000/sign-in</code>, the user will be redirected to the Logto sign-in page.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-the-callback-route">Implement the callback route<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#implement-the-callback-route" class="hash-link" aria-label="Lien direct vers Implement the callback route" title="Lien direct vers Implement the callback route" translate="no">​</a></h3>
<p>When the user signs in successfully on the Logto sign-in page, Logto will redirect the user to the Redirect URI.</p>
<p>Since the redirect URI is <code>http://localhost:3000/callback</code>, we add the <code>/callback</code> route to handle the callback after signing in.</p>
<div class="language-go codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">main.go</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-go codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">func</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">main</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token comment" style="color:rgb(98, 114, 164)">// Add a route for handling sign-in callback requests</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	router</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">GET</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"/callback"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">func</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ctx </span><span class="token operator">*</span><span class="token plain">gin</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		session </span><span class="token operator">:=</span><span class="token plain"> sessions</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Default</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ctx</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		logtoClient </span><span class="token operator">:=</span><span class="token plain"> client</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">NewLogtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			logtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			</span><span class="token operator">&amp;</span><span class="token plain">SessionStorage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain">session</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> session</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token comment" style="color:rgb(98, 114, 164)">// The sign-in callback request is handled by Logto</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		err </span><span class="token operator">:=</span><span class="token plain"> logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">HandleSignInCallback</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ctx</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Request</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> err </span><span class="token operator">!=</span><span class="token plain"> </span><span class="token boolean">nil</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			ctx</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">String</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">http</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">StatusInternalServerError</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> err</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Error</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token comment" style="color:rgb(98, 114, 164)">// Jump to the page specified by the developer.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token comment" style="color:rgb(98, 114, 164)">// This example takes the user back to the home page.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		ctx</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Redirect</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">http</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">StatusTemporaryRedirect</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"/"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-sign-out-route">Implement sign-out route<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#implement-sign-out-route" class="hash-link" aria-label="Lien direct vers Implement sign-out route" title="Lien direct vers Implement sign-out route" translate="no">​</a></h3>
<p>Similar to the sign-in flow, when the user signs out, Logto will redirect the user to the post sign-out redirect URI.</p>
<p>Now, let's add the <code>sign-out</code> route to handle the sign-out request and also add a sign-out link on the home page:</p>
<div class="language-go codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">main.go</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-go codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">func</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">main</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token comment" style="color:rgb(98, 114, 164)">// Add a link to perform a sign-out request on the home page</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	router</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">GET</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"/"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">func</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ctx </span><span class="token operator">*</span><span class="token plain">gin</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		homePage </span><span class="token operator">:=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">`&lt;h1&gt;Hello Logto&lt;/h1&gt;`</span><span class="token plain"> </span><span class="token operator">+</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			</span><span class="token string" style="color:rgb(255, 121, 198)">"&lt;div&gt;"</span><span class="token plain"> </span><span class="token operator">+</span><span class="token plain"> authState </span><span class="token operator">+</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"&lt;/div&gt;"</span><span class="token plain"> </span><span class="token operator">+</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			</span><span class="token string" style="color:rgb(255, 121, 198)">`&lt;div&gt;&lt;a href="/sign-in"&gt;Sign In&lt;/a&gt;&lt;/div&gt;`</span><span class="token plain"> </span><span class="token operator">+</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			</span><span class="token comment" style="color:rgb(98, 114, 164)">// Add link</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			</span><span class="token string" style="color:rgb(255, 121, 198)">`&lt;div&gt;&lt;a href="/sign-out"&gt;Sign Out&lt;/a&gt;&lt;/div&gt;`</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		ctx</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Data</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">http</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">StatusOK</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"text/html; charset=utf-8"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token function" style="color:rgb(80, 250, 123)">byte</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">homePage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token comment" style="color:rgb(98, 114, 164)">// Add a route for handling signing out requests</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	router</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">GET</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"/sign-out"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">func</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ctx </span><span class="token operator">*</span><span class="token plain">gin</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		session </span><span class="token operator">:=</span><span class="token plain"> sessions</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Default</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">ctx</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		logtoClient </span><span class="token operator">:=</span><span class="token plain"> client</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">NewLogtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			logtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			</span><span class="token operator">&amp;</span><span class="token plain">SessionStorage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain">session</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> session</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token comment" style="color:rgb(98, 114, 164)">// The sign-out request is handled by Logto.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token comment" style="color:rgb(98, 114, 164)">// The user will be redirected to the Post Sign-out Redirect URI on signed out.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		signOutUri</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> signOutErr </span><span class="token operator">:=</span><span class="token plain"> logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">SignOut</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"http://localhost:3000"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> signOutErr </span><span class="token operator">!=</span><span class="token plain"> </span><span class="token boolean">nil</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			ctx</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">String</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">http</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">StatusOK</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> signOutErr</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Error</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">			</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">		ctx</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Redirect</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">http</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">StatusTemporaryRedirect</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> signOutUri</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">	</span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>After the user makes a signing-out request, Logto will clear all user authentication information in the session.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="checkpoint-test-your-application">Checkpoint: Test your application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Lien direct vers Checkpoint: Test your application" title="Lien direct vers Checkpoint: Test your application" translate="no">​</a></h3>
<p>Now, you can test your application:</p>
<ol>
<li class="">Run your application, you will see the sign-in button.</li>
<li class="">Click the sign-in button, the SDK will init the sign-in process and redirect you to the Logto sign-in page.</li>
<li class="">After you signed in, you will be redirected back to your application and see the sign-out button.</li>
<li class="">Click the sign-out button to clear token storage and sign out.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="add-connector-connector">Add Okta enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#add-connector-connector" class="hash-link" aria-label="Lien direct vers Add Okta enterprise SSO connector" title="Lien direct vers Add Okta enterprise SSO connector" translate="no">​</a></h2>
<p>To simplify access management and gain enterprise-level safeguards for your big clients, connect with <!-- -->Go<!-- --> as a federated identity provider. The Logto enterprise SSO connector helps you establish this connection in minutes by allowing several parameter inputs.</p>
<p>To add an enterprise SSO connector, simply follow these steps:</p>
<ol>
<li class="">Navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto console &gt; Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-page.png" alt="SSO page">
<ol start="2">
<li class="">Click "Add enterprise connector" button and choose your SSO provider type. Choose from prebuilt connectors for Microsoft Entra ID (Azure AD), Google Workspace, and Okta, or create a custom SSO connection using the standard OpenID Connect (OIDC) or SAML protocol.</li>
<li class="">Provide a unique name (e.g., SSO sign-in for Acme Company).</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/select-your-sso-provider.png" alt="Select your SSO provider">
<ol start="4">
<li class="">Configure the connection with your IdP in the "Connection" tab. Check the guides above for each connector types.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-connection-settings.png" alt="SSO connection">
<ol start="5">
<li class="">Customize the SSO experience and enterprise’s <strong>email domain</strong> in the "Experience" tab. Users sign in with the SSO-enabled email domain will be redirected to SSO authentication.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-experience-settings.png" alt="SSO experience">
<ol start="6">
<li class="">Save changes.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="set-up-connectorconfigname">Set up OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Lien direct vers Set up OIDC application on Okta admin portal" title="Lien direct vers Set up OIDC application on Okta admin portal" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-okta-admin-portal">Step 1: Create an OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#step-1-create-an-oidc-application-on-okta-admin-portal" class="hash-link" aria-label="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" title="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" translate="no">​</a></h3>
<ul>
<li class="">Visit the Okta admin portal and sign in as an administrator.</li>
<li class="">Navigate to the <code>Applications</code>/<code>Applications</code> page using the side menu.</li>
<li class="">Click the <code>Create App Integration</code> button to create a new OIDC application.</li>
<li class="">Select the <code>OIDC - OpenID Connect</code> option as the <code>Sign-in method</code>.</li>
<li class="">Select the <code>Web Application</code> option as the <code>Application type</code>.</li>
</ul>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_create_application.webp" alt="Okta create application">
<p>Click the <code>Next</code> button to continue.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-the-application-settings">Step 2: Configure the application settings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Lien direct vers Step 2: Configure the application settings" title="Lien direct vers Step 2: Configure the application settings" translate="no">​</a></h3>
<ol>
<li class="">Provide an <code>App integration name</code>. It will be used as the identifier of your OIDC application.</li>
<li class="">Add a new <code>Sign-in redirect URIs</code> using the Logto SSO connector's callback URL.</li>
</ol>
<p>This is the URI that the Okta will redirect the user's browser after successful authentication. After a user successfully authenticates with the IdP, the IdP redirects the user's browser back to this designated URI along with an authorization code. Logto will complete the authentication process based on the authorization code received from this URI.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_application_settings.webp" alt="Okta application settings">
<ol start="3">
<li class="">Assign users to the application.</li>
</ol>
<p>Based on the <code>Assignments</code> settings, you can choose to assign the application to all users or specific users/groups.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_assign_users.webp" alt="Okta assign users">
<p>Click the <code>Save</code> button to save the application settings.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-set-up-logto-connector-with-the-client-credentials">Step 3: Set up Logto connector with the client credentials<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#step-3-set-up-logto-connector-with-the-client-credentials" class="hash-link" aria-label="Lien direct vers Step 3: Set up Logto connector with the client credentials" title="Lien direct vers Step 3: Set up Logto connector with the client credentials" translate="no">​</a></h3>
<p>After successfully creating the OIDC application, you will be redirected to the application details page.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_client_credentials.webp" alt="Okta client credentials">
<p>Copy the <code>client ID</code> and <code>client secret</code> and fill in the corresponding fields on the Logto SSO connector <code>Connection</code> tab.</p>
<p>Use your Okta domain as the <code>issuer</code>. Example: <code>https://dev-12345678.okta.com</code>. Once you have filled in all the fields, click the <code>Save</code> button to save the connector settings.</p>
<p>If the <code>issuer</code> link you provided is valid, you will see a parsed full list of Okta IdP configurations shown below the <code>issuer</code> field.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-additional-scopes-optional">Step 4: Additional scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Lien direct vers Step 4: Additional scopes (Optional)" title="Lien direct vers Step 4: Additional scopes (Optional)" translate="no">​</a></h3>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their Okta accounts. Requesting additional Okta permissions requires configuration on both sides:</p>
<p><strong>In Okta admin console:</strong></p>
<ol>
<li class="">Navigate to <strong>Applications &gt; Applications</strong> and select your OIDC application.</li>
<li class="">Go to the <strong>Assignments</strong> tab to ensure your app has access to the required users and groups.</li>
<li class="">For custom scopes, navigate to <strong>Security &gt; API &gt; Authorization Servers</strong> and select your authorization server.</li>
<li class="">Add custom scopes if needed:<!-- -->
<ul>
<li class="">Click <strong>Scopes</strong> and then <strong>Add Scope</strong></li>
<li class="">Define scope names like <code>okta.users.read</code> or <code>okta.groups.read</code> for accessing Okta APIs</li>
<li class="">Configure consent requirements for each scope</li>
</ul>
</li>
</ol>
<p>For a complete list of available scopes and their descriptions, please refer to the <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/api/openapi/okta-oauth/guides/overview/#scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta OIDC documentation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>In Logto Okta connector:</strong></p>
<ol>
<li class="">Logto automatically includes <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information. You can leave the <code>Scopes</code> field blank if you only need basic user information.</li>
<li class="">Add <code>offline_access</code> to the <code>Scopes</code> field if you plan to store tokens for persistent API access. This scope enables refresh tokens for long-lived API access.</li>
<li class="">Add additional scopes (separated by spaces) in the <code>Scopes</code> field to request more data from Okta. For example: <code>okta.users.read okta.groups.read</code></li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>If your app requests these scopes to access Okta APIs and perform actions, make sure to enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. See the next section for details.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-store-tokens-to-access-okta-apis-optional">Step 5: Store tokens to access Okta APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#step-5-store-tokens-to-access-okta-apis-optional" class="hash-link" aria-label="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" title="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" translate="no">​</a></h3>
<p>If you want to access <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/guides/request-user-consent/main/#enable-consent-for-scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta scopes<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and perform actions with user authorization, Logto needs to get specific scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in your Okta developer console API permissions configuration and Logto Okta connector.</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. Logto will securely store Okta access and refresh tokens in the Secret Vault.</li>
<li class="">To ensure refresh tokens are returned, add the <code>offline_access</code> scope to your Okta application permissions and include it in your Logto Okta connector scopes. This scope allows your application to maintain access to resources for extended periods.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-6-set-email-domains-and-enable-the-sso-connector">Step 6: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#step-6-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Lien direct vers Step 6: Set email domains and enable the SSO connector" title="Lien direct vers Step 6: Set email domains and enable the SSO connector" translate="no">​</a></h3>
<p>Provide the <code>email domains</code> of your organization on Logto's connector <code>SSO experience</code> tab. This will enable the SSO connector as an authentication method for those users.</p>
<p>Users with email addresses in the specified domains will be redirected to use your SSO connector as their only authentication method.</p>
<p>For more details about creating OIDC integration with Okta, please check <span class="linkWrapper_B4Bt"><a href="https://help.okta.com/oie/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm" target="_blank" rel="noopener noreferrer" class="link_hf7f">Create OIDC App Integrations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#save-your-configuration" class="hash-link" aria-label="Lien direct vers Save your configuration" title="Lien direct vers Save your configuration" translate="no">​</a></h3>
<p>Double check you have filled out necessary values in the Logto connector configuration area. Click
"Save and Done" (or "Save changes") and the <!-- -->Okta enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable Okta enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" title="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" translate="no">​</a></h2>
<p>You don’t need to configure enterprise connectors individually, Logto simplifies SSO integration into your applications with just one click.</p>
<ol>
<li class="">Navigate to: <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/sign-in-experience/sign-up-and-sign-in" target="_blank" rel="noopener noreferrer" class="link_hf7f">Console &gt; Sign-in &amp; account &gt; Sign-up and sign-in<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">Enable the "Enterprise SSO" toggle.</li>
<li class="">Save changes.</li>
</ol>
<p>Once enabled, a "Single Sign-On" button will appear on your sign-in page. Enterprise users with SSO-enabled email domains can access your services using their enterprise identity providers (IdPs).</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-email-auto-navigation.png" alt="Auto detect SSO sign-in via email domain">
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-link-button-navigation.png" alt="Navigate to SSO sign-in via manually click link button">
<p>To learn more about the SSO user experience, including SP-initiated SSO and IdP-initiated SSO, refer to User flows: <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="testing-and-validation">Testing and Validation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#testing-and-validation" class="hash-link" aria-label="Lien direct vers Testing and Validation" title="Lien direct vers Testing and Validation" translate="no">​</a></h2>
<p>Return to your <!-- -->Go<!-- --> app. You should now be able to sign in with <!-- -->Okta enterprise SSO<!-- -->. Enjoy!</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="further-readings">Further readings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#further-readings" class="hash-link" aria-label="Lien direct vers Further readings" title="Lien direct vers Further readings" translate="no">​</a></h2>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows" target="_blank" rel="noopener noreferrer" class="link_hf7f">End-user flows<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Logto provides a out-of-the-box authentication flows including MFA and enterprise SSO, along with powerful APIs for flexible implementation of account settings, security verification, and multi-tenant experience.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/authorization" target="_blank" rel="noopener noreferrer" class="link_hf7f">Authorization<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Authorization defines the actions a user can do or resources they can access after being authenticated. Explore how to protect your API for native and single-page applications and implement Role-based Access Control (RBAC).</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/organizations" target="_blank" rel="noopener noreferrer" class="link_hf7f">Organizations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Particularly effective in multi-tenant SaaS and B2B apps, the organization feature enable tenant creation, member management, organization-level RBAC, and just-in-time-provisioning.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://blog.logto.io/ciam-101-intro-authn-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Customer IAM series<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> Our serial blog posts about Customer (or Consumer) Identity and Access Management, from 101 to advanced topics and beyond.</p>]]></content:encoded>
            <category>SSO providers</category>
            <category>okta-enterprise-sso</category>
            <category>go</category>
            <category>go</category>
            <category>SAML authentication</category>
            <category>enterprise login</category>
            <category>SSO login</category>
        </item>
        <item>
            <title><![CDATA[How to build Okta enterprise SSO with iOS (Swift)]]></title>
            <link>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto</link>
            <guid>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto</guid>
            <pubDate>Fri, 17 Apr 2026 02:54:06 GMT</pubDate>
            <description><![CDATA[{/*]]></description>
            <content:encoded><![CDATA[
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">For our new friends<!-- -->:</span><br><br><p><span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> is an Auth0 alternative designed for modern apps and SaaS products. It
offers both <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/logto" target="_blank" rel="noopener noreferrer" class="link_hf7f">Open-source<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>
services to help you quickly launch your identity and management (IAM) system. Enjoy authentication,
authorization, and multi-tenant management <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">all in one<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.<!-- --> </p><p>We recommend starting with a free development tenant on <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. This allows you to explore all the features easily.</p></div></div></div>
<p>In this article, we will go through the steps to quickly build the <!-- -->Okta enterprise SSO<!-- --> sign-in
experience (user authentication) with <a href="https://developer.apple.com/ios" target="_blank" rel="noopener">iOS (Swift)</a> and <span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>Prerequisites</strong></p>
<ul>
<li class="">A running Logto instance. Check out the <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">introduction page<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to get started.</li>
<li class="">Basic knowledge of <a href="https://developer.apple.com/ios" target="_blank" rel="noopener">iOS (Swift)</a>.</li>
<li class="">A usable <!-- -->Okta enterprise SSO<!-- --> account.</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="create-an-application-in-logto">Create an application in Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Lien direct vers Create an application in Logto" title="Lien direct vers Create an application in Logto" translate="no">​</a></h2>
<p>Logto is based on OpenID Connect (OIDC) authentication and OAuth 2.0 authorization. It supports federated identity management across multiple applications, commonly called Single Sign-On (SSO).</p>
<p>To create your <!-- -->Native app<!-- --> application, simply follow these steps:</p>
<ol>
<li class="">Open the <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. In the "Get started" section, click the "View all" link to open the application frameworks list. Alternatively, you can navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/applications" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console &gt; Applications<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, and click the "Create application" button.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/get-started.png" alt="Get started">
</li>
<li class="">In the opening modal, click the "<!-- -->Native app<!-- -->" section or filter all the available "<!-- -->Native app<!-- -->" frameworks using the quick filter checkboxes on the left. Click the "<!-- -->iOS (Swift)<!-- -->" framework card to start creating your application.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/framework-list.png" alt="Frameworks">
</li>
<li class="">Enter the application name, e.g., "Bookstore," and click "Create application".</li>
</ol>
<p>🎉 Ta-da! You just created your first application in Logto. You'll see a congrats page which includes a detailed integration guide. Follow the guide to see what the experience will be in your application.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="integrate-with-logto">Integrate iOS (Swift) with Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#integrate-with-logto" class="hash-link" aria-label="Lien direct vers Integrate iOS (Swift) with Logto" title="Lien direct vers Integrate iOS (Swift) with Logto" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="add-logto-sdk-as-a-dependency">Add Logto SDK as a dependency<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#add-logto-sdk-as-a-dependency" class="hash-link" aria-label="Lien direct vers Add Logto SDK as a dependency" title="Lien direct vers Add Logto SDK as a dependency" translate="no">​</a></h3>
<p>Use the following URL to add Logto SDK as a dependency in Swift Package Manager.</p>
<div class="language-bash codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-bash codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">https://github.com/logto-io/swift.git</span><br></span></code></pre></div></div>
<p>Since Xcode 11, you can <span class="linkWrapper_B4Bt"><a href="https://developer.apple.com/documentation/swift_packages/adding_package_dependencies_to_your_app" target="_blank" rel="noopener noreferrer" class="link_hf7f">directly import a Swift package<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> w/o any additional tool.</p>
<p>We do not support <strong>Carthage</strong> and <strong>CocoaPods</strong> at the time due to some technical issues.</p>
<details class="details_Qsrn details_Jw1Q" data-collapsed="true"><summary><h3 class="anchor anchorTargetStickyNavbar_iJWz" id="carthage">Carthage<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#carthage" class="hash-link" aria-label="Lien direct vers Carthage" title="Lien direct vers Carthage" translate="no">​</a></h3></summary><div><div class="collapsibleContent_brv9"><p>Carthage <span class="linkWrapper_B4Bt"><a href="https://github.com/Carthage/Carthage/issues/1226#issuecomment-290931385" target="_blank" rel="noopener noreferrer" class="link_hf7f">needs a <code>xcodeproj</code> file to build<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, but <code>swift package generate-xcodeproj</code> will report a failure since we are using binary targets
for native social plugins. We will try to find a workaround later.</p></div></div></details>
<details class="details_Qsrn details_Jw1Q" data-collapsed="true"><summary><h3 class="anchor anchorTargetStickyNavbar_iJWz" id="cocoapods">CocoaPods<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#cocoapods" class="hash-link" aria-label="Lien direct vers CocoaPods" title="Lien direct vers CocoaPods" translate="no">​</a></h3></summary><div><div class="collapsibleContent_brv9"><p>CocoaPods <span class="linkWrapper_B4Bt"><a href="https://github.com/CocoaPods/CocoaPods/issues/3276" target="_blank" rel="noopener noreferrer" class="link_hf7f">does not support local dependency<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and monorepo, thus it's hard to create a <code>.podspec</code> for this repo.</p></div></div></details>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="init-logtoclient">Init LogtoClient<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#init-logtoclient" class="hash-link" aria-label="Lien direct vers Init LogtoClient" title="Lien direct vers Init LogtoClient" translate="no">​</a></h3>
<p>Initialize the client by creating a <code>LogtoClient</code> instance with a <code>LogtoConfig</code> object.</p>
<div class="language-swift codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">ContentView.swift</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-swift codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token class-name">Logto</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token class-name">LogtoClient</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">let</span><span class="token plain"> config </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">try</span><span class="token operator">?</span><span class="token plain"> </span><span class="token class-name">LogtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  endpoint</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(255, 121, 198)">"&lt;your-logto-endpoint&gt;"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">// E.g. http://localhost:3001</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  appId</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token string-literal string" style="color:rgb(255, 121, 198)">"&lt;your-app-id&gt;"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">let</span><span class="token plain"> client </span><span class="token operator">=</span><span class="token plain"> </span><span class="token class-name">LogtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">useConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> config</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><br></span></code></pre></div></div>
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">info<!-- -->:</span><p>By default, we store credentials like ID Token and Refresh Token in the Keychain. Thus the user doesn't need to sign in again when he returns.</p><p>To turn off this behavior, set <code>usingPersistStorage</code> to <code>false</code>:</p><div class="language-swift codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-swift codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">let</span><span class="token plain"> config </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">try</span><span class="token operator">?</span><span class="token plain"> </span><span class="token class-name">LogtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  usingPersistStorage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token boolean">false</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><br></span></code></pre></div></div></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="sign-in">Sign in<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#sign-in" class="hash-link" aria-label="Lien direct vers Sign in" title="Lien direct vers Sign in" translate="no">​</a></h3>
<p>Before we dive into the details, here's a quick overview of the end-user experience. The sign-in process can be simplified as follows:</p>
<!-- -->
<ol>
<li class="">Your app invokes the sign-in method.</li>
<li class="">The user is redirected to the Logto sign-in page. For native apps, the system browser is opened.</li>
<li class="">The user signs in and is redirected back to your app (configured as the redirect URI).</li>
</ol>
<details class="details_Qsrn details_Jw1Q" data-collapsed="true"><summary><h3 class="anchor anchorTargetStickyNavbar_iJWz" id="regarding-redirect-based-sign-in">Regarding redirect-based sign-in<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Lien direct vers Regarding redirect-based sign-in" title="Lien direct vers Regarding redirect-based sign-in" translate="no">​</a></h3></summary><div><div class="collapsibleContent_brv9"><ol>
<li class="">This authentication process follows the <span class="linkWrapper_B4Bt"><a href="https://openid.net/specs/openid-connect-core-1_0.html" target="_blank" rel="noopener noreferrer" class="link_hf7f">OpenID Connect (OIDC)<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> protocol, and Logto enforces strict security measures to protect user sign-in.</li>
<li class="">If you have multiple apps, you can use the same identity provider (Logto). Once the user signs in to one app, Logto will automatically complete the sign-in process when the user accesses another app.</li>
</ol><p>To learn more about the rationale and benefits of redirect-based sign-in, see <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/concepts/sign-in-experience" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Logto sign-in experience explained<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p></div></div></details>
<hr>
<h4 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uri">Configure redirect URI<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#configure-redirect-uri" class="hash-link" aria-label="Lien direct vers Configure redirect URI" title="Lien direct vers Configure redirect URI" translate="no">​</a></h4>
<p>Let's switch to the Application details page of Logto Console. Add a Redirect URI <code>io.logto://callback</code> and click "Save changes".</p>
<img alt="Redirect URI in Logto Console" src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/ios-redirect-uri.png" width="600px">
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">info<!-- -->:</span><p>The Redirect URI in iOS SDK is only for internal use. There's <em>NO NEED</em> to add a <span class="linkWrapper_B4Bt"><a href="https://developer.apple.com/documentation/xcode/defining-a-custom-url-scheme-for-your-app" target="_blank" rel="noopener noreferrer" class="link_hf7f">Custom URL Scheme<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> until a connector asks.</p></div></div></div>
<h4 class="anchor anchorTargetStickyNavbar_iJWz" id="sign-in-and-sign-out">Sign-in and sign-out<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#sign-in-and-sign-out" class="hash-link" aria-label="Lien direct vers Sign-in and sign-out" title="Lien direct vers Sign-in and sign-out" translate="no">​</a></h4>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>Before calling <code>.signInWithBrowser(redirectUri:)</code>, make sure you have correctly configured Redirect URI
in Admin Console.</p></div></div></div>
<p>You can use <code>client.signInWithBrowser(redirectUri:)</code> to sign in the user and <code>client.signOut()</code> to sign out the user.</p>
<p>For example, in a SwiftUI app:</p>
<div class="language-swift codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">ContentView.swift</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-swift codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">struct</span><span class="token plain"> </span><span class="token class-name">ContentView</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token class-name">View</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token attribute atrule">@State</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">var</span><span class="token plain"> isAuthenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token class-name">Bool</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">init</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    isAuthenticated </span><span class="token operator">=</span><span class="token plain"> client</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">isAuthenticated</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">var</span><span class="token plain"> body</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">some</span><span class="token plain"> </span><span class="token class-name">View</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token class-name">VStack</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> isAuthenticated </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token class-name">Button</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string-literal string" style="color:rgb(255, 121, 198)">"Sign Out"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          </span><span class="token class-name">Task</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">self</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> client</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">signOut</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            isAuthenticated </span><span class="token operator">=</span><span class="token plain"> </span><span class="token boolean">false</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">else</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token class-name">Button</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string-literal string" style="color:rgb(255, 121, 198)">"Sign In"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          </span><span class="token class-name">Task</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">self</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">do</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">              </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">try</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> client</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">signInWithBrowser</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">redirectUri</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> "$</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                props</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">redirectUris</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> </span><span class="token operator">??</span><span class="token plain"> 'io</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">logto</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token operator">//</span><span class="token plain">callback'</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">              </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">              isAuthenticated </span><span class="token operator">=</span><span class="token plain"> </span><span class="token boolean">true</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">catch</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">let</span><span class="token plain"> error </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">as</span><span class="token plain"> </span><span class="token class-name">LogtoClientErrors</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token class-name">SignIn</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">              </span><span class="token comment" style="color:rgb(98, 114, 164)">// error occured during sign in</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">catch</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">              </span><span class="token comment" style="color:rgb(98, 114, 164)">// other errors</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="checkpoint-test-your-application">Checkpoint: Test your application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Lien direct vers Checkpoint: Test your application" title="Lien direct vers Checkpoint: Test your application" translate="no">​</a></h3>
<p>Now, you can test your application:</p>
<ol>
<li class="">Run your application, you will see the sign-in button.</li>
<li class="">Click the sign-in button, the SDK will init the sign-in process and redirect you to the Logto sign-in page.</li>
<li class="">After you signed in, you will be redirected back to your application and see the sign-out button.</li>
<li class="">Click the sign-out button to clear token storage and sign out.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="add-connector-connector">Add Okta enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#add-connector-connector" class="hash-link" aria-label="Lien direct vers Add Okta enterprise SSO connector" title="Lien direct vers Add Okta enterprise SSO connector" translate="no">​</a></h2>
<p>To simplify access management and gain enterprise-level safeguards for your big clients, connect with <!-- -->iOS (Swift)<!-- --> as a federated identity provider. The Logto enterprise SSO connector helps you establish this connection in minutes by allowing several parameter inputs.</p>
<p>To add an enterprise SSO connector, simply follow these steps:</p>
<ol>
<li class="">Navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto console &gt; Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-page.png" alt="SSO page">
<ol start="2">
<li class="">Click "Add enterprise connector" button and choose your SSO provider type. Choose from prebuilt connectors for Microsoft Entra ID (Azure AD), Google Workspace, and Okta, or create a custom SSO connection using the standard OpenID Connect (OIDC) or SAML protocol.</li>
<li class="">Provide a unique name (e.g., SSO sign-in for Acme Company).</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/select-your-sso-provider.png" alt="Select your SSO provider">
<ol start="4">
<li class="">Configure the connection with your IdP in the "Connection" tab. Check the guides above for each connector types.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-connection-settings.png" alt="SSO connection">
<ol start="5">
<li class="">Customize the SSO experience and enterprise’s <strong>email domain</strong> in the "Experience" tab. Users sign in with the SSO-enabled email domain will be redirected to SSO authentication.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-experience-settings.png" alt="SSO experience">
<ol start="6">
<li class="">Save changes.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="set-up-connectorconfigname">Set up OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Lien direct vers Set up OIDC application on Okta admin portal" title="Lien direct vers Set up OIDC application on Okta admin portal" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-okta-admin-portal">Step 1: Create an OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#step-1-create-an-oidc-application-on-okta-admin-portal" class="hash-link" aria-label="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" title="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" translate="no">​</a></h3>
<ul>
<li class="">Visit the Okta admin portal and sign in as an administrator.</li>
<li class="">Navigate to the <code>Applications</code>/<code>Applications</code> page using the side menu.</li>
<li class="">Click the <code>Create App Integration</code> button to create a new OIDC application.</li>
<li class="">Select the <code>OIDC - OpenID Connect</code> option as the <code>Sign-in method</code>.</li>
<li class="">Select the <code>Web Application</code> option as the <code>Application type</code>.</li>
</ul>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_create_application.webp" alt="Okta create application">
<p>Click the <code>Next</code> button to continue.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-the-application-settings">Step 2: Configure the application settings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Lien direct vers Step 2: Configure the application settings" title="Lien direct vers Step 2: Configure the application settings" translate="no">​</a></h3>
<ol>
<li class="">Provide an <code>App integration name</code>. It will be used as the identifier of your OIDC application.</li>
<li class="">Add a new <code>Sign-in redirect URIs</code> using the Logto SSO connector's callback URL.</li>
</ol>
<p>This is the URI that the Okta will redirect the user's browser after successful authentication. After a user successfully authenticates with the IdP, the IdP redirects the user's browser back to this designated URI along with an authorization code. Logto will complete the authentication process based on the authorization code received from this URI.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_application_settings.webp" alt="Okta application settings">
<ol start="3">
<li class="">Assign users to the application.</li>
</ol>
<p>Based on the <code>Assignments</code> settings, you can choose to assign the application to all users or specific users/groups.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_assign_users.webp" alt="Okta assign users">
<p>Click the <code>Save</code> button to save the application settings.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-set-up-logto-connector-with-the-client-credentials">Step 3: Set up Logto connector with the client credentials<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#step-3-set-up-logto-connector-with-the-client-credentials" class="hash-link" aria-label="Lien direct vers Step 3: Set up Logto connector with the client credentials" title="Lien direct vers Step 3: Set up Logto connector with the client credentials" translate="no">​</a></h3>
<p>After successfully creating the OIDC application, you will be redirected to the application details page.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_client_credentials.webp" alt="Okta client credentials">
<p>Copy the <code>client ID</code> and <code>client secret</code> and fill in the corresponding fields on the Logto SSO connector <code>Connection</code> tab.</p>
<p>Use your Okta domain as the <code>issuer</code>. Example: <code>https://dev-12345678.okta.com</code>. Once you have filled in all the fields, click the <code>Save</code> button to save the connector settings.</p>
<p>If the <code>issuer</code> link you provided is valid, you will see a parsed full list of Okta IdP configurations shown below the <code>issuer</code> field.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-additional-scopes-optional">Step 4: Additional scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Lien direct vers Step 4: Additional scopes (Optional)" title="Lien direct vers Step 4: Additional scopes (Optional)" translate="no">​</a></h3>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their Okta accounts. Requesting additional Okta permissions requires configuration on both sides:</p>
<p><strong>In Okta admin console:</strong></p>
<ol>
<li class="">Navigate to <strong>Applications &gt; Applications</strong> and select your OIDC application.</li>
<li class="">Go to the <strong>Assignments</strong> tab to ensure your app has access to the required users and groups.</li>
<li class="">For custom scopes, navigate to <strong>Security &gt; API &gt; Authorization Servers</strong> and select your authorization server.</li>
<li class="">Add custom scopes if needed:<!-- -->
<ul>
<li class="">Click <strong>Scopes</strong> and then <strong>Add Scope</strong></li>
<li class="">Define scope names like <code>okta.users.read</code> or <code>okta.groups.read</code> for accessing Okta APIs</li>
<li class="">Configure consent requirements for each scope</li>
</ul>
</li>
</ol>
<p>For a complete list of available scopes and their descriptions, please refer to the <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/api/openapi/okta-oauth/guides/overview/#scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta OIDC documentation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>In Logto Okta connector:</strong></p>
<ol>
<li class="">Logto automatically includes <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information. You can leave the <code>Scopes</code> field blank if you only need basic user information.</li>
<li class="">Add <code>offline_access</code> to the <code>Scopes</code> field if you plan to store tokens for persistent API access. This scope enables refresh tokens for long-lived API access.</li>
<li class="">Add additional scopes (separated by spaces) in the <code>Scopes</code> field to request more data from Okta. For example: <code>okta.users.read okta.groups.read</code></li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>If your app requests these scopes to access Okta APIs and perform actions, make sure to enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. See the next section for details.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-store-tokens-to-access-okta-apis-optional">Step 5: Store tokens to access Okta APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#step-5-store-tokens-to-access-okta-apis-optional" class="hash-link" aria-label="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" title="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" translate="no">​</a></h3>
<p>If you want to access <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/guides/request-user-consent/main/#enable-consent-for-scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta scopes<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and perform actions with user authorization, Logto needs to get specific scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in your Okta developer console API permissions configuration and Logto Okta connector.</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. Logto will securely store Okta access and refresh tokens in the Secret Vault.</li>
<li class="">To ensure refresh tokens are returned, add the <code>offline_access</code> scope to your Okta application permissions and include it in your Logto Okta connector scopes. This scope allows your application to maintain access to resources for extended periods.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-6-set-email-domains-and-enable-the-sso-connector">Step 6: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#step-6-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Lien direct vers Step 6: Set email domains and enable the SSO connector" title="Lien direct vers Step 6: Set email domains and enable the SSO connector" translate="no">​</a></h3>
<p>Provide the <code>email domains</code> of your organization on Logto's connector <code>SSO experience</code> tab. This will enable the SSO connector as an authentication method for those users.</p>
<p>Users with email addresses in the specified domains will be redirected to use your SSO connector as their only authentication method.</p>
<p>For more details about creating OIDC integration with Okta, please check <span class="linkWrapper_B4Bt"><a href="https://help.okta.com/oie/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm" target="_blank" rel="noopener noreferrer" class="link_hf7f">Create OIDC App Integrations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#save-your-configuration" class="hash-link" aria-label="Lien direct vers Save your configuration" title="Lien direct vers Save your configuration" translate="no">​</a></h3>
<p>Double check you have filled out necessary values in the Logto connector configuration area. Click
"Save and Done" (or "Save changes") and the <!-- -->Okta enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable Okta enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" title="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" translate="no">​</a></h2>
<p>You don’t need to configure enterprise connectors individually, Logto simplifies SSO integration into your applications with just one click.</p>
<ol>
<li class="">Navigate to: <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/sign-in-experience/sign-up-and-sign-in" target="_blank" rel="noopener noreferrer" class="link_hf7f">Console &gt; Sign-in &amp; account &gt; Sign-up and sign-in<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">Enable the "Enterprise SSO" toggle.</li>
<li class="">Save changes.</li>
</ol>
<p>Once enabled, a "Single Sign-On" button will appear on your sign-in page. Enterprise users with SSO-enabled email domains can access your services using their enterprise identity providers (IdPs).</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-email-auto-navigation.png" alt="Auto detect SSO sign-in via email domain">
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-link-button-navigation.png" alt="Navigate to SSO sign-in via manually click link button">
<p>To learn more about the SSO user experience, including SP-initiated SSO and IdP-initiated SSO, refer to User flows: <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="testing-and-validation">Testing and Validation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#testing-and-validation" class="hash-link" aria-label="Lien direct vers Testing and Validation" title="Lien direct vers Testing and Validation" translate="no">​</a></h2>
<p>Return to your <!-- -->iOS (Swift)<!-- --> app. You should now be able to sign in with <!-- -->Okta enterprise SSO<!-- -->. Enjoy!</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="further-readings">Further readings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-ios-swift-and-logto#further-readings" class="hash-link" aria-label="Lien direct vers Further readings" title="Lien direct vers Further readings" translate="no">​</a></h2>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows" target="_blank" rel="noopener noreferrer" class="link_hf7f">End-user flows<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Logto provides a out-of-the-box authentication flows including MFA and enterprise SSO, along with powerful APIs for flexible implementation of account settings, security verification, and multi-tenant experience.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/authorization" target="_blank" rel="noopener noreferrer" class="link_hf7f">Authorization<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Authorization defines the actions a user can do or resources they can access after being authenticated. Explore how to protect your API for native and single-page applications and implement Role-based Access Control (RBAC).</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/organizations" target="_blank" rel="noopener noreferrer" class="link_hf7f">Organizations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Particularly effective in multi-tenant SaaS and B2B apps, the organization feature enable tenant creation, member management, organization-level RBAC, and just-in-time-provisioning.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://blog.logto.io/ciam-101-intro-authn-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Customer IAM series<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> Our serial blog posts about Customer (or Consumer) Identity and Access Management, from 101 to advanced topics and beyond.</p>]]></content:encoded>
            <category>SSO providers</category>
            <category>okta-enterprise-sso</category>
            <category>ios-swift</category>
            <category>swift</category>
            <category>SAML authentication</category>
            <category>enterprise login</category>
            <category>SSO login</category>
        </item>
        <item>
            <title><![CDATA[How to build Okta enterprise SSO with Next.js (Pages Router)]]></title>
            <link>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto</link>
            <guid>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto</guid>
            <pubDate>Fri, 17 Apr 2026 02:54:06 GMT</pubDate>
            <description><![CDATA[{/*]]></description>
            <content:encoded><![CDATA[
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">For our new friends<!-- -->:</span><br><br><p><span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> is an Auth0 alternative designed for modern apps and SaaS products. It
offers both <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/logto" target="_blank" rel="noopener noreferrer" class="link_hf7f">Open-source<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>
services to help you quickly launch your identity and management (IAM) system. Enjoy authentication,
authorization, and multi-tenant management <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">all in one<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.<!-- --> </p><p>We recommend starting with a free development tenant on <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. This allows you to explore all the features easily.</p></div></div></div>
<p>In this article, we will go through the steps to quickly build the <!-- -->Okta enterprise SSO<!-- --> sign-in
experience (user authentication) with <a href="https://nextjs.org/" target="_blank" rel="noopener">Next.js (Pages Router)</a> and <span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>Prerequisites</strong></p>
<ul>
<li class="">A running Logto instance. Check out the <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">introduction page<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to get started.</li>
<li class="">Basic knowledge of <a href="https://nextjs.org/" target="_blank" rel="noopener">Next.js (Pages Router)</a>.</li>
<li class="">A usable <!-- -->Okta enterprise SSO<!-- --> account.</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="create-an-application-in-logto">Create an application in Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Lien direct vers Create an application in Logto" title="Lien direct vers Create an application in Logto" translate="no">​</a></h2>
<p>Logto is based on OpenID Connect (OIDC) authentication and OAuth 2.0 authorization. It supports federated identity management across multiple applications, commonly called Single Sign-On (SSO).</p>
<p>To create your <!-- -->Traditional web<!-- --> application, simply follow these steps:</p>
<ol>
<li class="">Open the <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. In the "Get started" section, click the "View all" link to open the application frameworks list. Alternatively, you can navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/applications" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console &gt; Applications<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, and click the "Create application" button.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/get-started.png" alt="Get started">
</li>
<li class="">In the opening modal, click the "<!-- -->Traditional web<!-- -->" section or filter all the available "<!-- -->Traditional web<!-- -->" frameworks using the quick filter checkboxes on the left. Click the "<!-- -->Next.js<!-- -->" framework card to start creating your application.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/framework-list.png" alt="Frameworks">
</li>
<li class="">Enter the application name, e.g., "Bookstore," and click "Create application".</li>
</ol>
<p>🎉 Ta-da! You just created your first application in Logto. You'll see a congrats page which includes a detailed integration guide. Follow the guide to see what the experience will be in your application.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="integrate-with-logto">Integrate Next.js with Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#integrate-with-logto" class="hash-link" aria-label="Lien direct vers Integrate Next.js with Logto" title="Lien direct vers Integrate Next.js with Logto" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><ul>
<li class="">The sample project is available on our <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/js/tree/master/packages/next-sample" target="_blank" rel="noopener noreferrer" class="link_hf7f">SDK repository<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">The example is based on Next.js <span class="linkWrapper_B4Bt"><a href="https://nextjs.org/docs/pages" target="_blank" rel="noopener noreferrer" class="link_hf7f">Pages Router<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ul></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="installation">Installation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#installation" class="hash-link" aria-label="Lien direct vers Installation" title="Lien direct vers Installation" translate="no">​</a></h3>
<!-- -->
<p>Install Logto SDK via your favorite package manager:</p>
<div class="theme-tabs-container tabs-container tabList_q32P"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_DwL7 tabs__item--active">npm</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_DwL7">pnpm</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_DwL7">yarn</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_bR4Y"><pre><code class="language-bash">npm i <!-- -->@logto/next</code></pre></div><div role="tabpanel" class="tabItem_bR4Y" hidden=""><pre><code class="language-bash">pnpm add <!-- -->@logto/next</code></pre></div><div role="tabpanel" class="tabItem_bR4Y" hidden=""><pre><code class="language-bash">yarn add <!-- -->@logto/next</code></pre></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="integration">Integration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#integration" class="hash-link" aria-label="Lien direct vers Integration" title="Lien direct vers Integration" translate="no">​</a></h3>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="init-logtoclient">Init LogtoClient<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#init-logtoclient" class="hash-link" aria-label="Lien direct vers Init LogtoClient" title="Lien direct vers Init LogtoClient" translate="no">​</a></h3>
<p>Import and initialize LogtoClient:</p>
<div class="language-ts codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">libraries/logto.ts</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-ts codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> LogtoClient </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'@logto/next'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">export</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> logtoClient </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">new</span><span class="token plain"> </span><span class="token class-name">LogtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  appId</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'&lt;your-application-id&gt;'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  appSecret</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'&lt;your-app-secret-copied-from-console&gt;'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  endpoint</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'&lt;your-logto-endpoint&gt;'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">// E.g. http://localhost:3001</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  baseUrl</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'http://localhost:3000'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  cookieSecret</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'complex_password_at_least_32_characters_long'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  cookieSecure</span><span class="token operator">:</span><span class="token plain"> process</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">env</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token constant" style="color:rgb(189, 147, 249)">NODE_ENV</span><span class="token plain"> </span><span class="token operator">===</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'production'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uris">Configure Redirect URIs<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#configure-redirect-uris" class="hash-link" aria-label="Lien direct vers Configure Redirect URIs" title="Lien direct vers Configure Redirect URIs" translate="no">​</a></h3>
<p>Before we dive into the details, here's a quick overview of the end-user experience. The sign-in process can be simplified as follows:</p>
<!-- -->
<ol>
<li class="">Your app invokes the sign-in method.</li>
<li class="">The user is redirected to the Logto sign-in page. For native apps, the system browser is opened.</li>
<li class="">The user signs in and is redirected back to your app (configured as the redirect URI).</li>
</ol>
<details class="details_Qsrn details_Jw1Q" data-collapsed="true"><summary><h3 class="anchor anchorTargetStickyNavbar_iJWz" id="regarding-redirect-based-sign-in">Regarding redirect-based sign-in<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Lien direct vers Regarding redirect-based sign-in" title="Lien direct vers Regarding redirect-based sign-in" translate="no">​</a></h3></summary><div><div class="collapsibleContent_brv9"><ol>
<li class="">This authentication process follows the <span class="linkWrapper_B4Bt"><a href="https://openid.net/specs/openid-connect-core-1_0.html" target="_blank" rel="noopener noreferrer" class="link_hf7f">OpenID Connect (OIDC)<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> protocol, and Logto enforces strict security measures to protect user sign-in.</li>
<li class="">If you have multiple apps, you can use the same identity provider (Logto). Once the user signs in to one app, Logto will automatically complete the sign-in process when the user accesses another app.</li>
</ol><p>To learn more about the rationale and benefits of redirect-based sign-in, see <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/concepts/sign-in-experience" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Logto sign-in experience explained<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p></div></div></details>
<hr>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>In the following code snippets, we assume your app is running on <code>http://localhost:3000/</code>.</p></div></div></div>
<!-- -->
<!-- -->
<h4 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uris">Configure redirect URIs<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#configure-redirect-uris" class="hash-link" aria-label="Lien direct vers Configure redirect URIs" title="Lien direct vers Configure redirect URIs" translate="no">​</a></h4>
<p>Switch to the application details page of Logto Console. Add a redirect URI <code>http://localhost:3000/api/logto/sign-in-callback</code>.</p>
<img alt="Redirect URI in Logto Console" src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/web-redirect-uri.png" width="600px">
<p>Just like signing in, users should be redirected to Logto for signing out of the shared session. Once finished, it would be great to redirect the user back to your website. For example, add <code>http://localhost:3000/</code> as the post sign-out redirect URI section.</p>
<p>Then click "Save" to save the changes.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="prepare-api-routes">Prepare API routes<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#prepare-api-routes" class="hash-link" aria-label="Lien direct vers Prepare API routes" title="Lien direct vers Prepare API routes" translate="no">​</a></h3>
<p>Prepare <span class="linkWrapper_B4Bt"><a href="https://nextjs.org/docs/pages/building-your-application/routing/api-routes" target="_blank" rel="noopener noreferrer" class="link_hf7f">API routes<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to connect with Logto.</p>
<p>Go back to your IDE/editor, use the following code to implement the API routes first:</p>
<div class="language-ts codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">pages/api/logto/[action].ts</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-ts codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> logtoClient </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'../../../libraries/logto'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">export</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">default</span><span class="token plain"> logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">handleAuthRoutes</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<p>This will create 4 routes automatically:</p>
<ol>
<li class=""><code>/api/logto/sign-in</code>: Sign in with Logto.</li>
<li class=""><code>/api/logto/sign-in-callback</code>: Handle sign-in callback.</li>
<li class=""><code>/api/logto/sign-out</code>: Sign out with Logto.</li>
<li class=""><code>/api/logto/user</code>: Check if user is authenticated with Logto, if yes, return user info.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-sign-in-and-sign-out">Implement sign-in and sign-out<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#implement-sign-in-and-sign-out" class="hash-link" aria-label="Lien direct vers Implement sign-in and sign-out" title="Lien direct vers Implement sign-in and sign-out" translate="no">​</a></h3>
<p>We have prepared the API routes, now let's implement the sign-in and sign-out buttons in your home page. We need to redirect the user to the sign-in or sign-out route when needed. To help with this, use <code>useSWR</code> to fetch authentication status from <code>/api/logto/user</code>.</p>
<p>Check <span class="linkWrapper_B4Bt"><a href="https://swr.vercel.app/docs/getting-started" target="_blank" rel="noopener noreferrer" class="link_hf7f">this guide<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to learn more about <code>useSWR</code>.</p>
<div class="language-tsx codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">/pages/index.tsx</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-tsx codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">type</span><span class="token plain"> </span><span class="token class-name">LogtoContext</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'@logto/next'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token imports">useSWR</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'swr'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token function-variable function" style="color:rgb(80, 250, 123)">Home</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token arrow operator">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> data </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token generic-function function" style="color:rgb(80, 250, 123)">useSWR</span><span class="token generic-function generic class-name operator">&lt;</span><span class="token generic-function generic class-name">LogtoContext</span><span class="token generic-function generic class-name operator">&gt;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'/api/logto/user'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">nav</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text">      </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain">data</span><span class="token operator">?.</span><span class="token plain">isAuthenticated </span><span class="token operator">?</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text">          Hello, </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain">data</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">claims</span><span class="token operator">?.</span><span class="token plain">sub</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain-text">,</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">button</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)">            </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">onClick</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(248, 248, 242)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript arrow operator" style="color:rgb(255, 121, 198)">=&gt;</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)">              </span><span class="token tag script language-javascript dom variable" style="color:rgb(189, 147, 249);font-style:italic">window</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token tag script language-javascript property-access" style="color:rgb(255, 121, 198)">location</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token tag script language-javascript method function property-access" style="color:rgb(80, 250, 123)">assign</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'/api/logto/sign-out'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)">            </span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)">          </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text">            Sign Out</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">button</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">button</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)">            </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">onClick</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(248, 248, 242)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript arrow operator" style="color:rgb(255, 121, 198)">=&gt;</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)">              </span><span class="token tag script language-javascript dom variable" style="color:rgb(189, 147, 249);font-style:italic">window</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token tag script language-javascript property-access" style="color:rgb(255, 121, 198)">location</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token tag script language-javascript method function property-access" style="color:rgb(80, 250, 123)">assign</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'/api/logto/sign-in'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)">            </span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)">          </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text">            Sign In</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text">          </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">button</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text">        </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text">    </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">nav</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">export</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">default</span><span class="token plain"> </span><span class="token maybe-class-name">Home</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="checkpoint-test-your-application">Checkpoint: Test your application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Lien direct vers Checkpoint: Test your application" title="Lien direct vers Checkpoint: Test your application" translate="no">​</a></h3>
<p>Now, you can test your application:</p>
<ol>
<li class="">Run your application, you will see the sign-in button.</li>
<li class="">Click the sign-in button, the SDK will init the sign-in process and redirect you to the Logto sign-in page.</li>
<li class="">After you signed in, you will be redirected back to your application and see the sign-out button.</li>
<li class="">Click the sign-out button to clear token storage and sign out.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="add-connector-connector">Add Okta enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#add-connector-connector" class="hash-link" aria-label="Lien direct vers Add Okta enterprise SSO connector" title="Lien direct vers Add Okta enterprise SSO connector" translate="no">​</a></h2>
<p>To simplify access management and gain enterprise-level safeguards for your big clients, connect with <!-- -->Next.js<!-- --> as a federated identity provider. The Logto enterprise SSO connector helps you establish this connection in minutes by allowing several parameter inputs.</p>
<p>To add an enterprise SSO connector, simply follow these steps:</p>
<ol>
<li class="">Navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto console &gt; Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-page.png" alt="SSO page">
<ol start="2">
<li class="">Click "Add enterprise connector" button and choose your SSO provider type. Choose from prebuilt connectors for Microsoft Entra ID (Azure AD), Google Workspace, and Okta, or create a custom SSO connection using the standard OpenID Connect (OIDC) or SAML protocol.</li>
<li class="">Provide a unique name (e.g., SSO sign-in for Acme Company).</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/select-your-sso-provider.png" alt="Select your SSO provider">
<ol start="4">
<li class="">Configure the connection with your IdP in the "Connection" tab. Check the guides above for each connector types.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-connection-settings.png" alt="SSO connection">
<ol start="5">
<li class="">Customize the SSO experience and enterprise’s <strong>email domain</strong> in the "Experience" tab. Users sign in with the SSO-enabled email domain will be redirected to SSO authentication.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-experience-settings.png" alt="SSO experience">
<ol start="6">
<li class="">Save changes.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="set-up-connectorconfigname">Set up OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Lien direct vers Set up OIDC application on Okta admin portal" title="Lien direct vers Set up OIDC application on Okta admin portal" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-okta-admin-portal">Step 1: Create an OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#step-1-create-an-oidc-application-on-okta-admin-portal" class="hash-link" aria-label="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" title="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" translate="no">​</a></h3>
<ul>
<li class="">Visit the Okta admin portal and sign in as an administrator.</li>
<li class="">Navigate to the <code>Applications</code>/<code>Applications</code> page using the side menu.</li>
<li class="">Click the <code>Create App Integration</code> button to create a new OIDC application.</li>
<li class="">Select the <code>OIDC - OpenID Connect</code> option as the <code>Sign-in method</code>.</li>
<li class="">Select the <code>Web Application</code> option as the <code>Application type</code>.</li>
</ul>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_create_application.webp" alt="Okta create application">
<p>Click the <code>Next</code> button to continue.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-the-application-settings">Step 2: Configure the application settings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Lien direct vers Step 2: Configure the application settings" title="Lien direct vers Step 2: Configure the application settings" translate="no">​</a></h3>
<ol>
<li class="">Provide an <code>App integration name</code>. It will be used as the identifier of your OIDC application.</li>
<li class="">Add a new <code>Sign-in redirect URIs</code> using the Logto SSO connector's callback URL.</li>
</ol>
<p>This is the URI that the Okta will redirect the user's browser after successful authentication. After a user successfully authenticates with the IdP, the IdP redirects the user's browser back to this designated URI along with an authorization code. Logto will complete the authentication process based on the authorization code received from this URI.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_application_settings.webp" alt="Okta application settings">
<ol start="3">
<li class="">Assign users to the application.</li>
</ol>
<p>Based on the <code>Assignments</code> settings, you can choose to assign the application to all users or specific users/groups.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_assign_users.webp" alt="Okta assign users">
<p>Click the <code>Save</code> button to save the application settings.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-set-up-logto-connector-with-the-client-credentials">Step 3: Set up Logto connector with the client credentials<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#step-3-set-up-logto-connector-with-the-client-credentials" class="hash-link" aria-label="Lien direct vers Step 3: Set up Logto connector with the client credentials" title="Lien direct vers Step 3: Set up Logto connector with the client credentials" translate="no">​</a></h3>
<p>After successfully creating the OIDC application, you will be redirected to the application details page.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_client_credentials.webp" alt="Okta client credentials">
<p>Copy the <code>client ID</code> and <code>client secret</code> and fill in the corresponding fields on the Logto SSO connector <code>Connection</code> tab.</p>
<p>Use your Okta domain as the <code>issuer</code>. Example: <code>https://dev-12345678.okta.com</code>. Once you have filled in all the fields, click the <code>Save</code> button to save the connector settings.</p>
<p>If the <code>issuer</code> link you provided is valid, you will see a parsed full list of Okta IdP configurations shown below the <code>issuer</code> field.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-additional-scopes-optional">Step 4: Additional scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Lien direct vers Step 4: Additional scopes (Optional)" title="Lien direct vers Step 4: Additional scopes (Optional)" translate="no">​</a></h3>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their Okta accounts. Requesting additional Okta permissions requires configuration on both sides:</p>
<p><strong>In Okta admin console:</strong></p>
<ol>
<li class="">Navigate to <strong>Applications &gt; Applications</strong> and select your OIDC application.</li>
<li class="">Go to the <strong>Assignments</strong> tab to ensure your app has access to the required users and groups.</li>
<li class="">For custom scopes, navigate to <strong>Security &gt; API &gt; Authorization Servers</strong> and select your authorization server.</li>
<li class="">Add custom scopes if needed:<!-- -->
<ul>
<li class="">Click <strong>Scopes</strong> and then <strong>Add Scope</strong></li>
<li class="">Define scope names like <code>okta.users.read</code> or <code>okta.groups.read</code> for accessing Okta APIs</li>
<li class="">Configure consent requirements for each scope</li>
</ul>
</li>
</ol>
<p>For a complete list of available scopes and their descriptions, please refer to the <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/api/openapi/okta-oauth/guides/overview/#scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta OIDC documentation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>In Logto Okta connector:</strong></p>
<ol>
<li class="">Logto automatically includes <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information. You can leave the <code>Scopes</code> field blank if you only need basic user information.</li>
<li class="">Add <code>offline_access</code> to the <code>Scopes</code> field if you plan to store tokens for persistent API access. This scope enables refresh tokens for long-lived API access.</li>
<li class="">Add additional scopes (separated by spaces) in the <code>Scopes</code> field to request more data from Okta. For example: <code>okta.users.read okta.groups.read</code></li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>If your app requests these scopes to access Okta APIs and perform actions, make sure to enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. See the next section for details.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-store-tokens-to-access-okta-apis-optional">Step 5: Store tokens to access Okta APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#step-5-store-tokens-to-access-okta-apis-optional" class="hash-link" aria-label="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" title="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" translate="no">​</a></h3>
<p>If you want to access <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/guides/request-user-consent/main/#enable-consent-for-scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta scopes<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and perform actions with user authorization, Logto needs to get specific scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in your Okta developer console API permissions configuration and Logto Okta connector.</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. Logto will securely store Okta access and refresh tokens in the Secret Vault.</li>
<li class="">To ensure refresh tokens are returned, add the <code>offline_access</code> scope to your Okta application permissions and include it in your Logto Okta connector scopes. This scope allows your application to maintain access to resources for extended periods.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-6-set-email-domains-and-enable-the-sso-connector">Step 6: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#step-6-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Lien direct vers Step 6: Set email domains and enable the SSO connector" title="Lien direct vers Step 6: Set email domains and enable the SSO connector" translate="no">​</a></h3>
<p>Provide the <code>email domains</code> of your organization on Logto's connector <code>SSO experience</code> tab. This will enable the SSO connector as an authentication method for those users.</p>
<p>Users with email addresses in the specified domains will be redirected to use your SSO connector as their only authentication method.</p>
<p>For more details about creating OIDC integration with Okta, please check <span class="linkWrapper_B4Bt"><a href="https://help.okta.com/oie/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm" target="_blank" rel="noopener noreferrer" class="link_hf7f">Create OIDC App Integrations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#save-your-configuration" class="hash-link" aria-label="Lien direct vers Save your configuration" title="Lien direct vers Save your configuration" translate="no">​</a></h3>
<p>Double check you have filled out necessary values in the Logto connector configuration area. Click
"Save and Done" (or "Save changes") and the <!-- -->Okta enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable Okta enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" title="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" translate="no">​</a></h2>
<p>You don’t need to configure enterprise connectors individually, Logto simplifies SSO integration into your applications with just one click.</p>
<ol>
<li class="">Navigate to: <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/sign-in-experience/sign-up-and-sign-in" target="_blank" rel="noopener noreferrer" class="link_hf7f">Console &gt; Sign-in &amp; account &gt; Sign-up and sign-in<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">Enable the "Enterprise SSO" toggle.</li>
<li class="">Save changes.</li>
</ol>
<p>Once enabled, a "Single Sign-On" button will appear on your sign-in page. Enterprise users with SSO-enabled email domains can access your services using their enterprise identity providers (IdPs).</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-email-auto-navigation.png" alt="Auto detect SSO sign-in via email domain">
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-link-button-navigation.png" alt="Navigate to SSO sign-in via manually click link button">
<p>To learn more about the SSO user experience, including SP-initiated SSO and IdP-initiated SSO, refer to User flows: <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="testing-and-validation">Testing and Validation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#testing-and-validation" class="hash-link" aria-label="Lien direct vers Testing and Validation" title="Lien direct vers Testing and Validation" translate="no">​</a></h2>
<p>Return to your <!-- -->Next.js (Pages Router)<!-- --> app. You should now be able to sign in with <!-- -->Okta enterprise SSO<!-- -->. Enjoy!</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="further-readings">Further readings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-next-and-logto#further-readings" class="hash-link" aria-label="Lien direct vers Further readings" title="Lien direct vers Further readings" translate="no">​</a></h2>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows" target="_blank" rel="noopener noreferrer" class="link_hf7f">End-user flows<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Logto provides a out-of-the-box authentication flows including MFA and enterprise SSO, along with powerful APIs for flexible implementation of account settings, security verification, and multi-tenant experience.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/authorization" target="_blank" rel="noopener noreferrer" class="link_hf7f">Authorization<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Authorization defines the actions a user can do or resources they can access after being authenticated. Explore how to protect your API for native and single-page applications and implement Role-based Access Control (RBAC).</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/organizations" target="_blank" rel="noopener noreferrer" class="link_hf7f">Organizations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Particularly effective in multi-tenant SaaS and B2B apps, the organization feature enable tenant creation, member management, organization-level RBAC, and just-in-time-provisioning.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://blog.logto.io/ciam-101-intro-authn-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Customer IAM series<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> Our serial blog posts about Customer (or Consumer) Identity and Access Management, from 101 to advanced topics and beyond.</p>]]></content:encoded>
            <category>SSO providers</category>
            <category>okta-enterprise-sso</category>
            <category>next</category>
            <category>js</category>
            <category>SAML authentication</category>
            <category>enterprise login</category>
            <category>SSO login</category>
        </item>
        <item>
            <title><![CDATA[How to build Okta enterprise SSO with PHP]]></title>
            <link>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto</link>
            <guid>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto</guid>
            <pubDate>Fri, 17 Apr 2026 02:54:06 GMT</pubDate>
            <description><![CDATA[{/*]]></description>
            <content:encoded><![CDATA[
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">For our new friends<!-- -->:</span><br><br><p><span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> is an Auth0 alternative designed for modern apps and SaaS products. It
offers both <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/logto" target="_blank" rel="noopener noreferrer" class="link_hf7f">Open-source<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>
services to help you quickly launch your identity and management (IAM) system. Enjoy authentication,
authorization, and multi-tenant management <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">all in one<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.<!-- --> </p><p>We recommend starting with a free development tenant on <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. This allows you to explore all the features easily.</p></div></div></div>
<p>In this article, we will go through the steps to quickly build the <!-- -->Okta enterprise SSO<!-- --> sign-in
experience (user authentication) with <a href="https://www.php.net/" target="_blank" rel="noopener">PHP</a> and <span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>Prerequisites</strong></p>
<ul>
<li class="">A running Logto instance. Check out the <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">introduction page<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to get started.</li>
<li class="">Basic knowledge of <a href="https://www.php.net/" target="_blank" rel="noopener">PHP</a>.</li>
<li class="">A usable <!-- -->Okta enterprise SSO<!-- --> account.</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="create-an-application-in-logto">Create an application in Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Lien direct vers Create an application in Logto" title="Lien direct vers Create an application in Logto" translate="no">​</a></h2>
<p>Logto is based on OpenID Connect (OIDC) authentication and OAuth 2.0 authorization. It supports federated identity management across multiple applications, commonly called Single Sign-On (SSO).</p>
<p>To create your <!-- -->Traditional web<!-- --> application, simply follow these steps:</p>
<ol>
<li class="">Open the <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. In the "Get started" section, click the "View all" link to open the application frameworks list. Alternatively, you can navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/applications" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console &gt; Applications<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, and click the "Create application" button.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/get-started.png" alt="Get started">
</li>
<li class="">In the opening modal, click the "<!-- -->Traditional web<!-- -->" section or filter all the available "<!-- -->Traditional web<!-- -->" frameworks using the quick filter checkboxes on the left. Click the "<!-- -->Laravel<!-- -->" framework card to start creating your application.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/framework-list.png" alt="Frameworks">
</li>
<li class="">Enter the application name, e.g., "Bookstore," and click "Create application".</li>
</ol>
<p>🎉 Ta-da! You just created your first application in Logto. You'll see a congrats page which includes a detailed integration guide. Follow the guide to see what the experience will be in your application.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="integrate-with-logto">Integrate Laravel with Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#integrate-with-logto" class="hash-link" aria-label="Lien direct vers Integrate Laravel with Logto" title="Lien direct vers Integrate Laravel with Logto" translate="no">​</a></h2>
<p>This guide will show you how to integrate Logto into your PHP web application.</p>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><ul>
<li class="">The <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/php/blob/master/samples/index.php" target="_blank" rel="noopener noreferrer" class="link_hf7f">example<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> uses Laravel, but the concepts are the same for other frameworks.</li>
</ul></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="installation">Installation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#installation" class="hash-link" aria-label="Lien direct vers Installation" title="Lien direct vers Installation" translate="no">​</a></h3>
<div class="language-bash codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-bash codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">composer</span><span class="token plain"> require logto/sdk</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="init-logtoclient">Init LogtoClient<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#init-logtoclient" class="hash-link" aria-label="Lien direct vers Init LogtoClient" title="Lien direct vers Init LogtoClient" translate="no">​</a></h3>
<p>First, create a Logto config:</p>
<div class="language-php codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">index.php</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-php codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">use</span><span class="token plain"> </span><span class="token package">Logto</span><span class="token package punctuation" style="color:rgb(248, 248, 242)">\</span><span class="token package">Sdk</span><span class="token package punctuation" style="color:rgb(248, 248, 242)">\</span><span class="token package">LogtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">use</span><span class="token plain"> </span><span class="token package">Logto</span><span class="token package punctuation" style="color:rgb(248, 248, 242)">\</span><span class="token package">Sdk</span><span class="token package punctuation" style="color:rgb(248, 248, 242)">\</span><span class="token package">LogtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$client</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">new</span><span class="token plain"> </span><span class="token class-name">LogtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">new</span><span class="token plain"> </span><span class="token class-name">LogtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token argument-name">endpoint</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token string double-quoted-string" style="color:rgb(255, 121, 198)">"https://you-logto-endpoint.app"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token argument-name">appId</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token string double-quoted-string" style="color:rgb(255, 121, 198)">"replace-with-your-app-id"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token argument-name">appSecret</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token string double-quoted-string" style="color:rgb(255, 121, 198)">"replace-with-your-app-secret"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>You can find and copy "App Secret" from application details page in Admin Console:</p><img alt="App Secret" src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/app-secret.png" width="586px"></div></div></div>
<p>By default, the SDK uses the built-in PHP session to store the Logto data. If you want to use other storage, you can pass a custom storage object as the second parameter:</p>
<div class="language-php codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">index.php</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-php codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$client</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">new</span><span class="token plain"> </span><span class="token class-name">LogtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">new</span><span class="token plain"> </span><span class="token class-name">LogtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">new</span><span class="token plain"> </span><span class="token class-name">YourCustomStorage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<p>See <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/php/blob/master/docs/api/classes/Logto/Sdk/Storage/Storage.md" target="_blank" rel="noopener noreferrer" class="link_hf7f">Storage<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> for more details.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uris">Configure redirect URIs<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#configure-redirect-uris" class="hash-link" aria-label="Lien direct vers Configure redirect URIs" title="Lien direct vers Configure redirect URIs" translate="no">​</a></h3>
<p>Before we dive into the details, here's a quick overview of the end-user experience. The sign-in process can be simplified as follows:</p>
<!-- -->
<ol>
<li class="">Your app invokes the sign-in method.</li>
<li class="">The user is redirected to the Logto sign-in page. For native apps, the system browser is opened.</li>
<li class="">The user signs in and is redirected back to your app (configured as the redirect URI).</li>
</ol>
<details class="details_Qsrn details_Jw1Q" data-collapsed="true"><summary><h3 class="anchor anchorTargetStickyNavbar_iJWz" id="regarding-redirect-based-sign-in">Regarding redirect-based sign-in<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Lien direct vers Regarding redirect-based sign-in" title="Lien direct vers Regarding redirect-based sign-in" translate="no">​</a></h3></summary><div><div class="collapsibleContent_brv9"><ol>
<li class="">This authentication process follows the <span class="linkWrapper_B4Bt"><a href="https://openid.net/specs/openid-connect-core-1_0.html" target="_blank" rel="noopener noreferrer" class="link_hf7f">OpenID Connect (OIDC)<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> protocol, and Logto enforces strict security measures to protect user sign-in.</li>
<li class="">If you have multiple apps, you can use the same identity provider (Logto). Once the user signs in to one app, Logto will automatically complete the sign-in process when the user accesses another app.</li>
</ol><p>To learn more about the rationale and benefits of redirect-based sign-in, see <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/concepts/sign-in-experience" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Logto sign-in experience explained<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p></div></div></details>
<hr>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>In the following code snippets, we assume your app is running on <code>http://localhost:3000/</code>.</p></div></div></div>
<!-- -->
<!-- -->
<h4 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uris">Configure redirect URIs<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#configure-redirect-uris" class="hash-link" aria-label="Lien direct vers Configure redirect URIs" title="Lien direct vers Configure redirect URIs" translate="no">​</a></h4>
<p>Switch to the application details page of Logto Console. Add a redirect URI <code>http://localhost:3000/callback</code>.</p>
<img alt="Redirect URI in Logto Console" src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/web-redirect-uri.png" width="600px">
<p>Just like signing in, users should be redirected to Logto for signing out of the shared session. Once finished, it would be great to redirect the user back to your website. For example, add <code>http://localhost:3000/</code> as the post sign-out redirect URI section.</p>
<p>Then click "Save" to save the changes.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="handle-callback">Handle callback<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#handle-callback" class="hash-link" aria-label="Lien direct vers Handle callback" title="Lien direct vers Handle callback" translate="no">​</a></h3>
<p>After the user signs in, Logto will redirect the user to the callback URL you set in the Logto Console. In this example, we use <code>/callback</code> as the callback URL:</p>
<div class="language-php codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-php codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token class-name static-context">Route</span><span class="token operator">::</span><span class="token function" style="color:rgb(80, 250, 123)">get</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string single-quoted-string" style="color:rgb(255, 121, 198)">'/callback'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">function</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">try</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$client</span><span class="token operator">-&gt;</span><span class="token function" style="color:rgb(80, 250, 123)">handleSignInCallback</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">// Handle a lot of stuff</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">catch</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token class-name class-name-fully-qualified punctuation" style="color:rgb(248, 248, 242)">\</span><span class="token class-name class-name-fully-qualified">Throwable</span><span class="token plain"> </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$exception</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$exception</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">// Change this to your error handling logic</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">redirect</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string single-quoted-string" style="color:rgb(255, 121, 198)">'/'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">// Redirect the user to the home page after a successful sign-in</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-sign-in-route">Implement sign-in route<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#implement-sign-in-route" class="hash-link" aria-label="Lien direct vers Implement sign-in route" title="Lien direct vers Implement sign-in route" translate="no">​</a></h3>
<p>In your web application, add a route to properly handle the sign-in request from users. For example:</p>
<div class="language-php codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-php codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token class-name static-context">Route</span><span class="token operator">::</span><span class="token function" style="color:rgb(80, 250, 123)">get</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string single-quoted-string" style="color:rgb(255, 121, 198)">'/sign-in'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">function</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">redirect</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$client</span><span class="token operator">-&gt;</span><span class="token function" style="color:rgb(80, 250, 123)">signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string single-quoted-string" style="color:rgb(255, 121, 198)">'http://localhost:3000/callback'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<p>Replace <code>http://localhost:3000/callback</code> with the callback URL you set in your Logto Console for this application.</p>
<p>If you want to show the sign-up page on the first screen, you can set <code>interactionMode</code> to <code>signUp</code>:</p>
<div class="language-php codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-php codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token class-name static-context">Route</span><span class="token operator">::</span><span class="token function" style="color:rgb(80, 250, 123)">get</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string single-quoted-string" style="color:rgb(255, 121, 198)">'/sign-in'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">function</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">redirect</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$client</span><span class="token operator">-&gt;</span><span class="token function" style="color:rgb(80, 250, 123)">signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string single-quoted-string" style="color:rgb(255, 121, 198)">'http://localhost:3000/callback'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token class-name static-context">InteractionMode</span><span class="token operator">::</span><span class="token constant" style="color:rgb(189, 147, 249)">signUp</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<p>Now, whenever your users visit <code>http://localhost:3000/<!-- -->sign-in</code>, it will start a new sign-in attempt and redirect the user to the Logto sign-in page.</p>
<blockquote>
<p><strong>Note</strong>
Creating a sign-in route isn't the only way to start a sign-in attempt. You can always use the <code>signIn</code> method to get the sign-in URL and redirect the user to it.</p>
</blockquote>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-sign-out-route">Implement sign-out route<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#implement-sign-out-route" class="hash-link" aria-label="Lien direct vers Implement sign-out route" title="Lien direct vers Implement sign-out route" translate="no">​</a></h3>
<p>After the user makes a signing-out request, Logto will clear all user authentication information in the session.</p>
<p>To clean up the PHP session and Logto session, a sign-out route can be implemented as follows:</p>
<div class="language-php codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-php codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token class-name static-context">Route</span><span class="token operator">::</span><span class="token function" style="color:rgb(80, 250, 123)">get</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string single-quoted-string" style="color:rgb(255, 121, 198)">'/sign-out'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">function</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">redirect</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">// Redirect the user to the home page after a successful sign-out</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$client</span><span class="token operator">-&gt;</span><span class="token function" style="color:rgb(80, 250, 123)">signOut</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string single-quoted-string" style="color:rgb(255, 121, 198)">'http://localhost:3000/'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<p><code>postLogoutRedirectUri</code> is optional, and if not provided, the user will be redirected to a Logto default page after a successful sign-out (without redirecting back to your application).</p>
<blockquote>
<p><strong>Note</strong>
The name <code>postLogoutRedirectUri</code> is from the <span class="linkWrapper_B4Bt"><a href="https://openid.net/specs/openid-connect-rpinitiated-1_0.html" target="_blank" rel="noopener noreferrer" class="link_hf7f">OpenID Connect RP-Initiated Logout<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> specification. Although Logto uses "sign-out" instead of "logout", the concept is the same.</p>
</blockquote>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="handle-authentication-status">Handle authentication status<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#handle-authentication-status" class="hash-link" aria-label="Lien direct vers Handle authentication status" title="Lien direct vers Handle authentication status" translate="no">​</a></h3>
<p>In Logto SDK, we can use <code>$client-&gt;isAuthenticated()</code> to check the authentication status, if the user is signed in, the value will be true, otherwise, the value will be false.</p>
<p>We also need to implement a home page for demonstration:</p>
<ul>
<li class="">If the user is not signed in, show a sign-in button;</li>
<li class="">If the user is signed in, show a sign-out button.</li>
</ul>
<div class="language-php codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-php codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token class-name static-context">Route</span><span class="token operator">::</span><span class="token function" style="color:rgb(80, 250, 123)">get</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string single-quoted-string" style="color:rgb(255, 121, 198)">'/'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">function</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$client</span><span class="token operator">-&gt;</span><span class="token function" style="color:rgb(80, 250, 123)">isAuthenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">===</span><span class="token plain"> </span><span class="token constant boolean" style="color:rgb(189, 147, 249)">false</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token string double-quoted-string" style="color:rgb(255, 121, 198)">"Not authenticated &lt;a href='/sign-in'&gt;Sign in&lt;/a&gt;"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token string double-quoted-string" style="color:rgb(255, 121, 198)">"&lt;a href='/sign-out'&gt;Sign out&lt;/a&gt;"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="checkpoint-test-your-application">Checkpoint: Test your application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Lien direct vers Checkpoint: Test your application" title="Lien direct vers Checkpoint: Test your application" translate="no">​</a></h3>
<p>Now, you can test your application:</p>
<ol>
<li class="">Run your application, you will see the sign-in button.</li>
<li class="">Click the sign-in button, the SDK will init the sign-in process and redirect you to the Logto sign-in page.</li>
<li class="">After you signed in, you will be redirected back to your application and see the sign-out button.</li>
<li class="">Click the sign-out button to clear token storage and sign out.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="add-connector-connector">Add Okta enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#add-connector-connector" class="hash-link" aria-label="Lien direct vers Add Okta enterprise SSO connector" title="Lien direct vers Add Okta enterprise SSO connector" translate="no">​</a></h2>
<p>To simplify access management and gain enterprise-level safeguards for your big clients, connect with <!-- -->Laravel<!-- --> as a federated identity provider. The Logto enterprise SSO connector helps you establish this connection in minutes by allowing several parameter inputs.</p>
<p>To add an enterprise SSO connector, simply follow these steps:</p>
<ol>
<li class="">Navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto console &gt; Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-page.png" alt="SSO page">
<ol start="2">
<li class="">Click "Add enterprise connector" button and choose your SSO provider type. Choose from prebuilt connectors for Microsoft Entra ID (Azure AD), Google Workspace, and Okta, or create a custom SSO connection using the standard OpenID Connect (OIDC) or SAML protocol.</li>
<li class="">Provide a unique name (e.g., SSO sign-in for Acme Company).</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/select-your-sso-provider.png" alt="Select your SSO provider">
<ol start="4">
<li class="">Configure the connection with your IdP in the "Connection" tab. Check the guides above for each connector types.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-connection-settings.png" alt="SSO connection">
<ol start="5">
<li class="">Customize the SSO experience and enterprise’s <strong>email domain</strong> in the "Experience" tab. Users sign in with the SSO-enabled email domain will be redirected to SSO authentication.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-experience-settings.png" alt="SSO experience">
<ol start="6">
<li class="">Save changes.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="set-up-connectorconfigname">Set up OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Lien direct vers Set up OIDC application on Okta admin portal" title="Lien direct vers Set up OIDC application on Okta admin portal" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-okta-admin-portal">Step 1: Create an OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#step-1-create-an-oidc-application-on-okta-admin-portal" class="hash-link" aria-label="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" title="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" translate="no">​</a></h3>
<ul>
<li class="">Visit the Okta admin portal and sign in as an administrator.</li>
<li class="">Navigate to the <code>Applications</code>/<code>Applications</code> page using the side menu.</li>
<li class="">Click the <code>Create App Integration</code> button to create a new OIDC application.</li>
<li class="">Select the <code>OIDC - OpenID Connect</code> option as the <code>Sign-in method</code>.</li>
<li class="">Select the <code>Web Application</code> option as the <code>Application type</code>.</li>
</ul>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_create_application.webp" alt="Okta create application">
<p>Click the <code>Next</code> button to continue.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-the-application-settings">Step 2: Configure the application settings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Lien direct vers Step 2: Configure the application settings" title="Lien direct vers Step 2: Configure the application settings" translate="no">​</a></h3>
<ol>
<li class="">Provide an <code>App integration name</code>. It will be used as the identifier of your OIDC application.</li>
<li class="">Add a new <code>Sign-in redirect URIs</code> using the Logto SSO connector's callback URL.</li>
</ol>
<p>This is the URI that the Okta will redirect the user's browser after successful authentication. After a user successfully authenticates with the IdP, the IdP redirects the user's browser back to this designated URI along with an authorization code. Logto will complete the authentication process based on the authorization code received from this URI.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_application_settings.webp" alt="Okta application settings">
<ol start="3">
<li class="">Assign users to the application.</li>
</ol>
<p>Based on the <code>Assignments</code> settings, you can choose to assign the application to all users or specific users/groups.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_assign_users.webp" alt="Okta assign users">
<p>Click the <code>Save</code> button to save the application settings.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-set-up-logto-connector-with-the-client-credentials">Step 3: Set up Logto connector with the client credentials<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#step-3-set-up-logto-connector-with-the-client-credentials" class="hash-link" aria-label="Lien direct vers Step 3: Set up Logto connector with the client credentials" title="Lien direct vers Step 3: Set up Logto connector with the client credentials" translate="no">​</a></h3>
<p>After successfully creating the OIDC application, you will be redirected to the application details page.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_client_credentials.webp" alt="Okta client credentials">
<p>Copy the <code>client ID</code> and <code>client secret</code> and fill in the corresponding fields on the Logto SSO connector <code>Connection</code> tab.</p>
<p>Use your Okta domain as the <code>issuer</code>. Example: <code>https://dev-12345678.okta.com</code>. Once you have filled in all the fields, click the <code>Save</code> button to save the connector settings.</p>
<p>If the <code>issuer</code> link you provided is valid, you will see a parsed full list of Okta IdP configurations shown below the <code>issuer</code> field.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-additional-scopes-optional">Step 4: Additional scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Lien direct vers Step 4: Additional scopes (Optional)" title="Lien direct vers Step 4: Additional scopes (Optional)" translate="no">​</a></h3>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their Okta accounts. Requesting additional Okta permissions requires configuration on both sides:</p>
<p><strong>In Okta admin console:</strong></p>
<ol>
<li class="">Navigate to <strong>Applications &gt; Applications</strong> and select your OIDC application.</li>
<li class="">Go to the <strong>Assignments</strong> tab to ensure your app has access to the required users and groups.</li>
<li class="">For custom scopes, navigate to <strong>Security &gt; API &gt; Authorization Servers</strong> and select your authorization server.</li>
<li class="">Add custom scopes if needed:<!-- -->
<ul>
<li class="">Click <strong>Scopes</strong> and then <strong>Add Scope</strong></li>
<li class="">Define scope names like <code>okta.users.read</code> or <code>okta.groups.read</code> for accessing Okta APIs</li>
<li class="">Configure consent requirements for each scope</li>
</ul>
</li>
</ol>
<p>For a complete list of available scopes and their descriptions, please refer to the <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/api/openapi/okta-oauth/guides/overview/#scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta OIDC documentation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>In Logto Okta connector:</strong></p>
<ol>
<li class="">Logto automatically includes <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information. You can leave the <code>Scopes</code> field blank if you only need basic user information.</li>
<li class="">Add <code>offline_access</code> to the <code>Scopes</code> field if you plan to store tokens for persistent API access. This scope enables refresh tokens for long-lived API access.</li>
<li class="">Add additional scopes (separated by spaces) in the <code>Scopes</code> field to request more data from Okta. For example: <code>okta.users.read okta.groups.read</code></li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>If your app requests these scopes to access Okta APIs and perform actions, make sure to enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. See the next section for details.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-store-tokens-to-access-okta-apis-optional">Step 5: Store tokens to access Okta APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#step-5-store-tokens-to-access-okta-apis-optional" class="hash-link" aria-label="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" title="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" translate="no">​</a></h3>
<p>If you want to access <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/guides/request-user-consent/main/#enable-consent-for-scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta scopes<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and perform actions with user authorization, Logto needs to get specific scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in your Okta developer console API permissions configuration and Logto Okta connector.</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. Logto will securely store Okta access and refresh tokens in the Secret Vault.</li>
<li class="">To ensure refresh tokens are returned, add the <code>offline_access</code> scope to your Okta application permissions and include it in your Logto Okta connector scopes. This scope allows your application to maintain access to resources for extended periods.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-6-set-email-domains-and-enable-the-sso-connector">Step 6: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#step-6-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Lien direct vers Step 6: Set email domains and enable the SSO connector" title="Lien direct vers Step 6: Set email domains and enable the SSO connector" translate="no">​</a></h3>
<p>Provide the <code>email domains</code> of your organization on Logto's connector <code>SSO experience</code> tab. This will enable the SSO connector as an authentication method for those users.</p>
<p>Users with email addresses in the specified domains will be redirected to use your SSO connector as their only authentication method.</p>
<p>For more details about creating OIDC integration with Okta, please check <span class="linkWrapper_B4Bt"><a href="https://help.okta.com/oie/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm" target="_blank" rel="noopener noreferrer" class="link_hf7f">Create OIDC App Integrations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#save-your-configuration" class="hash-link" aria-label="Lien direct vers Save your configuration" title="Lien direct vers Save your configuration" translate="no">​</a></h3>
<p>Double check you have filled out necessary values in the Logto connector configuration area. Click
"Save and Done" (or "Save changes") and the <!-- -->Okta enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable Okta enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" title="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" translate="no">​</a></h2>
<p>You don’t need to configure enterprise connectors individually, Logto simplifies SSO integration into your applications with just one click.</p>
<ol>
<li class="">Navigate to: <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/sign-in-experience/sign-up-and-sign-in" target="_blank" rel="noopener noreferrer" class="link_hf7f">Console &gt; Sign-in &amp; account &gt; Sign-up and sign-in<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">Enable the "Enterprise SSO" toggle.</li>
<li class="">Save changes.</li>
</ol>
<p>Once enabled, a "Single Sign-On" button will appear on your sign-in page. Enterprise users with SSO-enabled email domains can access your services using their enterprise identity providers (IdPs).</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-email-auto-navigation.png" alt="Auto detect SSO sign-in via email domain">
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-link-button-navigation.png" alt="Navigate to SSO sign-in via manually click link button">
<p>To learn more about the SSO user experience, including SP-initiated SSO and IdP-initiated SSO, refer to User flows: <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="testing-and-validation">Testing and Validation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#testing-and-validation" class="hash-link" aria-label="Lien direct vers Testing and Validation" title="Lien direct vers Testing and Validation" translate="no">​</a></h2>
<p>Return to your <!-- -->PHP<!-- --> app. You should now be able to sign in with <!-- -->Okta enterprise SSO<!-- -->. Enjoy!</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="further-readings">Further readings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-php-and-logto#further-readings" class="hash-link" aria-label="Lien direct vers Further readings" title="Lien direct vers Further readings" translate="no">​</a></h2>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows" target="_blank" rel="noopener noreferrer" class="link_hf7f">End-user flows<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Logto provides a out-of-the-box authentication flows including MFA and enterprise SSO, along with powerful APIs for flexible implementation of account settings, security verification, and multi-tenant experience.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/authorization" target="_blank" rel="noopener noreferrer" class="link_hf7f">Authorization<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Authorization defines the actions a user can do or resources they can access after being authenticated. Explore how to protect your API for native and single-page applications and implement Role-based Access Control (RBAC).</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/organizations" target="_blank" rel="noopener noreferrer" class="link_hf7f">Organizations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Particularly effective in multi-tenant SaaS and B2B apps, the organization feature enable tenant creation, member management, organization-level RBAC, and just-in-time-provisioning.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://blog.logto.io/ciam-101-intro-authn-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Customer IAM series<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> Our serial blog posts about Customer (or Consumer) Identity and Access Management, from 101 to advanced topics and beyond.</p>]]></content:encoded>
            <category>SSO providers</category>
            <category>okta-enterprise-sso</category>
            <category>php</category>
            <category>php</category>
            <category>SAML authentication</category>
            <category>enterprise login</category>
            <category>SSO login</category>
        </item>
        <item>
            <title><![CDATA[How to build Okta enterprise SSO with Python]]></title>
            <link>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-python-and-logto</link>
            <guid>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-python-and-logto</guid>
            <pubDate>Fri, 17 Apr 2026 02:54:06 GMT</pubDate>
            <description><![CDATA[{/*]]></description>
            <content:encoded><![CDATA[
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">For our new friends<!-- -->:</span><br><br><p><span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> is an Auth0 alternative designed for modern apps and SaaS products. It
offers both <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/logto" target="_blank" rel="noopener noreferrer" class="link_hf7f">Open-source<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>
services to help you quickly launch your identity and management (IAM) system. Enjoy authentication,
authorization, and multi-tenant management <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">all in one<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.<!-- --> </p><p>We recommend starting with a free development tenant on <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. This allows you to explore all the features easily.</p></div></div></div>
<p>In this article, we will go through the steps to quickly build the <!-- -->Okta enterprise SSO<!-- --> sign-in
experience (user authentication) with <a href="https://www.python.org/" target="_blank" rel="noopener">Python</a> and <span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>Prerequisites</strong></p>
<ul>
<li class="">A running Logto instance. Check out the <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">introduction page<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to get started.</li>
<li class="">Basic knowledge of <a href="https://www.python.org/" target="_blank" rel="noopener">Python</a>.</li>
<li class="">A usable <!-- -->Okta enterprise SSO<!-- --> account.</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="create-an-application-in-logto">Create an application in Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-python-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Lien direct vers Create an application in Logto" title="Lien direct vers Create an application in Logto" translate="no">​</a></h2>
<p>Logto is based on OpenID Connect (OIDC) authentication and OAuth 2.0 authorization. It supports federated identity management across multiple applications, commonly called Single Sign-On (SSO).</p>
<p>To create your <!-- -->Traditional web<!-- --> application, simply follow these steps:</p>
<ol>
<li class="">Open the <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. In the "Get started" section, click the "View all" link to open the application frameworks list. Alternatively, you can navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/applications" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console &gt; Applications<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, and click the "Create application" button.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/get-started.png" alt="Get started">
</li>
<li class="">In the opening modal, click the "<!-- -->Traditional web<!-- -->" section or filter all the available "<!-- -->Traditional web<!-- -->" frameworks using the quick filter checkboxes on the left. Click the "<!-- -->Flask<!-- -->" framework card to start creating your application.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/framework-list.png" alt="Frameworks">
</li>
<li class="">Enter the application name, e.g., "Bookstore," and click "Create application".</li>
</ol>
<p>🎉 Ta-da! You just created your first application in Logto. You'll see a congrats page which includes a detailed integration guide. Follow the guide to see what the experience will be in your application.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="integrate-with-logto">Integrate Flask with Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-python-and-logto#integrate-with-logto" class="hash-link" aria-label="Lien direct vers Integrate Flask with Logto" title="Lien direct vers Integrate Flask with Logto" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><ul>
<li class="">The example uses <span class="linkWrapper_B4Bt"><a href="https://flask.palletsprojects.com/en/2.3.x/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Flask<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, but the concepts are the same for other frameworks.</li>
<li class="">The Python sample project is available on our <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/python/tree/master/samples" target="_blank" rel="noopener noreferrer" class="link_hf7f">Python SDK repo<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">Logto SDK leverages coroutines, remember to use <code>await</code> when calling async functions.</li>
</ul></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="installation">Installation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-python-and-logto#installation" class="hash-link" aria-label="Lien direct vers Installation" title="Lien direct vers Installation" translate="no">​</a></h3>
<p>Execute in the project root directory:</p>
<div class="language-bash codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-bash codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">pip </span><span class="token function" style="color:rgb(80, 250, 123)">install</span><span class="token plain"> logto </span><span class="token comment" style="color:rgb(98, 114, 164)"># or `poetry add logto` or whatever you use</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="init-logtoclient">Init LogtoClient<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-python-and-logto#init-logtoclient" class="hash-link" aria-label="Lien direct vers Init LogtoClient" title="Lien direct vers Init LogtoClient" translate="no">​</a></h3>
<p>First, create a Logto config:</p>
<div class="language-python codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">client.py</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-python codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> logto </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> LogtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> LogtoConfig</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">client </span><span class="token operator">=</span><span class="token plain"> LogtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    LogtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        endpoint</span><span class="token operator">=</span><span class="token string" style="color:rgb(255, 121, 198)">"https://you-logto-endpoint.app"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)"># Replace with your Logto endpoint</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        appId</span><span class="token operator">=</span><span class="token string" style="color:rgb(255, 121, 198)">"replace-with-your-app-id"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        appSecret</span><span class="token operator">=</span><span class="token string" style="color:rgb(255, 121, 198)">"replace-with-your-app-secret"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><br></span></code></pre></div></div>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>You can find and copy "App Secret" from application details page in Admin Console:</p><img alt="App Secret" src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/app-secret.png" width="586px"></div></div></div>
<p>Also replace the default memory storage with a persistent storage, for example:</p>
<div class="language-python codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">client.py</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-python codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> logto </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> LogtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> LogtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> Storage</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> flask </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> session</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> typing </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> Union</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> </span><span class="token class-name">SessionStorage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">Storage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">def</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">get</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">self</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> key</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(189, 147, 249)">str</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token plain"> Union</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token builtin" style="color:rgb(189, 147, 249)">str</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token boolean">None</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> session</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">get</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">key</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token boolean">None</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">def</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">set</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">self</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> key</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(189, 147, 249)">str</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> value</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> Union</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token builtin" style="color:rgb(189, 147, 249)">str</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token boolean">None</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token plain"> </span><span class="token boolean">None</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        session</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">key</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> value</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">def</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">delete</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">self</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> key</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(189, 147, 249)">str</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token plain"> </span><span class="token boolean">None</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        session</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">pop</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">key</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token boolean">None</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">client </span><span class="token operator">=</span><span class="token plain"> LogtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    LogtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    storage</span><span class="token operator">=</span><span class="token plain">SessionStorage</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><br></span></code></pre></div></div>
<p>See <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/python/blob/master/logto/Storage.py" target="_blank" rel="noopener noreferrer" class="link_hf7f">Storage<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> for more details.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-sign-in-and-sign-out">Implement sign-in and sign-out<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-python-and-logto#implement-sign-in-and-sign-out" class="hash-link" aria-label="Lien direct vers Implement sign-in and sign-out" title="Lien direct vers Implement sign-in and sign-out" translate="no">​</a></h3>
<p>In your web application, add a route to properly handle the sign-in request from users. Let's use <code>/sign-in</code> as an example:</p>
<div class="language-python codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">flask.py</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-python codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token decorator annotation punctuation" style="color:rgb(248, 248, 242)">@app</span><span class="token decorator annotation punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token decorator annotation punctuation" style="color:rgb(248, 248, 242)">route</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"/sign-in"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">def</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">sign_in</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)"># Get the sign-in URL and redirect the user to it</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> redirect</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> client</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      redirectUri</span><span class="token operator">=</span><span class="token string" style="color:rgb(255, 121, 198)">"http://localhost:3000/callback"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><br></span></code></pre></div></div>
<p>Replace <code>http://localhost:3000/callback</code> with the callback URL you set in your Logto Console for this application.</p>
<p>If you want to show the sign-up page on the first screen, you can set <code>interactionMode</code> to <code>signUp</code>:</p>
<div class="language-python codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">flask.py</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-python codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token decorator annotation punctuation" style="color:rgb(248, 248, 242)">@app</span><span class="token decorator annotation punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token decorator annotation punctuation" style="color:rgb(248, 248, 242)">route</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"/sign-in"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">def</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">sign_in</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> redirect</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> client</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      redirectUri</span><span class="token operator">=</span><span class="token string" style="color:rgb(255, 121, 198)">"http://localhost:3000/callback"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      interactionMode</span><span class="token operator">=</span><span class="token string" style="color:rgb(255, 121, 198)">"signUp"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># Show the sign-up page on the first screen</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><br></span></code></pre></div></div>
<p>Now, whenever your users visit <code>http://localhost:3000/<!-- -->sign-in</code>, it will start a new sign-in attempt and redirect the user to the Logto sign-in page.</p>
<blockquote>
<p><strong>Note</strong>
Creating a sign-in route isn't the only way to start a sign-in attempt. You can always use the <code>signIn</code> method to get the sign-in URL and redirect the user to it.</p>
</blockquote>
<p>After the user makes a signing-out request, Logto will clear all user authentication information in the session.</p>
<p>To clean up the Python session and Logto session, a sign-out route can be implemented as follows:</p>
<div class="language-python codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">flask.py</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-python codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token decorator annotation punctuation" style="color:rgb(248, 248, 242)">@app</span><span class="token decorator annotation punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token decorator annotation punctuation" style="color:rgb(248, 248, 242)">route</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"/sign-out"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">def</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">sign_out</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> redirect</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      </span><span class="token comment" style="color:rgb(98, 114, 164)"># Redirect the user to the home page after a successful sign-out</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> client</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">signOut</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">postLogoutRedirectUri</span><span class="token operator">=</span><span class="token string" style="color:rgb(255, 121, 198)">"http://localhost:3000/"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="handle-authentication-status">Handle authentication status<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-python-and-logto#handle-authentication-status" class="hash-link" aria-label="Lien direct vers Handle authentication status" title="Lien direct vers Handle authentication status" translate="no">​</a></h3>
<p>In Logto SDK, we can use <code>client.isAuthenticated()</code> to check the authentication status, if the user is signed in, the value will be true, otherwise, the value will be false.</p>
<p>Here we also implement a simple home page for demonstration:</p>
<ul>
<li class="">If the user is not signed in, show a sign-in button;</li>
<li class="">If the user is signed in, show a sign-out button.</li>
</ul>
<div class="language-python codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-python codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token decorator annotation punctuation" style="color:rgb(248, 248, 242)">@app</span><span class="token decorator annotation punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token decorator annotation punctuation" style="color:rgb(248, 248, 242)">route</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">"/"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">def</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">home</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> client</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">isAuthenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">is</span><span class="token plain"> </span><span class="token boolean">False</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"Not authenticated &lt;a href='/sign-in'&gt;Sign in&lt;/a&gt;"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">"Authenticated &lt;a href='/sign-out'&gt;Sign out&lt;/a&gt;"</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="checkpoint-test-your-application">Checkpoint: Test your application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-python-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Lien direct vers Checkpoint: Test your application" title="Lien direct vers Checkpoint: Test your application" translate="no">​</a></h3>
<p>Now, you can test your application:</p>
<ol>
<li class="">Run your application, you will see the sign-in button.</li>
<li class="">Click the sign-in button, the SDK will init the sign-in process and redirect you to the Logto sign-in page.</li>
<li class="">After you signed in, you will be redirected back to your application and see the sign-out button.</li>
<li class="">Click the sign-out button to clear token storage and sign out.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="add-connector-connector">Add Okta enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-python-and-logto#add-connector-connector" class="hash-link" aria-label="Lien direct vers Add Okta enterprise SSO connector" title="Lien direct vers Add Okta enterprise SSO connector" translate="no">​</a></h2>
<p>To simplify access management and gain enterprise-level safeguards for your big clients, connect with <!-- -->Flask<!-- --> as a federated identity provider. The Logto enterprise SSO connector helps you establish this connection in minutes by allowing several parameter inputs.</p>
<p>To add an enterprise SSO connector, simply follow these steps:</p>
<ol>
<li class="">Navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto console &gt; Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-page.png" alt="SSO page">
<ol start="2">
<li class="">Click "Add enterprise connector" button and choose your SSO provider type. Choose from prebuilt connectors for Microsoft Entra ID (Azure AD), Google Workspace, and Okta, or create a custom SSO connection using the standard OpenID Connect (OIDC) or SAML protocol.</li>
<li class="">Provide a unique name (e.g., SSO sign-in for Acme Company).</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/select-your-sso-provider.png" alt="Select your SSO provider">
<ol start="4">
<li class="">Configure the connection with your IdP in the "Connection" tab. Check the guides above for each connector types.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-connection-settings.png" alt="SSO connection">
<ol start="5">
<li class="">Customize the SSO experience and enterprise’s <strong>email domain</strong> in the "Experience" tab. Users sign in with the SSO-enabled email domain will be redirected to SSO authentication.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-experience-settings.png" alt="SSO experience">
<ol start="6">
<li class="">Save changes.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="set-up-connectorconfigname">Set up OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-python-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Lien direct vers Set up OIDC application on Okta admin portal" title="Lien direct vers Set up OIDC application on Okta admin portal" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-okta-admin-portal">Step 1: Create an OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-python-and-logto#step-1-create-an-oidc-application-on-okta-admin-portal" class="hash-link" aria-label="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" title="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" translate="no">​</a></h3>
<ul>
<li class="">Visit the Okta admin portal and sign in as an administrator.</li>
<li class="">Navigate to the <code>Applications</code>/<code>Applications</code> page using the side menu.</li>
<li class="">Click the <code>Create App Integration</code> button to create a new OIDC application.</li>
<li class="">Select the <code>OIDC - OpenID Connect</code> option as the <code>Sign-in method</code>.</li>
<li class="">Select the <code>Web Application</code> option as the <code>Application type</code>.</li>
</ul>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_create_application.webp" alt="Okta create application">
<p>Click the <code>Next</code> button to continue.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-the-application-settings">Step 2: Configure the application settings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-python-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Lien direct vers Step 2: Configure the application settings" title="Lien direct vers Step 2: Configure the application settings" translate="no">​</a></h3>
<ol>
<li class="">Provide an <code>App integration name</code>. It will be used as the identifier of your OIDC application.</li>
<li class="">Add a new <code>Sign-in redirect URIs</code> using the Logto SSO connector's callback URL.</li>
</ol>
<p>This is the URI that the Okta will redirect the user's browser after successful authentication. After a user successfully authenticates with the IdP, the IdP redirects the user's browser back to this designated URI along with an authorization code. Logto will complete the authentication process based on the authorization code received from this URI.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_application_settings.webp" alt="Okta application settings">
<ol start="3">
<li class="">Assign users to the application.</li>
</ol>
<p>Based on the <code>Assignments</code> settings, you can choose to assign the application to all users or specific users/groups.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_assign_users.webp" alt="Okta assign users">
<p>Click the <code>Save</code> button to save the application settings.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-set-up-logto-connector-with-the-client-credentials">Step 3: Set up Logto connector with the client credentials<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-python-and-logto#step-3-set-up-logto-connector-with-the-client-credentials" class="hash-link" aria-label="Lien direct vers Step 3: Set up Logto connector with the client credentials" title="Lien direct vers Step 3: Set up Logto connector with the client credentials" translate="no">​</a></h3>
<p>After successfully creating the OIDC application, you will be redirected to the application details page.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_client_credentials.webp" alt="Okta client credentials">
<p>Copy the <code>client ID</code> and <code>client secret</code> and fill in the corresponding fields on the Logto SSO connector <code>Connection</code> tab.</p>
<p>Use your Okta domain as the <code>issuer</code>. Example: <code>https://dev-12345678.okta.com</code>. Once you have filled in all the fields, click the <code>Save</code> button to save the connector settings.</p>
<p>If the <code>issuer</code> link you provided is valid, you will see a parsed full list of Okta IdP configurations shown below the <code>issuer</code> field.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-additional-scopes-optional">Step 4: Additional scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-python-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Lien direct vers Step 4: Additional scopes (Optional)" title="Lien direct vers Step 4: Additional scopes (Optional)" translate="no">​</a></h3>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their Okta accounts. Requesting additional Okta permissions requires configuration on both sides:</p>
<p><strong>In Okta admin console:</strong></p>
<ol>
<li class="">Navigate to <strong>Applications &gt; Applications</strong> and select your OIDC application.</li>
<li class="">Go to the <strong>Assignments</strong> tab to ensure your app has access to the required users and groups.</li>
<li class="">For custom scopes, navigate to <strong>Security &gt; API &gt; Authorization Servers</strong> and select your authorization server.</li>
<li class="">Add custom scopes if needed:<!-- -->
<ul>
<li class="">Click <strong>Scopes</strong> and then <strong>Add Scope</strong></li>
<li class="">Define scope names like <code>okta.users.read</code> or <code>okta.groups.read</code> for accessing Okta APIs</li>
<li class="">Configure consent requirements for each scope</li>
</ul>
</li>
</ol>
<p>For a complete list of available scopes and their descriptions, please refer to the <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/api/openapi/okta-oauth/guides/overview/#scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta OIDC documentation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>In Logto Okta connector:</strong></p>
<ol>
<li class="">Logto automatically includes <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information. You can leave the <code>Scopes</code> field blank if you only need basic user information.</li>
<li class="">Add <code>offline_access</code> to the <code>Scopes</code> field if you plan to store tokens for persistent API access. This scope enables refresh tokens for long-lived API access.</li>
<li class="">Add additional scopes (separated by spaces) in the <code>Scopes</code> field to request more data from Okta. For example: <code>okta.users.read okta.groups.read</code></li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>If your app requests these scopes to access Okta APIs and perform actions, make sure to enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. See the next section for details.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-store-tokens-to-access-okta-apis-optional">Step 5: Store tokens to access Okta APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-python-and-logto#step-5-store-tokens-to-access-okta-apis-optional" class="hash-link" aria-label="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" title="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" translate="no">​</a></h3>
<p>If you want to access <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/guides/request-user-consent/main/#enable-consent-for-scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta scopes<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and perform actions with user authorization, Logto needs to get specific scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in your Okta developer console API permissions configuration and Logto Okta connector.</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. Logto will securely store Okta access and refresh tokens in the Secret Vault.</li>
<li class="">To ensure refresh tokens are returned, add the <code>offline_access</code> scope to your Okta application permissions and include it in your Logto Okta connector scopes. This scope allows your application to maintain access to resources for extended periods.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-6-set-email-domains-and-enable-the-sso-connector">Step 6: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-python-and-logto#step-6-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Lien direct vers Step 6: Set email domains and enable the SSO connector" title="Lien direct vers Step 6: Set email domains and enable the SSO connector" translate="no">​</a></h3>
<p>Provide the <code>email domains</code> of your organization on Logto's connector <code>SSO experience</code> tab. This will enable the SSO connector as an authentication method for those users.</p>
<p>Users with email addresses in the specified domains will be redirected to use your SSO connector as their only authentication method.</p>
<p>For more details about creating OIDC integration with Okta, please check <span class="linkWrapper_B4Bt"><a href="https://help.okta.com/oie/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm" target="_blank" rel="noopener noreferrer" class="link_hf7f">Create OIDC App Integrations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-python-and-logto#save-your-configuration" class="hash-link" aria-label="Lien direct vers Save your configuration" title="Lien direct vers Save your configuration" translate="no">​</a></h3>
<p>Double check you have filled out necessary values in the Logto connector configuration area. Click
"Save and Done" (or "Save changes") and the <!-- -->Okta enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable Okta enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-python-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" title="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" translate="no">​</a></h2>
<p>You don’t need to configure enterprise connectors individually, Logto simplifies SSO integration into your applications with just one click.</p>
<ol>
<li class="">Navigate to: <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/sign-in-experience/sign-up-and-sign-in" target="_blank" rel="noopener noreferrer" class="link_hf7f">Console &gt; Sign-in &amp; account &gt; Sign-up and sign-in<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">Enable the "Enterprise SSO" toggle.</li>
<li class="">Save changes.</li>
</ol>
<p>Once enabled, a "Single Sign-On" button will appear on your sign-in page. Enterprise users with SSO-enabled email domains can access your services using their enterprise identity providers (IdPs).</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-email-auto-navigation.png" alt="Auto detect SSO sign-in via email domain">
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-link-button-navigation.png" alt="Navigate to SSO sign-in via manually click link button">
<p>To learn more about the SSO user experience, including SP-initiated SSO and IdP-initiated SSO, refer to User flows: <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="testing-and-validation">Testing and Validation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-python-and-logto#testing-and-validation" class="hash-link" aria-label="Lien direct vers Testing and Validation" title="Lien direct vers Testing and Validation" translate="no">​</a></h2>
<p>Return to your <!-- -->Python<!-- --> app. You should now be able to sign in with <!-- -->Okta enterprise SSO<!-- -->. Enjoy!</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="further-readings">Further readings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-python-and-logto#further-readings" class="hash-link" aria-label="Lien direct vers Further readings" title="Lien direct vers Further readings" translate="no">​</a></h2>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows" target="_blank" rel="noopener noreferrer" class="link_hf7f">End-user flows<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Logto provides a out-of-the-box authentication flows including MFA and enterprise SSO, along with powerful APIs for flexible implementation of account settings, security verification, and multi-tenant experience.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/authorization" target="_blank" rel="noopener noreferrer" class="link_hf7f">Authorization<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Authorization defines the actions a user can do or resources they can access after being authenticated. Explore how to protect your API for native and single-page applications and implement Role-based Access Control (RBAC).</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/organizations" target="_blank" rel="noopener noreferrer" class="link_hf7f">Organizations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Particularly effective in multi-tenant SaaS and B2B apps, the organization feature enable tenant creation, member management, organization-level RBAC, and just-in-time-provisioning.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://blog.logto.io/ciam-101-intro-authn-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Customer IAM series<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> Our serial blog posts about Customer (or Consumer) Identity and Access Management, from 101 to advanced topics and beyond.</p>]]></content:encoded>
            <category>SSO providers</category>
            <category>okta-enterprise-sso</category>
            <category>python</category>
            <category>python</category>
            <category>SAML authentication</category>
            <category>enterprise login</category>
            <category>SSO login</category>
        </item>
        <item>
            <title><![CDATA[How to build Okta enterprise SSO with React]]></title>
            <link>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto</link>
            <guid>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto</guid>
            <pubDate>Fri, 17 Apr 2026 02:54:06 GMT</pubDate>
            <description><![CDATA[{/*]]></description>
            <content:encoded><![CDATA[
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">For our new friends<!-- -->:</span><br><br><p><span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> is an Auth0 alternative designed for modern apps and SaaS products. It
offers both <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/logto" target="_blank" rel="noopener noreferrer" class="link_hf7f">Open-source<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>
services to help you quickly launch your identity and management (IAM) system. Enjoy authentication,
authorization, and multi-tenant management <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">all in one<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.<!-- --> </p><p>We recommend starting with a free development tenant on <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. This allows you to explore all the features easily.</p></div></div></div>
<p>In this article, we will go through the steps to quickly build the <!-- -->Okta enterprise SSO<!-- --> sign-in
experience (user authentication) with <a href="https://reactjs.org/" target="_blank" rel="noopener">React</a> and <span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>Prerequisites</strong></p>
<ul>
<li class="">A running Logto instance. Check out the <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">introduction page<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to get started.</li>
<li class="">Basic knowledge of <a href="https://reactjs.org/" target="_blank" rel="noopener">React</a>.</li>
<li class="">A usable <!-- -->Okta enterprise SSO<!-- --> account.</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="create-an-application-in-logto">Create an application in Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Lien direct vers Create an application in Logto" title="Lien direct vers Create an application in Logto" translate="no">​</a></h2>
<p>Logto is based on OpenID Connect (OIDC) authentication and OAuth 2.0 authorization. It supports federated identity management across multiple applications, commonly called Single Sign-On (SSO).</p>
<p>To create your <!-- -->Single page app<!-- --> application, simply follow these steps:</p>
<ol>
<li class="">Open the <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. In the "Get started" section, click the "View all" link to open the application frameworks list. Alternatively, you can navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/applications" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console &gt; Applications<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, and click the "Create application" button.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/get-started.png" alt="Get started">
</li>
<li class="">In the opening modal, click the "<!-- -->Single page app<!-- -->" section or filter all the available "<!-- -->Single page app<!-- -->" frameworks using the quick filter checkboxes on the left. Click the "<!-- -->React<!-- -->" framework card to start creating your application.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/framework-list.png" alt="Frameworks">
</li>
<li class="">Enter the application name, e.g., "Bookstore," and click "Create application".</li>
</ol>
<p>🎉 Ta-da! You just created your first application in Logto. You'll see a congrats page which includes a detailed integration guide. Follow the guide to see what the experience will be in your application.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="integrate-with-logto">Integrate React with Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#integrate-with-logto" class="hash-link" aria-label="Lien direct vers Integrate React with Logto" title="Lien direct vers Integrate React with Logto" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><ul>
<li class="">The sample project is available on our <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/js/tree/master/packages/react-sample" target="_blank" rel="noopener noreferrer" class="link_hf7f">SDK repository<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">The tutorial video is available on our <span class="linkWrapper_B4Bt"><a href="https://youtu.be/pvKYt8QFppE" target="_blank" rel="noopener noreferrer" class="link_hf7f">YouTube channel<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ul></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="installation">Installation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#installation" class="hash-link" aria-label="Lien direct vers Installation" title="Lien direct vers Installation" translate="no">​</a></h3>
<!-- -->
<p>Install Logto SDK via your favorite package manager:</p>
<div class="theme-tabs-container tabs-container tabList_q32P"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_DwL7 tabs__item--active">npm</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_DwL7">pnpm</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_DwL7">yarn</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_bR4Y"><pre><code class="language-bash">npm i <!-- -->@logto/react</code></pre></div><div role="tabpanel" class="tabItem_bR4Y" hidden=""><pre><code class="language-bash">pnpm add <!-- -->@logto/react</code></pre></div><div role="tabpanel" class="tabItem_bR4Y" hidden=""><pre><code class="language-bash">yarn add <!-- -->@logto/react</code></pre></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="init-logtoclient">Init LogtoClient<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#init-logtoclient" class="hash-link" aria-label="Lien direct vers Init LogtoClient" title="Lien direct vers Init LogtoClient" translate="no">​</a></h3>
<p>Import and use <code>LogtoProvider</code> to provide a Logto context to your app:</p>
<div class="language-tsx codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">App.tsx</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-tsx codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token imports"> </span><span class="token imports maybe-class-name">LogtoProvider</span><span class="token imports punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token imports"> </span><span class="token imports maybe-class-name">LogtoConfig</span><span class="token imports"> </span><span class="token imports punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'@logto/react'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> config</span><span class="token operator">:</span><span class="token plain"> </span><span class="token maybe-class-name">LogtoConfig</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  endpoint</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'&lt;your-logto-endpoint&gt;'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">// E.g. http://localhost:3001</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  appId</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'&lt;your-application-id&gt;'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token function-variable function" style="color:rgb(80, 250, 123)">App</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token arrow operator">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">LogtoProvider</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">config</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(248, 248, 242)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)">config</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text">    </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">YourAppContent</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">/&gt;</span><span class="token plain-text"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain-text">  </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">LogtoProvider</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uris">Configure redirect URIs<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#configure-redirect-uris" class="hash-link" aria-label="Lien direct vers Configure redirect URIs" title="Lien direct vers Configure redirect URIs" translate="no">​</a></h3>
<p>Before we dive into the details, here's a quick overview of the end-user experience. The sign-in process can be simplified as follows:</p>
<!-- -->
<ol>
<li class="">Your app invokes the sign-in method.</li>
<li class="">The user is redirected to the Logto sign-in page. For native apps, the system browser is opened.</li>
<li class="">The user signs in and is redirected back to your app (configured as the redirect URI).</li>
</ol>
<details class="details_Qsrn details_Jw1Q" data-collapsed="true"><summary><h3 class="anchor anchorTargetStickyNavbar_iJWz" id="regarding-redirect-based-sign-in">Regarding redirect-based sign-in<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Lien direct vers Regarding redirect-based sign-in" title="Lien direct vers Regarding redirect-based sign-in" translate="no">​</a></h3></summary><div><div class="collapsibleContent_brv9"><ol>
<li class="">This authentication process follows the <span class="linkWrapper_B4Bt"><a href="https://openid.net/specs/openid-connect-core-1_0.html" target="_blank" rel="noopener noreferrer" class="link_hf7f">OpenID Connect (OIDC)<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> protocol, and Logto enforces strict security measures to protect user sign-in.</li>
<li class="">If you have multiple apps, you can use the same identity provider (Logto). Once the user signs in to one app, Logto will automatically complete the sign-in process when the user accesses another app.</li>
</ol><p>To learn more about the rationale and benefits of redirect-based sign-in, see <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/concepts/sign-in-experience" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Logto sign-in experience explained<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p></div></div></details>
<hr>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>In the following code snippets, we assume your app is running on <code>http://localhost:3000/</code>.</p></div></div></div>
<!-- -->
<!-- -->
<h4 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uris">Configure redirect URIs<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#configure-redirect-uris" class="hash-link" aria-label="Lien direct vers Configure redirect URIs" title="Lien direct vers Configure redirect URIs" translate="no">​</a></h4>
<p>Switch to the application details page of Logto Console. Add a redirect URI <code>http://localhost:3000/callback</code>.</p>
<img alt="Redirect URI in Logto Console" src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/web-redirect-uri.png" width="600px">
<p>Just like signing in, users should be redirected to Logto for signing out of the shared session. Once finished, it would be great to redirect the user back to your website. For example, add <code>http://localhost:3000/</code> as the post sign-out redirect URI section.</p>
<p>Then click "Save" to save the changes.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="handle-redirect">Handle redirect<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#handle-redirect" class="hash-link" aria-label="Lien direct vers Handle redirect" title="Lien direct vers Handle redirect" translate="no">​</a></h3>
<p>Since we use <code>http://localhost:3000/callback</code> as the redirect URI, now we need to handle it properly.</p>
<p>First let's create a callback page:</p>
<div class="language-tsx codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">pages/Callback/index.tsx</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-tsx codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token imports"> useHandleSignInCallback </span><span class="token imports punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'@logto/react'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token function-variable function" style="color:rgb(80, 250, 123)">Callback</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token arrow operator">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> isLoading </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">useHandleSignInCallback</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token arrow operator">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">// Do something when finished, e.g. redirect to home page</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">// When it's working in progress</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">isLoading</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">div</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain-text">Redirecting...</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">div</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">null</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<p>Finally insert the code below to create a <code>/callback</code> route which does NOT require authentication:</p>
<div class="language-tsx codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">App.tsx</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-tsx codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">// Assuming react-router</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag class-name" style="color:rgb(255, 121, 198)">Route</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">path</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">/callback</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">element</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(248, 248, 242)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag script language-javascript tag class-name" style="color:rgb(255, 121, 198)">Callback</span><span class="token tag script language-javascript tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript tag punctuation" style="color:rgb(248, 248, 242)">/&gt;</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">/&gt;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-sign-in-and-sign-out">Implement sign-in and sign-out<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#implement-sign-in-and-sign-out" class="hash-link" aria-label="Lien direct vers Implement sign-in and sign-out" title="Lien direct vers Implement sign-in and sign-out" translate="no">​</a></h3>
<p>We provide two hooks <code>useHandleSignInCallback()</code> and <code>useLogto()</code> which can help you easily manage the authentication flow.</p>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>Before calling <code>.signIn()</code>, make sure you have correctly configured Redirect URI
in Admin Console.</p></div></div></div>
<div class="language-tsx codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">pages/Home/index.tsx</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-tsx codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token imports"> useLogto </span><span class="token imports punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'@logto/react'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token function-variable function" style="color:rgb(80, 250, 123)">Home</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token arrow operator">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> signOut</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> isAuthenticated </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">useLogto</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> isAuthenticated </span><span class="token operator">?</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">button</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">onClick</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(248, 248, 242)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)">signOut</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain-text">Sign Out</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">button</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">button</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">onClick</span><span class="token tag script language-javascript script-punctuation punctuation" style="color:rgb(248, 248, 242)">=</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript arrow operator" style="color:rgb(255, 121, 198)">=&gt;</span><span class="token tag script language-javascript" style="color:rgb(255, 121, 198)"> </span><span class="token tag script language-javascript function" style="color:rgb(80, 250, 123)">signIn</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token tag script language-javascript string" style="color:rgb(255, 121, 198)">'http://localhost:3000/callback'</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token tag script language-javascript punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain-text">Sign In</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">button</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<p>Calling <code>.signOut()</code> will clear all the Logto data in memory and localStorage if they exist.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="checkpoint-test-your-application">Checkpoint: Test your application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Lien direct vers Checkpoint: Test your application" title="Lien direct vers Checkpoint: Test your application" translate="no">​</a></h3>
<p>Now, you can test your application:</p>
<ol>
<li class="">Run your application, you will see the sign-in button.</li>
<li class="">Click the sign-in button, the SDK will init the sign-in process and redirect you to the Logto sign-in page.</li>
<li class="">After you signed in, you will be redirected back to your application and see the sign-out button.</li>
<li class="">Click the sign-out button to clear token storage and sign out.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="add-connector-connector">Add Okta enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#add-connector-connector" class="hash-link" aria-label="Lien direct vers Add Okta enterprise SSO connector" title="Lien direct vers Add Okta enterprise SSO connector" translate="no">​</a></h2>
<p>To simplify access management and gain enterprise-level safeguards for your big clients, connect with <!-- -->React<!-- --> as a federated identity provider. The Logto enterprise SSO connector helps you establish this connection in minutes by allowing several parameter inputs.</p>
<p>To add an enterprise SSO connector, simply follow these steps:</p>
<ol>
<li class="">Navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto console &gt; Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-page.png" alt="SSO page">
<ol start="2">
<li class="">Click "Add enterprise connector" button and choose your SSO provider type. Choose from prebuilt connectors for Microsoft Entra ID (Azure AD), Google Workspace, and Okta, or create a custom SSO connection using the standard OpenID Connect (OIDC) or SAML protocol.</li>
<li class="">Provide a unique name (e.g., SSO sign-in for Acme Company).</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/select-your-sso-provider.png" alt="Select your SSO provider">
<ol start="4">
<li class="">Configure the connection with your IdP in the "Connection" tab. Check the guides above for each connector types.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-connection-settings.png" alt="SSO connection">
<ol start="5">
<li class="">Customize the SSO experience and enterprise’s <strong>email domain</strong> in the "Experience" tab. Users sign in with the SSO-enabled email domain will be redirected to SSO authentication.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-experience-settings.png" alt="SSO experience">
<ol start="6">
<li class="">Save changes.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="set-up-connectorconfigname">Set up OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Lien direct vers Set up OIDC application on Okta admin portal" title="Lien direct vers Set up OIDC application on Okta admin portal" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-okta-admin-portal">Step 1: Create an OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#step-1-create-an-oidc-application-on-okta-admin-portal" class="hash-link" aria-label="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" title="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" translate="no">​</a></h3>
<ul>
<li class="">Visit the Okta admin portal and sign in as an administrator.</li>
<li class="">Navigate to the <code>Applications</code>/<code>Applications</code> page using the side menu.</li>
<li class="">Click the <code>Create App Integration</code> button to create a new OIDC application.</li>
<li class="">Select the <code>OIDC - OpenID Connect</code> option as the <code>Sign-in method</code>.</li>
<li class="">Select the <code>Web Application</code> option as the <code>Application type</code>.</li>
</ul>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_create_application.webp" alt="Okta create application">
<p>Click the <code>Next</code> button to continue.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-the-application-settings">Step 2: Configure the application settings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Lien direct vers Step 2: Configure the application settings" title="Lien direct vers Step 2: Configure the application settings" translate="no">​</a></h3>
<ol>
<li class="">Provide an <code>App integration name</code>. It will be used as the identifier of your OIDC application.</li>
<li class="">Add a new <code>Sign-in redirect URIs</code> using the Logto SSO connector's callback URL.</li>
</ol>
<p>This is the URI that the Okta will redirect the user's browser after successful authentication. After a user successfully authenticates with the IdP, the IdP redirects the user's browser back to this designated URI along with an authorization code. Logto will complete the authentication process based on the authorization code received from this URI.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_application_settings.webp" alt="Okta application settings">
<ol start="3">
<li class="">Assign users to the application.</li>
</ol>
<p>Based on the <code>Assignments</code> settings, you can choose to assign the application to all users or specific users/groups.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_assign_users.webp" alt="Okta assign users">
<p>Click the <code>Save</code> button to save the application settings.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-set-up-logto-connector-with-the-client-credentials">Step 3: Set up Logto connector with the client credentials<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#step-3-set-up-logto-connector-with-the-client-credentials" class="hash-link" aria-label="Lien direct vers Step 3: Set up Logto connector with the client credentials" title="Lien direct vers Step 3: Set up Logto connector with the client credentials" translate="no">​</a></h3>
<p>After successfully creating the OIDC application, you will be redirected to the application details page.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_client_credentials.webp" alt="Okta client credentials">
<p>Copy the <code>client ID</code> and <code>client secret</code> and fill in the corresponding fields on the Logto SSO connector <code>Connection</code> tab.</p>
<p>Use your Okta domain as the <code>issuer</code>. Example: <code>https://dev-12345678.okta.com</code>. Once you have filled in all the fields, click the <code>Save</code> button to save the connector settings.</p>
<p>If the <code>issuer</code> link you provided is valid, you will see a parsed full list of Okta IdP configurations shown below the <code>issuer</code> field.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-additional-scopes-optional">Step 4: Additional scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Lien direct vers Step 4: Additional scopes (Optional)" title="Lien direct vers Step 4: Additional scopes (Optional)" translate="no">​</a></h3>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their Okta accounts. Requesting additional Okta permissions requires configuration on both sides:</p>
<p><strong>In Okta admin console:</strong></p>
<ol>
<li class="">Navigate to <strong>Applications &gt; Applications</strong> and select your OIDC application.</li>
<li class="">Go to the <strong>Assignments</strong> tab to ensure your app has access to the required users and groups.</li>
<li class="">For custom scopes, navigate to <strong>Security &gt; API &gt; Authorization Servers</strong> and select your authorization server.</li>
<li class="">Add custom scopes if needed:<!-- -->
<ul>
<li class="">Click <strong>Scopes</strong> and then <strong>Add Scope</strong></li>
<li class="">Define scope names like <code>okta.users.read</code> or <code>okta.groups.read</code> for accessing Okta APIs</li>
<li class="">Configure consent requirements for each scope</li>
</ul>
</li>
</ol>
<p>For a complete list of available scopes and their descriptions, please refer to the <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/api/openapi/okta-oauth/guides/overview/#scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta OIDC documentation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>In Logto Okta connector:</strong></p>
<ol>
<li class="">Logto automatically includes <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information. You can leave the <code>Scopes</code> field blank if you only need basic user information.</li>
<li class="">Add <code>offline_access</code> to the <code>Scopes</code> field if you plan to store tokens for persistent API access. This scope enables refresh tokens for long-lived API access.</li>
<li class="">Add additional scopes (separated by spaces) in the <code>Scopes</code> field to request more data from Okta. For example: <code>okta.users.read okta.groups.read</code></li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>If your app requests these scopes to access Okta APIs and perform actions, make sure to enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. See the next section for details.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-store-tokens-to-access-okta-apis-optional">Step 5: Store tokens to access Okta APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#step-5-store-tokens-to-access-okta-apis-optional" class="hash-link" aria-label="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" title="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" translate="no">​</a></h3>
<p>If you want to access <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/guides/request-user-consent/main/#enable-consent-for-scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta scopes<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and perform actions with user authorization, Logto needs to get specific scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in your Okta developer console API permissions configuration and Logto Okta connector.</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. Logto will securely store Okta access and refresh tokens in the Secret Vault.</li>
<li class="">To ensure refresh tokens are returned, add the <code>offline_access</code> scope to your Okta application permissions and include it in your Logto Okta connector scopes. This scope allows your application to maintain access to resources for extended periods.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-6-set-email-domains-and-enable-the-sso-connector">Step 6: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#step-6-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Lien direct vers Step 6: Set email domains and enable the SSO connector" title="Lien direct vers Step 6: Set email domains and enable the SSO connector" translate="no">​</a></h3>
<p>Provide the <code>email domains</code> of your organization on Logto's connector <code>SSO experience</code> tab. This will enable the SSO connector as an authentication method for those users.</p>
<p>Users with email addresses in the specified domains will be redirected to use your SSO connector as their only authentication method.</p>
<p>For more details about creating OIDC integration with Okta, please check <span class="linkWrapper_B4Bt"><a href="https://help.okta.com/oie/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm" target="_blank" rel="noopener noreferrer" class="link_hf7f">Create OIDC App Integrations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#save-your-configuration" class="hash-link" aria-label="Lien direct vers Save your configuration" title="Lien direct vers Save your configuration" translate="no">​</a></h3>
<p>Double check you have filled out necessary values in the Logto connector configuration area. Click
"Save and Done" (or "Save changes") and the <!-- -->Okta enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable Okta enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" title="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" translate="no">​</a></h2>
<p>You don’t need to configure enterprise connectors individually, Logto simplifies SSO integration into your applications with just one click.</p>
<ol>
<li class="">Navigate to: <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/sign-in-experience/sign-up-and-sign-in" target="_blank" rel="noopener noreferrer" class="link_hf7f">Console &gt; Sign-in &amp; account &gt; Sign-up and sign-in<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">Enable the "Enterprise SSO" toggle.</li>
<li class="">Save changes.</li>
</ol>
<p>Once enabled, a "Single Sign-On" button will appear on your sign-in page. Enterprise users with SSO-enabled email domains can access your services using their enterprise identity providers (IdPs).</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-email-auto-navigation.png" alt="Auto detect SSO sign-in via email domain">
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-link-button-navigation.png" alt="Navigate to SSO sign-in via manually click link button">
<p>To learn more about the SSO user experience, including SP-initiated SSO and IdP-initiated SSO, refer to User flows: <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="testing-and-validation">Testing and Validation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#testing-and-validation" class="hash-link" aria-label="Lien direct vers Testing and Validation" title="Lien direct vers Testing and Validation" translate="no">​</a></h2>
<p>Return to your <!-- -->React<!-- --> app. You should now be able to sign in with <!-- -->Okta enterprise SSO<!-- -->. Enjoy!</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="further-readings">Further readings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-react-and-logto#further-readings" class="hash-link" aria-label="Lien direct vers Further readings" title="Lien direct vers Further readings" translate="no">​</a></h2>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows" target="_blank" rel="noopener noreferrer" class="link_hf7f">End-user flows<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Logto provides a out-of-the-box authentication flows including MFA and enterprise SSO, along with powerful APIs for flexible implementation of account settings, security verification, and multi-tenant experience.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/authorization" target="_blank" rel="noopener noreferrer" class="link_hf7f">Authorization<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Authorization defines the actions a user can do or resources they can access after being authenticated. Explore how to protect your API for native and single-page applications and implement Role-based Access Control (RBAC).</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/organizations" target="_blank" rel="noopener noreferrer" class="link_hf7f">Organizations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Particularly effective in multi-tenant SaaS and B2B apps, the organization feature enable tenant creation, member management, organization-level RBAC, and just-in-time-provisioning.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://blog.logto.io/ciam-101-intro-authn-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Customer IAM series<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> Our serial blog posts about Customer (or Consumer) Identity and Access Management, from 101 to advanced topics and beyond.</p>]]></content:encoded>
            <category>SSO providers</category>
            <category>okta-enterprise-sso</category>
            <category>react</category>
            <category>js</category>
            <category>SAML authentication</category>
            <category>enterprise login</category>
            <category>SSO login</category>
        </item>
        <item>
            <title><![CDATA[How to build Okta enterprise SSO with Vanilla JS]]></title>
            <link>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto</link>
            <guid>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto</guid>
            <pubDate>Fri, 17 Apr 2026 02:54:06 GMT</pubDate>
            <description><![CDATA[{/*]]></description>
            <content:encoded><![CDATA[
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">For our new friends<!-- -->:</span><br><br><p><span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> is an Auth0 alternative designed for modern apps and SaaS products. It
offers both <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/logto" target="_blank" rel="noopener noreferrer" class="link_hf7f">Open-source<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>
services to help you quickly launch your identity and management (IAM) system. Enjoy authentication,
authorization, and multi-tenant management <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">all in one<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.<!-- --> </p><p>We recommend starting with a free development tenant on <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. This allows you to explore all the features easily.</p></div></div></div>
<p>In this article, we will go through the steps to quickly build the <!-- -->Okta enterprise SSO<!-- --> sign-in
experience (user authentication) with <a href="https://en.wikipedia.org/wiki/ECMAScript" target="_blank" rel="noopener">Vanilla JS</a> and <span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>Prerequisites</strong></p>
<ul>
<li class="">A running Logto instance. Check out the <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">introduction page<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to get started.</li>
<li class="">Basic knowledge of <a href="https://en.wikipedia.org/wiki/ECMAScript" target="_blank" rel="noopener">Vanilla JS</a>.</li>
<li class="">A usable <!-- -->Okta enterprise SSO<!-- --> account.</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="create-an-application-in-logto">Create an application in Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Lien direct vers Create an application in Logto" title="Lien direct vers Create an application in Logto" translate="no">​</a></h2>
<p>Logto is based on OpenID Connect (OIDC) authentication and OAuth 2.0 authorization. It supports federated identity management across multiple applications, commonly called Single Sign-On (SSO).</p>
<p>To create your <!-- -->Single page app<!-- --> application, simply follow these steps:</p>
<ol>
<li class="">Open the <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. In the "Get started" section, click the "View all" link to open the application frameworks list. Alternatively, you can navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/applications" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console &gt; Applications<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, and click the "Create application" button.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/get-started.png" alt="Get started">
</li>
<li class="">In the opening modal, click the "<!-- -->Single page app<!-- -->" section or filter all the available "<!-- -->Single page app<!-- -->" frameworks using the quick filter checkboxes on the left. Click the "<!-- -->Vanilla JS<!-- -->" framework card to start creating your application.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/framework-list.png" alt="Frameworks">
</li>
<li class="">Enter the application name, e.g., "Bookstore," and click "Create application".</li>
</ol>
<p>🎉 Ta-da! You just created your first application in Logto. You'll see a congrats page which includes a detailed integration guide. Follow the guide to see what the experience will be in your application.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="integrate-with-logto">Integrate Vanilla JS with Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#integrate-with-logto" class="hash-link" aria-label="Lien direct vers Integrate Vanilla JS with Logto" title="Lien direct vers Integrate Vanilla JS with Logto" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><ul>
<li class="">The vanilla-js SDK is <span class="linkWrapper_B4Bt"><a href="https://stackoverflow.com/questions/64725017/what-does-it-mean-by-framework-agnostic" target="_blank" rel="noopener noreferrer" class="link_hf7f">framework-agnostic<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, you can use it in any frontend framework by writing a wrapper to fit it.</li>
<li class="">The sample project is available on our <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/js/tree/master/packages/browser-sample" target="_blank" rel="noopener noreferrer" class="link_hf7f">SDK repository<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ul></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="installation">Installation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#installation" class="hash-link" aria-label="Lien direct vers Installation" title="Lien direct vers Installation" translate="no">​</a></h3>
<p>Choose your favorite package manager or use the CDN to install the Logto Browser SDK.</p>
<div class="theme-tabs-container tabs-container tabList_q32P"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_DwL7 tabs__item--active">npm</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_DwL7">pnpm</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_DwL7">yarn</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_DwL7">CDN</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_bR4Y"><div class="language-bash codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-bash codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> i @logto/browser</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_bR4Y" hidden=""><div class="language-bash codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-bash codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">pnpm</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">add</span><span class="token plain"> @logto/browser</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_bR4Y" hidden=""><div class="language-bash codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-bash codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">yarn</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">add</span><span class="token plain"> @logto/browser</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_bR4Y" hidden=""><div class="language-html codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-html codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">&lt;!-- Special thanks to jsdelivr --&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">script</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">type</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">module</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token script language-javascript"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token script language-javascript">  </span><span class="token script language-javascript keyword module" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token script language-javascript"> </span><span class="token script language-javascript imports maybe-class-name">LogtoClient</span><span class="token script language-javascript"> </span><span class="token script language-javascript keyword module" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token script language-javascript"> </span><span class="token script language-javascript string" style="color:rgb(255, 121, 198)">'https://cdn.jsdelivr.net/npm/@logto/browser@2.2.13/+esm'</span><span class="token script language-javascript punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token script language-javascript"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token script language-javascript"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">script</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><br></span></code></pre></div></div></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="init-logtoclient">Init LogtoClient<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#init-logtoclient" class="hash-link" aria-label="Lien direct vers Init LogtoClient" title="Lien direct vers Init LogtoClient" translate="no">​</a></h3>
<p>Import and init a <code>LogtoClient</code> instance by passing config:</p>
<div class="language-ts codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">index.js</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-ts codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> LogtoClient </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'@logto/browser'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> logtoClient </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">new</span><span class="token plain"> </span><span class="token class-name">LogtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  endpoint</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'&lt;your-logto-endpoint&gt;'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  appId</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'&lt;your-application-id&gt;'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<p>The <code>endpoint</code> and <code>appId</code> can be found in the application details page in Logto Console.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-a-sign-in-and-sign-out">Implement a sign-in and sign-out<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#implement-a-sign-in-and-sign-out" class="hash-link" aria-label="Lien direct vers Implement a sign-in and sign-out" title="Lien direct vers Implement a sign-in and sign-out" translate="no">​</a></h3>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uris">Configure redirect URIs<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#configure-redirect-uris" class="hash-link" aria-label="Lien direct vers Configure redirect URIs" title="Lien direct vers Configure redirect URIs" translate="no">​</a></h3>
<p>Before we dive into the details, here's a quick overview of the end-user experience. The sign-in process can be simplified as follows:</p>
<!-- -->
<ol>
<li class="">Your app invokes the sign-in method.</li>
<li class="">The user is redirected to the Logto sign-in page. For native apps, the system browser is opened.</li>
<li class="">The user signs in and is redirected back to your app (configured as the redirect URI).</li>
</ol>
<details class="details_Qsrn details_Jw1Q" data-collapsed="true"><summary><h3 class="anchor anchorTargetStickyNavbar_iJWz" id="regarding-redirect-based-sign-in">Regarding redirect-based sign-in<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Lien direct vers Regarding redirect-based sign-in" title="Lien direct vers Regarding redirect-based sign-in" translate="no">​</a></h3></summary><div><div class="collapsibleContent_brv9"><ol>
<li class="">This authentication process follows the <span class="linkWrapper_B4Bt"><a href="https://openid.net/specs/openid-connect-core-1_0.html" target="_blank" rel="noopener noreferrer" class="link_hf7f">OpenID Connect (OIDC)<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> protocol, and Logto enforces strict security measures to protect user sign-in.</li>
<li class="">If you have multiple apps, you can use the same identity provider (Logto). Once the user signs in to one app, Logto will automatically complete the sign-in process when the user accesses another app.</li>
</ol><p>To learn more about the rationale and benefits of redirect-based sign-in, see <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/concepts/sign-in-experience" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Logto sign-in experience explained<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p></div></div></details>
<hr>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>In the following code snippets, we assume your app is running on <code>http://localhost:3000/</code>.</p></div></div></div>
<!-- -->
<!-- -->
<h4 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uris">Configure redirect URIs<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#configure-redirect-uris" class="hash-link" aria-label="Lien direct vers Configure redirect URIs" title="Lien direct vers Configure redirect URIs" translate="no">​</a></h4>
<p>Switch to the application details page of Logto Console. Add a redirect URI <code>http://localhost:3000/callback</code>.</p>
<img alt="Redirect URI in Logto Console" src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/web-redirect-uri.png" width="600px">
<p>Just like signing in, users should be redirected to Logto for signing out of the shared session. Once finished, it would be great to redirect the user back to your website. For example, add <code>http://localhost:3000/</code> as the post sign-out redirect URI section.</p>
<p>Then click "Save" to save the changes.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="handle-redirect">Handle redirect<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#handle-redirect" class="hash-link" aria-label="Lien direct vers Handle redirect" title="Lien direct vers Handle redirect" translate="no">​</a></h3>
<p>There are still things to do after the user is redirected back to your application from Logto. Let's handle it properly.</p>
<div class="language-js codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">pages/Callback.js</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-js codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token function-variable function" style="color:rgb(80, 250, 123)">callbackHandler</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token parameter">logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token arrow operator">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword control-flow" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgb(80, 250, 123)">handleSignInCallback</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token dom variable" style="color:rgb(189, 147, 249);font-style:italic">window</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">location</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">href</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword control-flow" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token operator">!</span><span class="token plain">logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">isAuthenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">// Handle failed sign-in</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token function" style="color:rgb(80, 250, 123)">alert</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'Failed to sign in'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword control-flow" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">// Handle successful sign-in</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token dom variable" style="color:rgb(189, 147, 249);font-style:italic">window</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">location</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgb(80, 250, 123)">assign</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'/'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-sign-in-and-sign-out">Implement sign-in and sign-out<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#implement-sign-in-and-sign-out" class="hash-link" aria-label="Lien direct vers Implement sign-in and sign-out" title="Lien direct vers Implement sign-in and sign-out" translate="no">​</a></h3>
<p><code>logtoClient</code> provides <code>signIn</code> and <code>signOut</code> methods to help you easily manage the authentication flow.</p>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>Before calling <code>.signIn()</code>, make sure you have correctly configured Redirect URI
in Admin Console.</p></div></div></div>
<div class="language-js codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">pages/Home.js</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-js codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> isAuthenticated </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword control-flow" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgb(80, 250, 123)">isAuthenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token function-variable function" style="color:rgb(80, 250, 123)">onClickSignIn</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token arrow operator">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgb(80, 250, 123)">signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'http://localhost:3000/callback'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token function-variable function" style="color:rgb(80, 250, 123)">onClickSignOut</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token arrow operator">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgb(80, 250, 123)">signOut</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'http://localhost:3000'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> button </span><span class="token operator">=</span><span class="token plain"> </span><span class="token dom variable" style="color:rgb(189, 147, 249);font-style:italic">document</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgb(80, 250, 123)">createElement</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'button'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">button</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">innerHTML</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> isAuthenticated </span><span class="token operator">?</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'Sign Out'</span><span class="token plain"> </span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'Sign In'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">button</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgb(80, 250, 123)">addEventListener</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'click'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> isAuthenticated </span><span class="token operator">?</span><span class="token plain"> onClickSignOut </span><span class="token operator">:</span><span class="token plain"> onClickSignIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token dom variable" style="color:rgb(189, 147, 249);font-style:italic">document</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">body</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgb(80, 250, 123)">appendChild</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">button</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<p>Calling <code>.signOut()</code> will clear all the Logto data in memory and localStorage if they exist.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="handle-authentication-status">Handle authentication status<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#handle-authentication-status" class="hash-link" aria-label="Lien direct vers Handle authentication status" title="Lien direct vers Handle authentication status" translate="no">​</a></h3>
<p>In Logto SDK, generally we can use <code>logtoClient.isAuthenticated</code> to check the authentication status, if the user is signed in, the value will be <code>true</code>, otherwise, the value will be <code>false</code>.</p>
<p>In your vanilla JS app, you can use the <code>isAuthenticated</code> status to programmatically show and hide the sign-in and sign-out buttons. Let's see how to do it.</p>
<div class="language-js codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-js codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> redirectUrl </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'http://localhost:3000/callback'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> baseUrl </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'http://localhost:3000'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)">// Conditional rendering of sign-in and sign-out buttons</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token function-variable function" style="color:rgb(80, 250, 123)">render</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token parameter">logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token arrow operator">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> isAuthenticated </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword control-flow" style="color:rgb(189, 147, 249);font-style:italic">await</span><span class="token plain"> logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgb(80, 250, 123)">isAuthenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> container </span><span class="token operator">=</span><span class="token plain"> </span><span class="token dom variable" style="color:rgb(189, 147, 249);font-style:italic">document</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgb(80, 250, 123)">querySelector</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'#container'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token function-variable function" style="color:rgb(80, 250, 123)">onClickSignIn</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token arrow operator">=&gt;</span><span class="token plain"> logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgb(80, 250, 123)">signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">redirectUrl</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token function-variable function" style="color:rgb(80, 250, 123)">onClickSignOut</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token arrow operator">=&gt;</span><span class="token plain"> logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgb(80, 250, 123)">signOut</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">baseUrl</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> button </span><span class="token operator">=</span><span class="token plain"> </span><span class="token dom variable" style="color:rgb(189, 147, 249);font-style:italic">document</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgb(80, 250, 123)">createElement</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'button'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  button</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token property-access">innerHTML</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> isAuthenticated </span><span class="token operator">?</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'Sign Out'</span><span class="token plain"> </span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'Sign In'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  button</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgb(80, 250, 123)">addEventListener</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'click'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> isAuthenticated </span><span class="token operator">?</span><span class="token plain"> onClickSignOut </span><span class="token operator">:</span><span class="token plain"> onClickSignIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  container</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgb(80, 250, 123)">append</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">button</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="checkpoint-test-your-application">Checkpoint: Test your application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Lien direct vers Checkpoint: Test your application" title="Lien direct vers Checkpoint: Test your application" translate="no">​</a></h3>
<p>Now, you can test your application:</p>
<ol>
<li class="">Run your application, you will see the sign-in button.</li>
<li class="">Click the sign-in button, the SDK will init the sign-in process and redirect you to the Logto sign-in page.</li>
<li class="">After you signed in, you will be redirected back to your application and see the sign-out button.</li>
<li class="">Click the sign-out button to clear token storage and sign out.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="add-connector-connector">Add Okta enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#add-connector-connector" class="hash-link" aria-label="Lien direct vers Add Okta enterprise SSO connector" title="Lien direct vers Add Okta enterprise SSO connector" translate="no">​</a></h2>
<p>To simplify access management and gain enterprise-level safeguards for your big clients, connect with <!-- -->Vanilla JS<!-- --> as a federated identity provider. The Logto enterprise SSO connector helps you establish this connection in minutes by allowing several parameter inputs.</p>
<p>To add an enterprise SSO connector, simply follow these steps:</p>
<ol>
<li class="">Navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto console &gt; Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-page.png" alt="SSO page">
<ol start="2">
<li class="">Click "Add enterprise connector" button and choose your SSO provider type. Choose from prebuilt connectors for Microsoft Entra ID (Azure AD), Google Workspace, and Okta, or create a custom SSO connection using the standard OpenID Connect (OIDC) or SAML protocol.</li>
<li class="">Provide a unique name (e.g., SSO sign-in for Acme Company).</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/select-your-sso-provider.png" alt="Select your SSO provider">
<ol start="4">
<li class="">Configure the connection with your IdP in the "Connection" tab. Check the guides above for each connector types.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-connection-settings.png" alt="SSO connection">
<ol start="5">
<li class="">Customize the SSO experience and enterprise’s <strong>email domain</strong> in the "Experience" tab. Users sign in with the SSO-enabled email domain will be redirected to SSO authentication.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-experience-settings.png" alt="SSO experience">
<ol start="6">
<li class="">Save changes.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="set-up-connectorconfigname">Set up OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Lien direct vers Set up OIDC application on Okta admin portal" title="Lien direct vers Set up OIDC application on Okta admin portal" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-okta-admin-portal">Step 1: Create an OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#step-1-create-an-oidc-application-on-okta-admin-portal" class="hash-link" aria-label="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" title="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" translate="no">​</a></h3>
<ul>
<li class="">Visit the Okta admin portal and sign in as an administrator.</li>
<li class="">Navigate to the <code>Applications</code>/<code>Applications</code> page using the side menu.</li>
<li class="">Click the <code>Create App Integration</code> button to create a new OIDC application.</li>
<li class="">Select the <code>OIDC - OpenID Connect</code> option as the <code>Sign-in method</code>.</li>
<li class="">Select the <code>Web Application</code> option as the <code>Application type</code>.</li>
</ul>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_create_application.webp" alt="Okta create application">
<p>Click the <code>Next</code> button to continue.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-the-application-settings">Step 2: Configure the application settings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Lien direct vers Step 2: Configure the application settings" title="Lien direct vers Step 2: Configure the application settings" translate="no">​</a></h3>
<ol>
<li class="">Provide an <code>App integration name</code>. It will be used as the identifier of your OIDC application.</li>
<li class="">Add a new <code>Sign-in redirect URIs</code> using the Logto SSO connector's callback URL.</li>
</ol>
<p>This is the URI that the Okta will redirect the user's browser after successful authentication. After a user successfully authenticates with the IdP, the IdP redirects the user's browser back to this designated URI along with an authorization code. Logto will complete the authentication process based on the authorization code received from this URI.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_application_settings.webp" alt="Okta application settings">
<ol start="3">
<li class="">Assign users to the application.</li>
</ol>
<p>Based on the <code>Assignments</code> settings, you can choose to assign the application to all users or specific users/groups.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_assign_users.webp" alt="Okta assign users">
<p>Click the <code>Save</code> button to save the application settings.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-set-up-logto-connector-with-the-client-credentials">Step 3: Set up Logto connector with the client credentials<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#step-3-set-up-logto-connector-with-the-client-credentials" class="hash-link" aria-label="Lien direct vers Step 3: Set up Logto connector with the client credentials" title="Lien direct vers Step 3: Set up Logto connector with the client credentials" translate="no">​</a></h3>
<p>After successfully creating the OIDC application, you will be redirected to the application details page.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_client_credentials.webp" alt="Okta client credentials">
<p>Copy the <code>client ID</code> and <code>client secret</code> and fill in the corresponding fields on the Logto SSO connector <code>Connection</code> tab.</p>
<p>Use your Okta domain as the <code>issuer</code>. Example: <code>https://dev-12345678.okta.com</code>. Once you have filled in all the fields, click the <code>Save</code> button to save the connector settings.</p>
<p>If the <code>issuer</code> link you provided is valid, you will see a parsed full list of Okta IdP configurations shown below the <code>issuer</code> field.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-additional-scopes-optional">Step 4: Additional scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Lien direct vers Step 4: Additional scopes (Optional)" title="Lien direct vers Step 4: Additional scopes (Optional)" translate="no">​</a></h3>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their Okta accounts. Requesting additional Okta permissions requires configuration on both sides:</p>
<p><strong>In Okta admin console:</strong></p>
<ol>
<li class="">Navigate to <strong>Applications &gt; Applications</strong> and select your OIDC application.</li>
<li class="">Go to the <strong>Assignments</strong> tab to ensure your app has access to the required users and groups.</li>
<li class="">For custom scopes, navigate to <strong>Security &gt; API &gt; Authorization Servers</strong> and select your authorization server.</li>
<li class="">Add custom scopes if needed:<!-- -->
<ul>
<li class="">Click <strong>Scopes</strong> and then <strong>Add Scope</strong></li>
<li class="">Define scope names like <code>okta.users.read</code> or <code>okta.groups.read</code> for accessing Okta APIs</li>
<li class="">Configure consent requirements for each scope</li>
</ul>
</li>
</ol>
<p>For a complete list of available scopes and their descriptions, please refer to the <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/api/openapi/okta-oauth/guides/overview/#scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta OIDC documentation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>In Logto Okta connector:</strong></p>
<ol>
<li class="">Logto automatically includes <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information. You can leave the <code>Scopes</code> field blank if you only need basic user information.</li>
<li class="">Add <code>offline_access</code> to the <code>Scopes</code> field if you plan to store tokens for persistent API access. This scope enables refresh tokens for long-lived API access.</li>
<li class="">Add additional scopes (separated by spaces) in the <code>Scopes</code> field to request more data from Okta. For example: <code>okta.users.read okta.groups.read</code></li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>If your app requests these scopes to access Okta APIs and perform actions, make sure to enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. See the next section for details.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-store-tokens-to-access-okta-apis-optional">Step 5: Store tokens to access Okta APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#step-5-store-tokens-to-access-okta-apis-optional" class="hash-link" aria-label="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" title="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" translate="no">​</a></h3>
<p>If you want to access <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/guides/request-user-consent/main/#enable-consent-for-scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta scopes<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and perform actions with user authorization, Logto needs to get specific scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in your Okta developer console API permissions configuration and Logto Okta connector.</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. Logto will securely store Okta access and refresh tokens in the Secret Vault.</li>
<li class="">To ensure refresh tokens are returned, add the <code>offline_access</code> scope to your Okta application permissions and include it in your Logto Okta connector scopes. This scope allows your application to maintain access to resources for extended periods.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-6-set-email-domains-and-enable-the-sso-connector">Step 6: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#step-6-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Lien direct vers Step 6: Set email domains and enable the SSO connector" title="Lien direct vers Step 6: Set email domains and enable the SSO connector" translate="no">​</a></h3>
<p>Provide the <code>email domains</code> of your organization on Logto's connector <code>SSO experience</code> tab. This will enable the SSO connector as an authentication method for those users.</p>
<p>Users with email addresses in the specified domains will be redirected to use your SSO connector as their only authentication method.</p>
<p>For more details about creating OIDC integration with Okta, please check <span class="linkWrapper_B4Bt"><a href="https://help.okta.com/oie/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm" target="_blank" rel="noopener noreferrer" class="link_hf7f">Create OIDC App Integrations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#save-your-configuration" class="hash-link" aria-label="Lien direct vers Save your configuration" title="Lien direct vers Save your configuration" translate="no">​</a></h3>
<p>Double check you have filled out necessary values in the Logto connector configuration area. Click
"Save and Done" (or "Save changes") and the <!-- -->Okta enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable Okta enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" title="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" translate="no">​</a></h2>
<p>You don’t need to configure enterprise connectors individually, Logto simplifies SSO integration into your applications with just one click.</p>
<ol>
<li class="">Navigate to: <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/sign-in-experience/sign-up-and-sign-in" target="_blank" rel="noopener noreferrer" class="link_hf7f">Console &gt; Sign-in &amp; account &gt; Sign-up and sign-in<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">Enable the "Enterprise SSO" toggle.</li>
<li class="">Save changes.</li>
</ol>
<p>Once enabled, a "Single Sign-On" button will appear on your sign-in page. Enterprise users with SSO-enabled email domains can access your services using their enterprise identity providers (IdPs).</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-email-auto-navigation.png" alt="Auto detect SSO sign-in via email domain">
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-link-button-navigation.png" alt="Navigate to SSO sign-in via manually click link button">
<p>To learn more about the SSO user experience, including SP-initiated SSO and IdP-initiated SSO, refer to User flows: <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="testing-and-validation">Testing and Validation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#testing-and-validation" class="hash-link" aria-label="Lien direct vers Testing and Validation" title="Lien direct vers Testing and Validation" translate="no">​</a></h2>
<p>Return to your <!-- -->Vanilla JS<!-- --> app. You should now be able to sign in with <!-- -->Okta enterprise SSO<!-- -->. Enjoy!</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="further-readings">Further readings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vanilla-js-and-logto#further-readings" class="hash-link" aria-label="Lien direct vers Further readings" title="Lien direct vers Further readings" translate="no">​</a></h2>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows" target="_blank" rel="noopener noreferrer" class="link_hf7f">End-user flows<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Logto provides a out-of-the-box authentication flows including MFA and enterprise SSO, along with powerful APIs for flexible implementation of account settings, security verification, and multi-tenant experience.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/authorization" target="_blank" rel="noopener noreferrer" class="link_hf7f">Authorization<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Authorization defines the actions a user can do or resources they can access after being authenticated. Explore how to protect your API for native and single-page applications and implement Role-based Access Control (RBAC).</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/organizations" target="_blank" rel="noopener noreferrer" class="link_hf7f">Organizations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Particularly effective in multi-tenant SaaS and B2B apps, the organization feature enable tenant creation, member management, organization-level RBAC, and just-in-time-provisioning.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://blog.logto.io/ciam-101-intro-authn-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Customer IAM series<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> Our serial blog posts about Customer (or Consumer) Identity and Access Management, from 101 to advanced topics and beyond.</p>]]></content:encoded>
            <category>SSO providers</category>
            <category>okta-enterprise-sso</category>
            <category>vanilla-js</category>
            <category>js</category>
            <category>SAML authentication</category>
            <category>enterprise login</category>
            <category>SSO login</category>
        </item>
        <item>
            <title><![CDATA[How to build Okta enterprise SSO with Vue]]></title>
            <link>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto</link>
            <guid>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto</guid>
            <pubDate>Fri, 17 Apr 2026 02:54:06 GMT</pubDate>
            <description><![CDATA[{/*]]></description>
            <content:encoded><![CDATA[
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">For our new friends<!-- -->:</span><br><br><p><span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> is an Auth0 alternative designed for modern apps and SaaS products. It
offers both <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/logto" target="_blank" rel="noopener noreferrer" class="link_hf7f">Open-source<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>
services to help you quickly launch your identity and management (IAM) system. Enjoy authentication,
authorization, and multi-tenant management <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">all in one<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.<!-- --> </p><p>We recommend starting with a free development tenant on <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. This allows you to explore all the features easily.</p></div></div></div>
<p>In this article, we will go through the steps to quickly build the <!-- -->Okta enterprise SSO<!-- --> sign-in
experience (user authentication) with <a href="https://vuejs.org/" target="_blank" rel="noopener">Vue</a> and <span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>Prerequisites</strong></p>
<ul>
<li class="">A running Logto instance. Check out the <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">introduction page<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> to get started.</li>
<li class="">Basic knowledge of <a href="https://vuejs.org/" target="_blank" rel="noopener">Vue</a>.</li>
<li class="">A usable <!-- -->Okta enterprise SSO<!-- --> account.</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="create-an-application-in-logto">Create an application in Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Lien direct vers Create an application in Logto" title="Lien direct vers Create an application in Logto" translate="no">​</a></h2>
<p>Logto is based on OpenID Connect (OIDC) authentication and OAuth 2.0 authorization. It supports federated identity management across multiple applications, commonly called Single Sign-On (SSO).</p>
<p>To create your <!-- -->Single page app<!-- --> application, simply follow these steps:</p>
<ol>
<li class="">Open the <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. In the "Get started" section, click the "View all" link to open the application frameworks list. Alternatively, you can navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/applications" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console &gt; Applications<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, and click the "Create application" button.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/get-started.png" alt="Get started">
</li>
<li class="">In the opening modal, click the "<!-- -->Single page app<!-- -->" section or filter all the available "<!-- -->Single page app<!-- -->" frameworks using the quick filter checkboxes on the left. Click the "<!-- -->Vue<!-- -->" framework card to start creating your application.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/framework-list.png" alt="Frameworks">
</li>
<li class="">Enter the application name, e.g., "Bookstore," and click "Create application".</li>
</ol>
<p>🎉 Ta-da! You just created your first application in Logto. You'll see a congrats page which includes a detailed integration guide. Follow the guide to see what the experience will be in your application.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="integrate-with-logto">Integrate Vue with Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#integrate-with-logto" class="hash-link" aria-label="Lien direct vers Integrate Vue with Logto" title="Lien direct vers Integrate Vue with Logto" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><ul>
<li class="">Logto Vue SDK is built with the composition API and leveraging the composables, therefore it is only compatible with Vue 3.</li>
<li class="">The tutorial video is available on our <span class="linkWrapper_B4Bt"><a href="https://youtu.be/cAfsQrsGQqA" target="_blank" rel="noopener noreferrer" class="link_hf7f">YouTube channel<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">The full sample project is available on our <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/js/tree/master/packages/vue-sample" target="_blank" rel="noopener noreferrer" class="link_hf7f">SDK repository<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ul></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="installation">Installation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#installation" class="hash-link" aria-label="Lien direct vers Installation" title="Lien direct vers Installation" translate="no">​</a></h3>
<div class="theme-tabs-container tabs-container tabList_q32P"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_DwL7 tabs__item--active">npm</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_DwL7">pnpm</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_DwL7">yarn</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_bR4Y"><div class="language-bash codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-bash codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">npm</span><span class="token plain"> i @logto/vue</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_bR4Y" hidden=""><div class="language-bash codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-bash codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">pnpm</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">add</span><span class="token plain"> @logto/vue</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_bR4Y" hidden=""><div class="language-bash codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-bash codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">yarn</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">add</span><span class="token plain"> @logto/vue</span><br></span></code></pre></div></div></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="init-logtoclient">Init LogtoClient<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#init-logtoclient" class="hash-link" aria-label="Lien direct vers Init LogtoClient" title="Lien direct vers Init LogtoClient" translate="no">​</a></h3>
<p>Import and use <code>createLogto</code> to install Logto plugin:</p>
<div class="language-ts codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">main.ts</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-ts codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> createLogto</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> LogtoConfig </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'@logto/vue'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> createApp </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'vue'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> App </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'./App.vue'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> config</span><span class="token operator">:</span><span class="token plain"> LogtoConfig </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  endpoint</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'&lt;your-logto-endpoint&gt;'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  appId</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'&lt;your-application-id&gt;'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> app </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">createApp</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">App</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">app</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">use</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">createLogto</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> config</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">app</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">mount</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'#app'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uris">Configure redirect URIs<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#configure-redirect-uris" class="hash-link" aria-label="Lien direct vers Configure redirect URIs" title="Lien direct vers Configure redirect URIs" translate="no">​</a></h3>
<p>Before we dive into the details, here's a quick overview of the end-user experience. The sign-in process can be simplified as follows:</p>
<!-- -->
<ol>
<li class="">Your app invokes the sign-in method.</li>
<li class="">The user is redirected to the Logto sign-in page. For native apps, the system browser is opened.</li>
<li class="">The user signs in and is redirected back to your app (configured as the redirect URI).</li>
</ol>
<details class="details_Qsrn details_Jw1Q" data-collapsed="true"><summary><h3 class="anchor anchorTargetStickyNavbar_iJWz" id="regarding-redirect-based-sign-in">Regarding redirect-based sign-in<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Lien direct vers Regarding redirect-based sign-in" title="Lien direct vers Regarding redirect-based sign-in" translate="no">​</a></h3></summary><div><div class="collapsibleContent_brv9"><ol>
<li class="">This authentication process follows the <span class="linkWrapper_B4Bt"><a href="https://openid.net/specs/openid-connect-core-1_0.html" target="_blank" rel="noopener noreferrer" class="link_hf7f">OpenID Connect (OIDC)<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> protocol, and Logto enforces strict security measures to protect user sign-in.</li>
<li class="">If you have multiple apps, you can use the same identity provider (Logto). Once the user signs in to one app, Logto will automatically complete the sign-in process when the user accesses another app.</li>
</ol><p>To learn more about the rationale and benefits of redirect-based sign-in, see <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/concepts/sign-in-experience" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Logto sign-in experience explained<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p></div></div></details>
<hr>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>In the following code snippets, we assume your app is running on <code>http://localhost:3000/</code>.</p></div></div></div>
<!-- -->
<!-- -->
<h4 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uris">Configure redirect URIs<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#configure-redirect-uris" class="hash-link" aria-label="Lien direct vers Configure redirect URIs" title="Lien direct vers Configure redirect URIs" translate="no">​</a></h4>
<p>Switch to the application details page of Logto Console. Add a redirect URI <code>http://localhost:3000/callback</code>.</p>
<img alt="Redirect URI in Logto Console" src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/web-redirect-uri.png" width="600px">
<p>Just like signing in, users should be redirected to Logto for signing out of the shared session. Once finished, it would be great to redirect the user back to your website. For example, add <code>http://localhost:3000/</code> as the post sign-out redirect URI section.</p>
<p>Then click "Save" to save the changes.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="handle-redirect">Handle redirect<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#handle-redirect" class="hash-link" aria-label="Lien direct vers Handle redirect" title="Lien direct vers Handle redirect" translate="no">​</a></h3>
<p>There are still things to do after the user is redirected back to your application from Logto. Let's handle it properly.</p>
<p>First let's create a callback page:</p>
<div class="language-ts codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">views/CallbackView.vue</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-ts codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> useHandleSignInCallback </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'@logto/vue'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> router </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'@/router'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> isLoading </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">useHandleSignInCallback</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">// Do something when finished, e.g. redirect to home page</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<div class="language-html codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-html codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">template</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">&lt;!-- When it's working in progress --&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">v-if</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">isLoading</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain">Redirecting...</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">p</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">template</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><br></span></code></pre></div></div>
<p>Insert the code below in your <code>/callback</code> route which does NOT require authentication:</p>
<div class="language-ts codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">router/index.ts</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-ts codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">// Assuming vue-router</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> router </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">createRouter</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  routes</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      path</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'/callback'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      name</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'callback'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">      component</span><span class="token operator">:</span><span class="token plain"> CallbackView</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-sign-in-and-sign-out">Implement sign-in and sign-out<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#implement-sign-in-and-sign-out" class="hash-link" aria-label="Lien direct vers Implement sign-in and sign-out" title="Lien direct vers Implement sign-in and sign-out" translate="no">​</a></h3>
<p>We provide two composables <code>useHandleSignInCallback()</code> and <code>useLogto()</code> which can help you easily manage the authentication flow.</p>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>Before calling <code>.signIn()</code>, make sure you have correctly configured Redirect URI
in Admin Console.</p></div></div></div>
<div class="language-tsx codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">views/HomeView.vue</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-tsx codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token imports"> useLogto </span><span class="token imports punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'@logto/vue'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> signOut</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> isAuthenticated </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">useLogto</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token function-variable function" style="color:rgb(80, 250, 123)">onClickSignIn</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token arrow operator">=&gt;</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'http://localhost:3000/callback'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">const</span><span class="token plain"> </span><span class="token function-variable function" style="color:rgb(80, 250, 123)">onClickSignOut</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token arrow operator">=&gt;</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">signOut</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgb(255, 121, 198)">'http://localhost:3000'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><br></span></code></pre></div></div>
<div class="language-html codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-html codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">template</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">button</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">v-if</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">!isAuthenticated</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">@click</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">onClickSignIn</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain">Sign In</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">button</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">button</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">v-else</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">@click</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">onClickSignOut</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain">Sign Out</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">button</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">template</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><br></span></code></pre></div></div>
<p>Calling <code>.signOut()</code> will clear all the Logto data in memory and localStorage if they exist.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="checkpoint-test-your-application">Checkpoint: Test your application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Lien direct vers Checkpoint: Test your application" title="Lien direct vers Checkpoint: Test your application" translate="no">​</a></h3>
<p>Now, you can test your application:</p>
<ol>
<li class="">Run your application, you will see the sign-in button.</li>
<li class="">Click the sign-in button, the SDK will init the sign-in process and redirect you to the Logto sign-in page.</li>
<li class="">After you signed in, you will be redirected back to your application and see the sign-out button.</li>
<li class="">Click the sign-out button to clear token storage and sign out.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="add-connector-connector">Add Okta enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#add-connector-connector" class="hash-link" aria-label="Lien direct vers Add Okta enterprise SSO connector" title="Lien direct vers Add Okta enterprise SSO connector" translate="no">​</a></h2>
<p>To simplify access management and gain enterprise-level safeguards for your big clients, connect with <!-- -->Vue<!-- --> as a federated identity provider. The Logto enterprise SSO connector helps you establish this connection in minutes by allowing several parameter inputs.</p>
<p>To add an enterprise SSO connector, simply follow these steps:</p>
<ol>
<li class="">Navigate to <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto console &gt; Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-page.png" alt="SSO page">
<ol start="2">
<li class="">Click "Add enterprise connector" button and choose your SSO provider type. Choose from prebuilt connectors for Microsoft Entra ID (Azure AD), Google Workspace, and Okta, or create a custom SSO connection using the standard OpenID Connect (OIDC) or SAML protocol.</li>
<li class="">Provide a unique name (e.g., SSO sign-in for Acme Company).</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/select-your-sso-provider.png" alt="Select your SSO provider">
<ol start="4">
<li class="">Configure the connection with your IdP in the "Connection" tab. Check the guides above for each connector types.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-connection-settings.png" alt="SSO connection">
<ol start="5">
<li class="">Customize the SSO experience and enterprise’s <strong>email domain</strong> in the "Experience" tab. Users sign in with the SSO-enabled email domain will be redirected to SSO authentication.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-experience-settings.png" alt="SSO experience">
<ol start="6">
<li class="">Save changes.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="set-up-connectorconfigname">Set up OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Lien direct vers Set up OIDC application on Okta admin portal" title="Lien direct vers Set up OIDC application on Okta admin portal" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-okta-admin-portal">Step 1: Create an OIDC application on Okta admin portal<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#step-1-create-an-oidc-application-on-okta-admin-portal" class="hash-link" aria-label="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" title="Lien direct vers Step 1: Create an OIDC application on Okta admin portal" translate="no">​</a></h3>
<ul>
<li class="">Visit the Okta admin portal and sign in as an administrator.</li>
<li class="">Navigate to the <code>Applications</code>/<code>Applications</code> page using the side menu.</li>
<li class="">Click the <code>Create App Integration</code> button to create a new OIDC application.</li>
<li class="">Select the <code>OIDC - OpenID Connect</code> option as the <code>Sign-in method</code>.</li>
<li class="">Select the <code>Web Application</code> option as the <code>Application type</code>.</li>
</ul>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_create_application.webp" alt="Okta create application">
<p>Click the <code>Next</code> button to continue.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-the-application-settings">Step 2: Configure the application settings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Lien direct vers Step 2: Configure the application settings" title="Lien direct vers Step 2: Configure the application settings" translate="no">​</a></h3>
<ol>
<li class="">Provide an <code>App integration name</code>. It will be used as the identifier of your OIDC application.</li>
<li class="">Add a new <code>Sign-in redirect URIs</code> using the Logto SSO connector's callback URL.</li>
</ol>
<p>This is the URI that the Okta will redirect the user's browser after successful authentication. After a user successfully authenticates with the IdP, the IdP redirects the user's browser back to this designated URI along with an authorization code. Logto will complete the authentication process based on the authorization code received from this URI.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_application_settings.webp" alt="Okta application settings">
<ol start="3">
<li class="">Assign users to the application.</li>
</ol>
<p>Based on the <code>Assignments</code> settings, you can choose to assign the application to all users or specific users/groups.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_assign_users.webp" alt="Okta assign users">
<p>Click the <code>Save</code> button to save the application settings.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-set-up-logto-connector-with-the-client-credentials">Step 3: Set up Logto connector with the client credentials<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#step-3-set-up-logto-connector-with-the-client-credentials" class="hash-link" aria-label="Lien direct vers Step 3: Set up Logto connector with the client credentials" title="Lien direct vers Step 3: Set up Logto connector with the client credentials" translate="no">​</a></h3>
<p>After successfully creating the OIDC application, you will be redirected to the application details page.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/okta_client_credentials.webp" alt="Okta client credentials">
<p>Copy the <code>client ID</code> and <code>client secret</code> and fill in the corresponding fields on the Logto SSO connector <code>Connection</code> tab.</p>
<p>Use your Okta domain as the <code>issuer</code>. Example: <code>https://dev-12345678.okta.com</code>. Once you have filled in all the fields, click the <code>Save</code> button to save the connector settings.</p>
<p>If the <code>issuer</code> link you provided is valid, you will see a parsed full list of Okta IdP configurations shown below the <code>issuer</code> field.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-additional-scopes-optional">Step 4: Additional scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Lien direct vers Step 4: Additional scopes (Optional)" title="Lien direct vers Step 4: Additional scopes (Optional)" translate="no">​</a></h3>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their Okta accounts. Requesting additional Okta permissions requires configuration on both sides:</p>
<p><strong>In Okta admin console:</strong></p>
<ol>
<li class="">Navigate to <strong>Applications &gt; Applications</strong> and select your OIDC application.</li>
<li class="">Go to the <strong>Assignments</strong> tab to ensure your app has access to the required users and groups.</li>
<li class="">For custom scopes, navigate to <strong>Security &gt; API &gt; Authorization Servers</strong> and select your authorization server.</li>
<li class="">Add custom scopes if needed:<!-- -->
<ul>
<li class="">Click <strong>Scopes</strong> and then <strong>Add Scope</strong></li>
<li class="">Define scope names like <code>okta.users.read</code> or <code>okta.groups.read</code> for accessing Okta APIs</li>
<li class="">Configure consent requirements for each scope</li>
</ul>
</li>
</ol>
<p>For a complete list of available scopes and their descriptions, please refer to the <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/api/openapi/okta-oauth/guides/overview/#scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta OIDC documentation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>In Logto Okta connector:</strong></p>
<ol>
<li class="">Logto automatically includes <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information. You can leave the <code>Scopes</code> field blank if you only need basic user information.</li>
<li class="">Add <code>offline_access</code> to the <code>Scopes</code> field if you plan to store tokens for persistent API access. This scope enables refresh tokens for long-lived API access.</li>
<li class="">Add additional scopes (separated by spaces) in the <code>Scopes</code> field to request more data from Okta. For example: <code>okta.users.read okta.groups.read</code></li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>If your app requests these scopes to access Okta APIs and perform actions, make sure to enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. See the next section for details.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-store-tokens-to-access-okta-apis-optional">Step 5: Store tokens to access Okta APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#step-5-store-tokens-to-access-okta-apis-optional" class="hash-link" aria-label="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" title="Lien direct vers Step 5: Store tokens to access Okta APIs (Optional)" translate="no">​</a></h3>
<p>If you want to access <span class="linkWrapper_B4Bt"><a href="https://developer.okta.com/docs/guides/request-user-consent/main/#enable-consent-for-scopes" target="_blank" rel="noopener noreferrer" class="link_hf7f">Okta scopes<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> and perform actions with user authorization, Logto needs to get specific scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in your Okta developer console API permissions configuration and Logto Okta connector.</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in Logto Okta connector. Logto will securely store Okta access and refresh tokens in the Secret Vault.</li>
<li class="">To ensure refresh tokens are returned, add the <code>offline_access</code> scope to your Okta application permissions and include it in your Logto Okta connector scopes. This scope allows your application to maintain access to resources for extended periods.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-6-set-email-domains-and-enable-the-sso-connector">Step 6: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#step-6-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Lien direct vers Step 6: Set email domains and enable the SSO connector" title="Lien direct vers Step 6: Set email domains and enable the SSO connector" translate="no">​</a></h3>
<p>Provide the <code>email domains</code> of your organization on Logto's connector <code>SSO experience</code> tab. This will enable the SSO connector as an authentication method for those users.</p>
<p>Users with email addresses in the specified domains will be redirected to use your SSO connector as their only authentication method.</p>
<p>For more details about creating OIDC integration with Okta, please check <span class="linkWrapper_B4Bt"><a href="https://help.okta.com/oie/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm" target="_blank" rel="noopener noreferrer" class="link_hf7f">Create OIDC App Integrations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#save-your-configuration" class="hash-link" aria-label="Lien direct vers Save your configuration" title="Lien direct vers Save your configuration" translate="no">​</a></h3>
<p>Double check you have filled out necessary values in the Logto connector configuration area. Click
"Save and Done" (or "Save changes") and the <!-- -->Okta enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable Okta enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" title="Lien direct vers Enable Okta enterprise SSO connector in Sign-in Experience" translate="no">​</a></h2>
<p>You don’t need to configure enterprise connectors individually, Logto simplifies SSO integration into your applications with just one click.</p>
<ol>
<li class="">Navigate to: <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/sign-in-experience/sign-up-and-sign-in" target="_blank" rel="noopener noreferrer" class="link_hf7f">Console &gt; Sign-in &amp; account &gt; Sign-up and sign-in<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">Enable the "Enterprise SSO" toggle.</li>
<li class="">Save changes.</li>
</ol>
<p>Once enabled, a "Single Sign-On" button will appear on your sign-in page. Enterprise users with SSO-enabled email domains can access your services using their enterprise identity providers (IdPs).</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-email-auto-navigation.png" alt="Auto detect SSO sign-in via email domain">
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-link-button-navigation.png" alt="Navigate to SSO sign-in via manually click link button">
<p>To learn more about the SSO user experience, including SP-initiated SSO and IdP-initiated SSO, refer to User flows: <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="testing-and-validation">Testing and Validation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#testing-and-validation" class="hash-link" aria-label="Lien direct vers Testing and Validation" title="Lien direct vers Testing and Validation" translate="no">​</a></h2>
<p>Return to your <!-- -->Vue<!-- --> app. You should now be able to sign in with <!-- -->Okta enterprise SSO<!-- -->. Enjoy!</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="further-readings">Further readings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-okta-enterprise-sso-sign-in-with-vue-and-logto#further-readings" class="hash-link" aria-label="Lien direct vers Further readings" title="Lien direct vers Further readings" translate="no">​</a></h2>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows" target="_blank" rel="noopener noreferrer" class="link_hf7f">End-user flows<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Logto provides a out-of-the-box authentication flows including MFA and enterprise SSO, along with powerful APIs for flexible implementation of account settings, security verification, and multi-tenant experience.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/authorization" target="_blank" rel="noopener noreferrer" class="link_hf7f">Authorization<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Authorization defines the actions a user can do or resources they can access after being authenticated. Explore how to protect your API for native and single-page applications and implement Role-based Access Control (RBAC).</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/organizations" target="_blank" rel="noopener noreferrer" class="link_hf7f">Organizations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>: Particularly effective in multi-tenant SaaS and B2B apps, the organization feature enable tenant creation, member management, organization-level RBAC, and just-in-time-provisioning.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://blog.logto.io/ciam-101-intro-authn-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Customer IAM series<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> Our serial blog posts about Customer (or Consumer) Identity and Access Management, from 101 to advanced topics and beyond.</p>]]></content:encoded>
            <category>SSO providers</category>
            <category>okta-enterprise-sso</category>
            <category>vue</category>
            <category>js</category>
            <category>SAML authentication</category>
            <category>enterprise login</category>
            <category>SSO login</category>
        </item>
        <item>
            <title><![CDATA[How to build Google Workspace enterprise SSO with Android (Kotlin / Java)]]></title>
            <link>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto</link>
            <guid>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto</guid>
            <pubDate>Fri, 17 Apr 2026 02:54:06 GMT</pubDate>
            <description><![CDATA[{/*]]></description>
            <content:encoded><![CDATA[
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">Pour nos nouveaux amis<!-- -->:</span><br><br><p><span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> est une alternative à Auth0 conçue pour les applications modernes et les produits SaaS. Il
offre des services à la fois <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> et <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/logto" target="_blank" rel="noopener noreferrer" class="link_hf7f">Open-source<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>
pour vous aider à lancer rapidement votre système de gestion des identités et des accès (IAM). Profitez de l'authentification,
de l'autorisation et de la gestion multi-locataires <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">tout-en-un<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.<!-- --> </p><p>Nous recommandons de commencer avec un locataire de développement gratuit sur <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. Cela vous permet d'explorer facilement toutes les fonctionnalités.</p></div></div></div>
<p>Dans cet article, nous allons parcourir les étapes pour construire rapidement l'expérience de connexion <!-- -->Google Workspace enterprise SSO<!-- --> (authentification utilisateur) avec <a href="https://developer.android.com/" target="_blank" rel="noopener">Android (Kotlin / Java)</a> et <span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>Prérequis</strong></p>
<ul>
<li class="">Une instance Logto en cours d'exécution. Consultez la <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/fr/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">page d'introduction<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> pour commencer.</li>
<li class="">Connaissance de base de <a href="https://developer.android.com/" target="_blank" rel="noopener">Android (Kotlin / Java)</a>.</li>
<li class="">Un compte <!-- -->Google Workspace enterprise SSO<!-- --> utilisable.</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="create-an-application-in-logto">Create an application in Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Lien direct vers Create an application in Logto" title="Lien direct vers Create an application in Logto" translate="no">​</a></h2>
<p>Logto est basé sur l'authentification OpenID Connect (OIDC) et l'autorisation OAuth 2.0. Il prend en charge la gestion des identités fédérées à travers plusieurs applications, communément appelée authentification unique (SSO).</p>
<p>Pour créer votre application <!-- -->Native app<!-- -->, suivez simplement ces étapes :</p>
<ol>
<li class="">Ouvrez la <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. Dans la section "Get started", cliquez sur le lien "View all" pour ouvrir la liste des frameworks d'application. Alternativement, vous pouvez naviguer vers <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/applications" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console &gt; Applications<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, et cliquer sur le bouton "Create application".<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/get-started.png" alt="Get started">
</li>
<li class="">Dans la fenêtre modale qui s'ouvre, cliquez sur la section "<!-- -->Native app<!-- -->" ou filtrez tous les frameworks "<!-- -->Native app<!-- -->" disponibles en utilisant les cases à cocher de filtre rapide à gauche. Cliquez sur la carte du framework "<!-- -->Android<!-- -->" pour commencer à créer votre application.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/framework-list.png" alt="Frameworks">
</li>
<li class="">Entrez le nom de l'application, par exemple, "Bookstore", et cliquez sur "Create application".</li>
</ol>
<p>🎉 Ta-da ! Vous venez de créer votre première application dans Logto. Vous verrez une page de félicitations qui inclut un guide d'intégration détaillé. Suivez le guide pour voir quelle sera l'expérience dans votre application.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="integrate-framework-sdk">Integrate Android SDK<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto#integrate-framework-sdk" class="hash-link" aria-label="Lien direct vers Integrate Android SDK" title="Lien direct vers Integrate Android SDK" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><ul>
<li class="">L'exemple est basé sur le <span class="linkWrapper_B4Bt"><a href="https://developer.android.com/reference/android/view/View" target="_blank" rel="noopener noreferrer" class="link_hf7f">système View<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> et le <span class="linkWrapper_B4Bt"><a href="https://developer.android.com/topic/libraries/architecture/viewmodel" target="_blank" rel="noopener noreferrer" class="link_hf7f">modèle View<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, mais les concepts sont les mêmes lors de l'utilisation de <span class="linkWrapper_B4Bt"><a href="https://developer.android.com/jetpack/compose" target="_blank" rel="noopener noreferrer" class="link_hf7f">Jetpack Compose<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">L'exemple est écrit en Kotlin, mais les concepts sont les mêmes pour Java.</li>
<li class="">Les projets d'exemple en <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/kotlin/tree/master/android-sample-kotlin" target="_blank" rel="noopener noreferrer" class="link_hf7f">Kotlin<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> et en <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/kotlin/tree/master/android-sample-java" target="_blank" rel="noopener noreferrer" class="link_hf7f">Java<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> sont disponibles sur notre <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/kotlin" target="_blank" rel="noopener noreferrer" class="link_hf7f">répertoire SDK<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">La vidéo tutorielle est disponible sur notre <span class="linkWrapper_B4Bt"><a href="https://youtu.be/_GSiYqTLnak" target="_blank" rel="noopener noreferrer" class="link_hf7f">chaîne YouTube<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ul></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="installation">Installation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto#installation" class="hash-link" aria-label="Lien direct vers Installation" title="Lien direct vers Installation" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>Le niveau API Android minimal pris en charge par Logto Android SDK est le niveau 24.</p></div></div></div>
<p>Avant d'installer Logto Android SDK, assurez-vous que <code>mavenCentral()</code> est ajouté à votre configuration de dépôt dans le fichier de construction du projet Gradle :</p>
<div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">settings.gradle.kts</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">dependencyResolutionManagement </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  repositories </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token function" style="color:rgb(80, 250, 123)">mavenCentral</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>Ajoutez Logto Android SDK à vos dépendances :</p>
<div class="theme-tabs-container tabs-container tabList_q32P"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_DwL7 tabs__item--active">Kotlin</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_DwL7">Groovy</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_bR4Y"><div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">build.gradle.kts</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">dependencies </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token function" style="color:rgb(80, 250, 123)">implementation</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string-literal singleline string" style="color:rgb(255, 121, 198)">"io.logto.sdk:android:1.1.3"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_bR4Y" hidden=""><div class="language-groovy codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">build.gradle</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-groovy codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">dependencies </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  implementation </span><span class="token string" style="color:rgb(255, 121, 198)">'io.logto.sdk:android:1.1.3'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div></div></div></div>
<p>Étant donné que le SDK nécessite un accès à Internet, vous devez ajouter la permission suivante à votre fichier <code>AndroidManifest.xml</code> :</p>
<div class="language-xml codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">AndroidManifest.xml</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-xml codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token prolog" style="color:rgb(189, 147, 249)">&lt;?xml version="1.0" encoding="utf-8"?&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">manifest</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">xmlns:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">android</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">http://schemas.android.com/apk/res/android</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)">  </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">xmlns:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">tools</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">http://schemas.android.com/tools</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">&lt;!-- ajouter la permission internet --&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">uses-permission</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">android:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">name</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">android.permission.INTERNET</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">/&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">&lt;!-- autres configurations... --&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">manifest</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="init-logtoclient">Init LogtoClient<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto#init-logtoclient" class="hash-link" aria-label="Lien direct vers Init LogtoClient" title="Lien direct vers Init LogtoClient" translate="no">​</a></h3>
<p>Créez un <code>LogtoViewModel.kt</code> et initialisez <code>LogtoClient</code> dans ce modèle de vue :</p>
<div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">LogtoViewModel.kt</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">//...avec d'autres imports</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> io</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">logto</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">sdk</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">android</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">LogtoClient</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> io</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">logto</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">sdk</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">android</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">type</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">LogtoConfig</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">LogtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">application</span><span class="token operator">:</span><span class="token plain"> Application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">:</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">AndroidViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">private</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> logtoConfig </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">LogtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          endpoint </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:rgb(255, 121, 198)">"&lt;votre-point-de-terminaison-logto&gt;"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          appId </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:rgb(255, 121, 198)">"&lt;votre-id-app&gt;"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          scopes </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">null</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          resources </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">null</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          usingPersistStorage </span><span class="token operator">=</span><span class="token plain"> </span><span class="token boolean">true</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">private</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> logtoClient </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">LogtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">logtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">companion</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">object</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> Factory</span><span class="token operator">:</span><span class="token plain"> ViewModelProvider</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Factory </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">object</span><span class="token plain"> </span><span class="token operator">:</span><span class="token plain"> ViewModelProvider</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Factory</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token annotation builtin" style="color:rgb(189, 147, 249)">@Suppress</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string-literal singleline string" style="color:rgb(255, 121, 198)">"UNCHECKED_CAST"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">override</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">fun</span><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">T </span><span class="token operator">:</span><span class="token plain"> ViewModel</span><span class="token operator">&gt;</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">create</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                modelClass</span><span class="token operator">:</span><span class="token plain"> Class</span><span class="token operator">&lt;</span><span class="token plain">T</span><span class="token operator">&gt;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                extras</span><span class="token operator">:</span><span class="token plain"> CreationExtras</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token operator">:</span><span class="token plain"> T </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                </span><span class="token comment" style="color:rgb(98, 114, 164)">// Obtenez l'objet Application à partir des extras</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> application </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">checkNotNull</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">extras</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">APPLICATION_KEY</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">LogtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">as</span><span class="token plain"> T</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>ensuite, créez un <code>LogtoViewModel</code> pour votre <code>MainActivity.kt</code> :</p>
<div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">MainActivity.kt</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">//...avec d'autres imports</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> MainActivity </span><span class="token operator">:</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">AppCompatActivity</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">private</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> logtoViewModel</span><span class="token operator">:</span><span class="token plain"> LogtoViewModel </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">by</span><span class="token plain"> viewModels </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> LogtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Factory </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">//...autres codes</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uri">Configurer l'URI de redirection<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto#configure-redirect-uri" class="hash-link" aria-label="Lien direct vers Configurer l'URI de redirection" title="Lien direct vers Configurer l'URI de redirection" translate="no">​</a></h3>
<p>Passons à la page des détails de l'application de Logto Console. Ajoutez une URI de redirection <code>io.logto.android://io.logto.sample/callback</code> et cliquez sur "Enregistrer les modifications".</p>
<img alt="URI de redirection dans Logto Console" src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/android-redirect-uri.png" width="600px">
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-sign-in-and-sign-out">Implémenter la connexion et la déconnexion<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto#implement-sign-in-and-sign-out" class="hash-link" aria-label="Lien direct vers Implémenter la connexion et la déconnexion" title="Lien direct vers Implémenter la connexion et la déconnexion" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>Avant d'appeler <code>logtoClient.signIn</code>, assurez-vous d'avoir correctement configuré l'URI de redirection dans la console d'administration.</p></div></div></div>
<p>Vous pouvez utiliser <code>logtoClient.signIn</code> pour connecter l'utilisateur et <code>logtoClient.signOut</code> pour déconnecter l'utilisateur.</p>
<p>Par exemple, dans une application Android :</p>
<div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">LogtoModelView.kt</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">//...avec d'autres imports</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">LogtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">application</span><span class="token operator">:</span><span class="token plain"> Application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">:</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">AndroidViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">// ...autres codes</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">// Ajouter une donnée en direct pour observer le statut d'authentification</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">private</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> _authenticated </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">MutableLiveData</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">isAuthenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> authenticated</span><span class="token operator">:</span><span class="token plain"> LiveData</span><span class="token operator">&lt;</span><span class="token plain">Boolean</span><span class="token operator">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">get</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> _authenticated</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">fun</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">context</span><span class="token operator">:</span><span class="token plain"> Activity</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:rgb(255, 121, 198)">"io.logto.android://io.logto.sample/callback"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> logtoException </span><span class="token operator">-&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            logtoException</span><span class="token operator">?</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">let</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">println</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">it</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token comment" style="color:rgb(98, 114, 164)">// Mettre à jour la donnée en direct</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            _authenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">postValue</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">isAuthenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">fun</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">signOut</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">signOut</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> logtoException </span><span class="token operator">-&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            logtoException</span><span class="token operator">?</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">let</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">println</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">it</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token comment" style="color:rgb(98, 114, 164)">// Mettre à jour la donnée en direct</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            _authenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">postValue</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">isAuthenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>Ensuite, appelez les méthodes <code>signIn</code> et <code>signOut</code> dans votre activité :</p>
<div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">MainActivity.kt</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> MainActivity </span><span class="token operator">:</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">AppCompatActivity</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">override</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">fun</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">onCreate</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">savedInstanceState</span><span class="token operator">:</span><span class="token plain"> Bundle</span><span class="token operator">?</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token comment" style="color:rgb(98, 114, 164)">//...autres codes</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token comment" style="color:rgb(98, 114, 164)">// Supposons que vous ayez un bouton avec l'identifiant "sign_in_button" dans votre mise en page</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> signInButton </span><span class="token operator">=</span><span class="token plain"> findViewById</span><span class="token operator">&lt;</span><span class="token plain">Button</span><span class="token operator">&gt;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">R</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">id</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">sign_in_button</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        signInButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">setOnClickListener</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            logtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">this</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token comment" style="color:rgb(98, 114, 164)">// Supposons que vous ayez un bouton avec l'identifiant "sign_out_button" dans votre mise en page</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> signOutButton </span><span class="token operator">=</span><span class="token plain"> findViewById</span><span class="token operator">&lt;</span><span class="token plain">Button</span><span class="token operator">&gt;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">R</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">id</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">sign_out_button</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        signOutButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">setOnClickListener</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">logtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">authenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">// Vérifiez si l'utilisateur est authentifié</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                logtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">signOut</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token comment" style="color:rgb(98, 114, 164)">// Observez le statut d'authentification pour mettre à jour l'interface utilisateur</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        logtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">authenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">observe</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">this</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> authenticated </span><span class="token operator">-&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">authenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                </span><span class="token comment" style="color:rgb(98, 114, 164)">// L'utilisateur est authentifié</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                signInButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">visibility </span><span class="token operator">=</span><span class="token plain"> View</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">GONE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                signOutButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">visibility </span><span class="token operator">=</span><span class="token plain"> View</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">VISIBLE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">else</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                </span><span class="token comment" style="color:rgb(98, 114, 164)">// L'utilisateur n'est pas authentifié</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                signInButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">visibility </span><span class="token operator">=</span><span class="token plain"> View</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">VISIBLE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                signOutButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">visibility </span><span class="token operator">=</span><span class="token plain"> View</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">GONE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="checkpoint-test-your-application">Point de contrôle : Testez votre application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Lien direct vers Point de contrôle : Testez votre application" title="Lien direct vers Point de contrôle : Testez votre application" translate="no">​</a></h3>
<p>Maintenant, vous pouvez tester votre application :</p>
<ol>
<li class="">Exécutez votre application, vous verrez le bouton de connexion.</li>
<li class="">Cliquez sur le bouton de connexion, le SDK initiera le processus de connexion et vous redirigera vers la page de connexion Logto.</li>
<li class="">Après vous être connecté, vous serez redirigé vers votre application et verrez le bouton de déconnexion.</li>
<li class="">Cliquez sur le bouton de déconnexion pour effacer le stockage des jetons et vous déconnecter.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="add-connector-connector">Add Google Workspace enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto#add-connector-connector" class="hash-link" aria-label="Lien direct vers Add Google Workspace enterprise SSO connector" title="Lien direct vers Add Google Workspace enterprise SSO connector" translate="no">​</a></h2>
<p>Pour simplifier la gestion des accès et obtenir des garanties de niveau entreprise pour vos grands clients, connectez-vous avec <!-- -->Android<!-- --> en tant que fournisseur d'identité fédéré. Le connecteur SSO d’entreprise Logto vous aide à établir cette connexion en quelques minutes en permettant l'entrée de plusieurs paramètres.</p>
<p>Pour ajouter un connecteur SSO d’entreprise, suivez simplement ces étapes :</p>
<ol>
<li class="">Accédez à <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto console &gt; Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-page.png" alt="Page SSO">
<ol start="2">
<li class="">Cliquez sur le bouton "Ajouter un connecteur d’entreprise" et choisissez votre type de fournisseur SSO. Choisissez parmi les connecteurs préconstruits pour Microsoft Entra ID (Azure AD), Google Workspace et Okta, ou créez une connexion SSO personnalisée en utilisant le protocole standard OpenID Connect (OIDC) ou SAML.</li>
<li class="">Fournissez un nom unique (par exemple, Connexion SSO pour Acme Company).</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/select-your-sso-provider.png" alt="Sélectionnez votre fournisseur SSO">
<ol start="4">
<li class="">Configurez la connexion avec votre IdP dans l'onglet "Connexion". Consultez les guides ci-dessus pour chaque type de connecteur.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-connection-settings.png" alt="Connexion SSO">
<ol start="5">
<li class="">Personnalisez l'expérience SSO et le <strong>domaine de messagerie</strong> de l’entreprise dans l'onglet "Expérience". Les utilisateurs se connectant avec le domaine de messagerie activé pour le SSO seront redirigés vers l'authentification SSO.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-experience-settings.png" alt="Expérience SSO">
<ol start="6">
<li class="">Enregistrez les modifications.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="set-up-connectorconfigname">Set up Google Cloud Platform<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Lien direct vers Set up Google Cloud Platform" title="Lien direct vers Set up Google Cloud Platform" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-a-new-project-on-google-cloud-platform">Étape 1 : Créer un nouveau projet sur Google Cloud Platform<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto#step-1-create-a-new-project-on-google-cloud-platform" class="hash-link" aria-label="Lien direct vers Étape 1 : Créer un nouveau projet sur Google Cloud Platform" title="Lien direct vers Étape 1 : Créer un nouveau projet sur Google Cloud Platform" translate="no">​</a></h3>
<p>Avant de pouvoir utiliser Google Workspace comme fournisseur d'authentification, vous devez configurer un projet dans la <span class="linkWrapper_B4Bt"><a href="https://console.developers.google.com/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Google API Console<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> pour obtenir des identifiants OAuth 2.0. Si vous avez déjà un projet, vous pouvez passer cette étape. Sinon, créez un nouveau projet sous votre organisation Google.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-config-the-consent-screen-for-your-application">Étape 2 : Configurer l’écran de consentement pour votre application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto#step-2-config-the-consent-screen-for-your-application" class="hash-link" aria-label="Lien direct vers Étape 2 : Configurer l’écran de consentement pour votre application" title="Lien direct vers Étape 2 : Configurer l’écran de consentement pour votre application" translate="no">​</a></h3>
<p>Pour créer de nouvelles informations d'identification OIDC, vous devez configurer l'écran de consentement pour votre application.</p>
<ol>
<li class="">Accédez à la page de l'<span class="linkWrapper_B4Bt"><a href="https://console.cloud.google.com/apis/credentials/consent" target="_blank" rel="noopener noreferrer" class="link_hf7f">écran de consentement OAuth<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> et sélectionnez le type d'utilisateur <code>Interne</code>. Cela rendra l'application OAuth disponible uniquement pour les utilisateurs au sein de votre organisation.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/google_workspace_consent_screen_user_type.webp" alt="Type d'utilisateur de l'écran de consentement Google Workspace">
<ol start="2">
<li class="">Remplissez les paramètres de l'<code>Écran de consentement</code> en suivant les instructions sur la page. Vous devez fournir les informations minimales suivantes :</li>
</ol>
<ul>
<li class=""><strong>Nom de l'application</strong> : Le nom de votre application. Il sera affiché sur l'écran de consentement.</li>
<li class=""><strong>Email de support</strong> : L'email de support de votre application. Il sera affiché sur l'écran de consentement.</li>
</ul>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/google_workspace_consent_screen_settings.webp" alt="Paramètres de l'écran de consentement Google Workspace">
<ol start="3">
<li class="">Définissez les <code>Portées</code> pour votre application. Afin de récupérer correctement les informations d'identité et l'adresse e-mail de l'utilisateur depuis le fournisseur d’identité (IdP), les connecteurs SSO de Logto doivent accorder les portées suivantes depuis le IdP :</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/google_workspace_consent_screen_scopes.webp" alt="Portées de l'écran de consentement Google Workspace">
<ul>
<li class=""><strong>openid</strong> : Cette portée est requise pour l'authentification OIDC. Elle est utilisée pour récupérer le jeton d’identifiant et accéder au point de terminaison userInfo du IdP.</li>
<li class=""><strong>profile</strong> : Cette portée est requise pour accéder aux informations de profil de base de l'utilisateur.</li>
<li class=""><strong>email</strong> : Cette portée est requise pour accéder à l'adresse e-mail de l'utilisateur.</li>
</ul>
<p>Cliquez sur le bouton <code>Enregistrer</code> pour sauvegarder les paramètres de l'écran de consentement.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-create-a-new-oauth-credential">Étape 3 : Créer de nouvelles informations d’identification OAuth<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto#step-3-create-a-new-oauth-credential" class="hash-link" aria-label="Lien direct vers Étape 3 : Créer de nouvelles informations d’identification OAuth" title="Lien direct vers Étape 3 : Créer de nouvelles informations d’identification OAuth" translate="no">​</a></h3>
<p>Accédez à la page <span class="linkWrapper_B4Bt"><a href="https://console.cloud.google.com/apis/credentials" target="_blank" rel="noopener noreferrer" class="link_hf7f">Credentials<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> et cliquez sur le bouton <code>Create Credentials</code>. Sélectionnez l'option <code>OAuth client ID</code> dans le menu déroulant pour créer une nouvelle référence OAuth pour votre application.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/google_workspace_create_credentials.webp" alt="Google Workspace create credentials">
<p>Continuez à configurer la référence OAuth en remplissant les informations suivantes :</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/google_workspace_credentials_config.webp" alt="Google Workspace credentials config">
<ol>
<li class="">Sélectionnez <code>Web application</code> comme type d'application.</li>
<li class="">Remplissez le <code>Name</code> de votre application cliente, par exemple <code>Logto SSO Connector</code>. Cela vous aidera à identifier les références à l'avenir.</li>
<li class="">Remplissez les <code>Authorized redirect URIs</code> avec l'URI de rappel Logto. C'est l'URI vers lequel Google redirigera le navigateur de l'utilisateur après une authentification réussie. Après qu'un utilisateur s'est authentifié avec succès auprès du fournisseur d’identité (IdP), l'IdP redirige le navigateur de l'utilisateur vers cet URI désigné avec un code d'autorisation. Logto complétera le processus d'authentification basé sur le code d'autorisation reçu de cet URI.</li>
<li class="">Remplissez les <code>Authorized JavaScript origins</code> avec l'origine de l'URI de rappel Logto. Cela garantit que seule votre application Logto peut envoyer des requêtes au serveur OAuth de Google.</li>
<li class="">Cliquez sur le bouton <code>Create</code> pour créer la référence OAuth.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-set-up-logto-connector-with-the-client-credentials">Étape 4 : Configurer le connecteur Logto avec les identifiants client<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto#step-4-set-up-logto-connector-with-the-client-credentials" class="hash-link" aria-label="Lien direct vers Étape 4 : Configurer le connecteur Logto avec les identifiants client" title="Lien direct vers Étape 4 : Configurer le connecteur Logto avec les identifiants client" translate="no">​</a></h3>
<p>Après avoir créé avec succès l'identifiant OAuth, vous recevrez une fenêtre modale avec l'ID client et le secret client.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/google_workspace_create_credentials.webp" alt="Google Workspace create credentials">
<p>Copiez l'<code>ID client</code> et le <code>secret client</code> et remplissez les champs correspondants dans l'onglet <code>Connection</code> du connecteur SSO de Logto.</p>
<p>Vous avez maintenant configuré avec succès un connecteur SSO Google Workspace sur Logto.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-additional-scopes-optional">Étape 5 : Portées supplémentaires (Optionnel)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto#step-5-additional-scopes-optional" class="hash-link" aria-label="Lien direct vers Étape 5 : Portées supplémentaires (Optionnel)" title="Lien direct vers Étape 5 : Portées supplémentaires (Optionnel)" translate="no">​</a></h3>
<p>Les portées (Scopes) définissent les permissions que votre application demande aux utilisateurs et contrôlent à quelles données votre application peut accéder dans leurs comptes Google Workspace. La demande de permissions Google nécessite une configuration des deux côtés :</p>
<p><strong>Dans la Google Cloud Console :</strong></p>
<ol>
<li class="">Accédez à <strong>APIs &amp; Services &gt; Écran de consentement OAuth &gt; Portées (Scopes)</strong>.</li>
<li class="">Cliquez sur <strong>Ajouter ou supprimer des portées</strong> et sélectionnez uniquement les portées dont votre application a besoin :<!-- -->
<ul>
<li class="">Authentification (obligatoire) :<!-- -->
<ul>
<li class=""><code>https://www.googleapis.com/auth/userinfo.email</code></li>
<li class=""><code>https://www.googleapis.com/auth/userinfo.profile</code></li>
<li class=""><code>openid</code></li>
</ul>
</li>
<li class="">Accès à l’API (optionnel) : Ajoutez toutes les portées supplémentaires nécessaires pour votre application (par exemple, Drive, Calendar, YouTube). Parcourez la <span class="linkWrapper_B4Bt"><a href="https://console.cloud.google.com/apis/library" target="_blank" rel="noopener noreferrer" class="link_hf7f">bibliothèque d’API Google<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> pour trouver les services disponibles. Si votre application a besoin d’accéder à des API Google au-delà des permissions de base, activez d’abord les API spécifiques que votre application utilisera (par exemple, Google Drive API, Gmail API, Calendar API) dans la bibliothèque d’API Google.</li>
</ul>
</li>
<li class="">Cliquez sur <strong>Mettre à jour</strong> pour confirmer la sélection.</li>
<li class="">Cliquez sur <strong>Enregistrer et continuer</strong> pour appliquer les modifications.</li>
</ol>
<p><strong>Dans le connecteur Logto Google Workspace :</strong></p>
<ol>
<li class="">Logto inclut automatiquement les portées <code>openid</code>, <code>profile</code> et <code>email</code> pour récupérer les informations d'identité de base de l'utilisateur. Vous pouvez laisser le champ <code>Scopes</code> vide si vous n'avez besoin que des informations de base sur l'utilisateur.</li>
<li class="">Ajoutez des portées supplémentaires (séparées par des espaces) dans le champ <code>Scopes</code> pour demander plus de données à Google. Utilisez les URLs complètes des portées, par exemple : <code>https://www.googleapis.com/auth/calendar.readonly</code></li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>Si votre application demande ces portées pour accéder à l’API Google et effectuer des actions, assurez-vous d’activer <strong>Stocker les jetons pour un accès API persistant</strong> dans le connecteur Logto Google. Voir la section suivante pour plus de détails.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-6-store-tokens-to-access-google-apis-optional">Étape 6 : Stocker les jetons pour accéder aux API Google (Optionnel)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto#step-6-store-tokens-to-access-google-apis-optional" class="hash-link" aria-label="Lien direct vers Étape 6 : Stocker les jetons pour accéder aux API Google (Optionnel)" title="Lien direct vers Étape 6 : Stocker les jetons pour accéder aux API Google (Optionnel)" translate="no">​</a></h3>
<p>Si vous souhaitez accéder aux <span class="linkWrapper_B4Bt"><a href="https://console.cloud.google.com/apis/library" target="_blank" rel="noopener noreferrer" class="link_hf7f">API Google<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> et effectuer des actions avec l'autorisation de l'utilisateur, Logto doit obtenir des portées API spécifiques et stocker les jetons.</p>
<ol>
<li class="">Ajoutez les portées requises dans la configuration de l'écran de consentement OAuth de votre Google Cloud Console et dans le connecteur Google de Logto.</li>
<li class="">Activez <strong>Stocker les jetons pour un accès API persistant</strong> dans le connecteur Google de Logto. Logto stockera de manière sécurisée les jetons d’accès Google et les jetons de rafraîchissement dans le Secret Vault.</li>
<li class="">Pour garantir que les jetons de rafraîchissement sont renvoyés, configurez votre connecteur Google Logto pour activer <strong>l’accès hors ligne</strong>.</li>
</ol>
<div class="theme-admonition theme-admonition-warning admonition_Gfwi alert alert--warning"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">attention<!-- -->:</span><p>Vous n'avez pas besoin d’ajouter <code>offline_access</code> dans le champ <code>Scope</code> de Logto — le faire peut entraîner une erreur. Google utilise automatiquement <code>access_type=offline</code> lorsque l’accès hors ligne est activé.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-7-set-email-domains-and-enable-the-sso-connector">Étape 7 : Définir les domaines e-mail et activer le connecteur SSO<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto#step-7-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Lien direct vers Étape 7 : Définir les domaines e-mail et activer le connecteur SSO" title="Lien direct vers Étape 7 : Définir les domaines e-mail et activer le connecteur SSO" translate="no">​</a></h3>
<p>Fournissez les <code>domaines e-mail</code> de votre organisation dans l’onglet <code>Expérience SSO</code> du connecteur Logto. Cela activera le connecteur SSO comme méthode d’authentification pour ces utilisateurs.</p>
<p>Les utilisateurs ayant des adresses e-mail dans les domaines spécifiés seront redirigés pour utiliser votre connecteur SSO comme seule méthode d’authentification.</p>
<p>Pour plus d’informations sur le connecteur Google Workspace SSO, veuillez consulter <span class="linkWrapper_B4Bt"><a href="https://developers.google.com/identity/openid-connect/openid-connect" target="_blank" rel="noopener noreferrer" class="link_hf7f">Google OpenID Connector<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto#save-your-configuration" class="hash-link" aria-label="Lien direct vers Save your configuration" title="Lien direct vers Save your configuration" translate="no">​</a></h3>
<p>Vérifiez que vous avez rempli les valeurs nécessaires dans la zone de configuration du connecteur Logto. Cliquez sur "Enregistrer et terminer" (ou "Enregistrer les modifications") et le connecteur <!-- -->Google Workspace enterprise SSO<!-- --> devrait être disponible maintenant.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable Google Workspace enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Lien direct vers Enable Google Workspace enterprise SSO connector in Sign-in Experience" title="Lien direct vers Enable Google Workspace enterprise SSO connector in Sign-in Experience" translate="no">​</a></h2>
<p>Vous n'avez pas besoin de configurer individuellement les connecteurs d'entreprise, Logto simplifie l'intégration du SSO dans vos applications en un seul clic.</p>
<ol>
<li class="">Accédez à : <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/sign-in-experience/sign-up-and-sign-in" target="_blank" rel="noopener noreferrer" class="link_hf7f">Console &gt; Expérience de connexion &gt; Inscription et connexion<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">Activez le bouton "SSO d’entreprise".</li>
<li class="">Enregistrez les modifications.</li>
</ol>
<p>Une fois activé, un bouton "Authentification unique (SSO)" apparaîtra sur votre page de connexion. Les utilisateurs d'entreprise avec des domaines de messagerie compatibles SSO peuvent accéder à vos services en utilisant leurs fournisseurs d’identité d’entreprise (IdPs).</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-email-auto-navigation.png" alt="Détection automatique de la connexion SSO via le domaine de messagerie">
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-link-button-navigation.png" alt="Naviguer vers la connexion SSO en cliquant manuellement sur le bouton de lien">
<p>Pour en savoir plus sur l'expérience utilisateur SSO, y compris le SSO initié par le SP et le SSO initié par l'IdP, consultez les flux utilisateur : <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>SSO d’entreprise<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="testing-and-validation">Testing and Validation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto#testing-and-validation" class="hash-link" aria-label="Lien direct vers Testing and Validation" title="Lien direct vers Testing and Validation" translate="no">​</a></h2>
<p>Retournez à votre application <!-- -->Android (Kotlin / Java)<!-- -->. Vous devriez maintenant pouvoir vous connecter avec <!-- -->Google Workspace enterprise SSO<!-- -->. Profitez-en !</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="further-readings">Further readings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-google-workspace-enterprise-sso-sign-in-with-android-and-logto#further-readings" class="hash-link" aria-label="Lien direct vers Further readings" title="Lien direct vers Further readings" translate="no">​</a></h2>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows" target="_blank" rel="noopener noreferrer" class="link_hf7f">Flux des utilisateurs finaux<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> : Logto fournit des flux d'authentification prêts à l'emploi, y compris l'authentification multi-facteurs (MFA) et le SSO d’entreprise, ainsi que des API puissantes pour une mise en œuvre flexible des paramètres de compte, de la vérification de sécurité et de l'expérience multi-locataire.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/authorization" target="_blank" rel="noopener noreferrer" class="link_hf7f">Autorisation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> : L'autorisation définit les actions qu'un utilisateur peut effectuer ou les ressources auxquelles il peut accéder après avoir été authentifié. Découvrez comment protéger votre API pour les applications natives et monopages et mettre en œuvre le contrôle d’accès basé sur les rôles (RBAC).</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/organizations" target="_blank" rel="noopener noreferrer" class="link_hf7f">Organisations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> : Particulièrement efficace dans les applications SaaS multi-locataires et B2B, la fonctionnalité d'organisation permet la création de locataires, la gestion des membres, le RBAC au niveau de l'organisation et l'approvisionnement juste-à-temps.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://blog.logto.io/ciam-101-intro-authn-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Série IAM client<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> : Nos articles de blog en série sur la gestion des identités et des accès des clients (ou consommateurs), des sujets de base aux sujets avancés et au-delà.</p>]]></content:encoded>
            <category>SSO providers</category>
            <category>google-workspace-enterprise-sso</category>
            <category>android</category>
            <category>kotlin/java</category>
            <category>SAML authentication</category>
            <category>enterprise login</category>
            <category>SSO login</category>
        </item>
        <item>
            <title><![CDATA[How to build Microsoft Entra ID OIDC enterprise SSO with Android (Kotlin / Java)]]></title>
            <link>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-oidc-enterprise-sso-sign-in-with-android-and-logto</link>
            <guid>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-oidc-enterprise-sso-sign-in-with-android-and-logto</guid>
            <pubDate>Fri, 17 Apr 2026 02:54:06 GMT</pubDate>
            <description><![CDATA[{/*]]></description>
            <content:encoded><![CDATA[
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">Pour nos nouveaux amis<!-- -->:</span><br><br><p><span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> est une alternative à Auth0 conçue pour les applications modernes et les produits SaaS. Il
offre des services à la fois <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> et <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/logto" target="_blank" rel="noopener noreferrer" class="link_hf7f">Open-source<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>
pour vous aider à lancer rapidement votre système de gestion des identités et des accès (IAM). Profitez de l'authentification,
de l'autorisation et de la gestion multi-locataires <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">tout-en-un<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.<!-- --> </p><p>Nous recommandons de commencer avec un locataire de développement gratuit sur <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. Cela vous permet d'explorer facilement toutes les fonctionnalités.</p></div></div></div>
<p>Dans cet article, nous allons parcourir les étapes pour construire rapidement l'expérience de connexion <!-- -->Microsoft Entra ID OIDC enterprise SSO<!-- --> (authentification utilisateur) avec <a href="https://developer.android.com/" target="_blank" rel="noopener">Android (Kotlin / Java)</a> et <span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>Prérequis</strong></p>
<ul>
<li class="">Une instance Logto en cours d'exécution. Consultez la <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/fr/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">page d'introduction<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> pour commencer.</li>
<li class="">Connaissance de base de <a href="https://developer.android.com/" target="_blank" rel="noopener">Android (Kotlin / Java)</a>.</li>
<li class="">Un compte <!-- -->Microsoft Entra ID OIDC enterprise SSO<!-- --> utilisable.</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="create-an-application-in-logto">Create an application in Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-oidc-enterprise-sso-sign-in-with-android-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Lien direct vers Create an application in Logto" title="Lien direct vers Create an application in Logto" translate="no">​</a></h2>
<p>Logto est basé sur l'authentification OpenID Connect (OIDC) et l'autorisation OAuth 2.0. Il prend en charge la gestion des identités fédérées à travers plusieurs applications, communément appelée authentification unique (SSO).</p>
<p>Pour créer votre application <!-- -->Native app<!-- -->, suivez simplement ces étapes :</p>
<ol>
<li class="">Ouvrez la <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. Dans la section "Get started", cliquez sur le lien "View all" pour ouvrir la liste des frameworks d'application. Alternativement, vous pouvez naviguer vers <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/applications" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console &gt; Applications<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, et cliquer sur le bouton "Create application".<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/get-started.png" alt="Get started">
</li>
<li class="">Dans la fenêtre modale qui s'ouvre, cliquez sur la section "<!-- -->Native app<!-- -->" ou filtrez tous les frameworks "<!-- -->Native app<!-- -->" disponibles en utilisant les cases à cocher de filtre rapide à gauche. Cliquez sur la carte du framework "<!-- -->Android<!-- -->" pour commencer à créer votre application.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/framework-list.png" alt="Frameworks">
</li>
<li class="">Entrez le nom de l'application, par exemple, "Bookstore", et cliquez sur "Create application".</li>
</ol>
<p>🎉 Ta-da ! Vous venez de créer votre première application dans Logto. Vous verrez une page de félicitations qui inclut un guide d'intégration détaillé. Suivez le guide pour voir quelle sera l'expérience dans votre application.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="integrate-framework-sdk">Integrate Android SDK<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-oidc-enterprise-sso-sign-in-with-android-and-logto#integrate-framework-sdk" class="hash-link" aria-label="Lien direct vers Integrate Android SDK" title="Lien direct vers Integrate Android SDK" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><ul>
<li class="">L'exemple est basé sur le <span class="linkWrapper_B4Bt"><a href="https://developer.android.com/reference/android/view/View" target="_blank" rel="noopener noreferrer" class="link_hf7f">système View<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> et le <span class="linkWrapper_B4Bt"><a href="https://developer.android.com/topic/libraries/architecture/viewmodel" target="_blank" rel="noopener noreferrer" class="link_hf7f">modèle View<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, mais les concepts sont les mêmes lors de l'utilisation de <span class="linkWrapper_B4Bt"><a href="https://developer.android.com/jetpack/compose" target="_blank" rel="noopener noreferrer" class="link_hf7f">Jetpack Compose<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">L'exemple est écrit en Kotlin, mais les concepts sont les mêmes pour Java.</li>
<li class="">Les projets d'exemple en <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/kotlin/tree/master/android-sample-kotlin" target="_blank" rel="noopener noreferrer" class="link_hf7f">Kotlin<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> et en <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/kotlin/tree/master/android-sample-java" target="_blank" rel="noopener noreferrer" class="link_hf7f">Java<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> sont disponibles sur notre <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/kotlin" target="_blank" rel="noopener noreferrer" class="link_hf7f">répertoire SDK<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">La vidéo tutorielle est disponible sur notre <span class="linkWrapper_B4Bt"><a href="https://youtu.be/_GSiYqTLnak" target="_blank" rel="noopener noreferrer" class="link_hf7f">chaîne YouTube<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ul></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="installation">Installation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-oidc-enterprise-sso-sign-in-with-android-and-logto#installation" class="hash-link" aria-label="Lien direct vers Installation" title="Lien direct vers Installation" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>Le niveau API Android minimal pris en charge par Logto Android SDK est le niveau 24.</p></div></div></div>
<p>Avant d'installer Logto Android SDK, assurez-vous que <code>mavenCentral()</code> est ajouté à votre configuration de dépôt dans le fichier de construction du projet Gradle :</p>
<div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">settings.gradle.kts</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">dependencyResolutionManagement </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  repositories </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token function" style="color:rgb(80, 250, 123)">mavenCentral</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>Ajoutez Logto Android SDK à vos dépendances :</p>
<div class="theme-tabs-container tabs-container tabList_q32P"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_DwL7 tabs__item--active">Kotlin</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_DwL7">Groovy</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_bR4Y"><div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">build.gradle.kts</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">dependencies </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token function" style="color:rgb(80, 250, 123)">implementation</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string-literal singleline string" style="color:rgb(255, 121, 198)">"io.logto.sdk:android:1.1.3"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_bR4Y" hidden=""><div class="language-groovy codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">build.gradle</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-groovy codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">dependencies </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  implementation </span><span class="token string" style="color:rgb(255, 121, 198)">'io.logto.sdk:android:1.1.3'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div></div></div></div>
<p>Étant donné que le SDK nécessite un accès à Internet, vous devez ajouter la permission suivante à votre fichier <code>AndroidManifest.xml</code> :</p>
<div class="language-xml codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">AndroidManifest.xml</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-xml codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token prolog" style="color:rgb(189, 147, 249)">&lt;?xml version="1.0" encoding="utf-8"?&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">manifest</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">xmlns:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">android</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">http://schemas.android.com/apk/res/android</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)">  </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">xmlns:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">tools</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">http://schemas.android.com/tools</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">&lt;!-- ajouter la permission internet --&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">uses-permission</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">android:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">name</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">android.permission.INTERNET</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">/&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">&lt;!-- autres configurations... --&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">manifest</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="init-logtoclient">Init LogtoClient<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-oidc-enterprise-sso-sign-in-with-android-and-logto#init-logtoclient" class="hash-link" aria-label="Lien direct vers Init LogtoClient" title="Lien direct vers Init LogtoClient" translate="no">​</a></h3>
<p>Créez un <code>LogtoViewModel.kt</code> et initialisez <code>LogtoClient</code> dans ce modèle de vue :</p>
<div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">LogtoViewModel.kt</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">//...avec d'autres imports</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> io</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">logto</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">sdk</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">android</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">LogtoClient</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> io</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">logto</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">sdk</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">android</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">type</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">LogtoConfig</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">LogtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">application</span><span class="token operator">:</span><span class="token plain"> Application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">:</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">AndroidViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">private</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> logtoConfig </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">LogtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          endpoint </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:rgb(255, 121, 198)">"&lt;votre-point-de-terminaison-logto&gt;"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          appId </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:rgb(255, 121, 198)">"&lt;votre-id-app&gt;"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          scopes </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">null</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          resources </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">null</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          usingPersistStorage </span><span class="token operator">=</span><span class="token plain"> </span><span class="token boolean">true</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">private</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> logtoClient </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">LogtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">logtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">companion</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">object</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> Factory</span><span class="token operator">:</span><span class="token plain"> ViewModelProvider</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Factory </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">object</span><span class="token plain"> </span><span class="token operator">:</span><span class="token plain"> ViewModelProvider</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Factory</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token annotation builtin" style="color:rgb(189, 147, 249)">@Suppress</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string-literal singleline string" style="color:rgb(255, 121, 198)">"UNCHECKED_CAST"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">override</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">fun</span><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">T </span><span class="token operator">:</span><span class="token plain"> ViewModel</span><span class="token operator">&gt;</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">create</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                modelClass</span><span class="token operator">:</span><span class="token plain"> Class</span><span class="token operator">&lt;</span><span class="token plain">T</span><span class="token operator">&gt;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                extras</span><span class="token operator">:</span><span class="token plain"> CreationExtras</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token operator">:</span><span class="token plain"> T </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                </span><span class="token comment" style="color:rgb(98, 114, 164)">// Obtenez l'objet Application à partir des extras</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> application </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">checkNotNull</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">extras</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">APPLICATION_KEY</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">LogtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">as</span><span class="token plain"> T</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>ensuite, créez un <code>LogtoViewModel</code> pour votre <code>MainActivity.kt</code> :</p>
<div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">MainActivity.kt</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">//...avec d'autres imports</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> MainActivity </span><span class="token operator">:</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">AppCompatActivity</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">private</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> logtoViewModel</span><span class="token operator">:</span><span class="token plain"> LogtoViewModel </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">by</span><span class="token plain"> viewModels </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> LogtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Factory </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">//...autres codes</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uri">Configurer l'URI de redirection<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-oidc-enterprise-sso-sign-in-with-android-and-logto#configure-redirect-uri" class="hash-link" aria-label="Lien direct vers Configurer l'URI de redirection" title="Lien direct vers Configurer l'URI de redirection" translate="no">​</a></h3>
<p>Passons à la page des détails de l'application de Logto Console. Ajoutez une URI de redirection <code>io.logto.android://io.logto.sample/callback</code> et cliquez sur "Enregistrer les modifications".</p>
<img alt="URI de redirection dans Logto Console" src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/android-redirect-uri.png" width="600px">
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-sign-in-and-sign-out">Implémenter la connexion et la déconnexion<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-oidc-enterprise-sso-sign-in-with-android-and-logto#implement-sign-in-and-sign-out" class="hash-link" aria-label="Lien direct vers Implémenter la connexion et la déconnexion" title="Lien direct vers Implémenter la connexion et la déconnexion" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>Avant d'appeler <code>logtoClient.signIn</code>, assurez-vous d'avoir correctement configuré l'URI de redirection dans la console d'administration.</p></div></div></div>
<p>Vous pouvez utiliser <code>logtoClient.signIn</code> pour connecter l'utilisateur et <code>logtoClient.signOut</code> pour déconnecter l'utilisateur.</p>
<p>Par exemple, dans une application Android :</p>
<div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">LogtoModelView.kt</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">//...avec d'autres imports</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">LogtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">application</span><span class="token operator">:</span><span class="token plain"> Application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">:</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">AndroidViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">// ...autres codes</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">// Ajouter une donnée en direct pour observer le statut d'authentification</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">private</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> _authenticated </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">MutableLiveData</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">isAuthenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> authenticated</span><span class="token operator">:</span><span class="token plain"> LiveData</span><span class="token operator">&lt;</span><span class="token plain">Boolean</span><span class="token operator">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">get</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> _authenticated</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">fun</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">context</span><span class="token operator">:</span><span class="token plain"> Activity</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:rgb(255, 121, 198)">"io.logto.android://io.logto.sample/callback"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> logtoException </span><span class="token operator">-&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            logtoException</span><span class="token operator">?</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">let</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">println</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">it</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token comment" style="color:rgb(98, 114, 164)">// Mettre à jour la donnée en direct</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            _authenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">postValue</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">isAuthenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">fun</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">signOut</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">signOut</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> logtoException </span><span class="token operator">-&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            logtoException</span><span class="token operator">?</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">let</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">println</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">it</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token comment" style="color:rgb(98, 114, 164)">// Mettre à jour la donnée en direct</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            _authenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">postValue</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">isAuthenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>Ensuite, appelez les méthodes <code>signIn</code> et <code>signOut</code> dans votre activité :</p>
<div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">MainActivity.kt</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> MainActivity </span><span class="token operator">:</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">AppCompatActivity</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">override</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">fun</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">onCreate</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">savedInstanceState</span><span class="token operator">:</span><span class="token plain"> Bundle</span><span class="token operator">?</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token comment" style="color:rgb(98, 114, 164)">//...autres codes</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token comment" style="color:rgb(98, 114, 164)">// Supposons que vous ayez un bouton avec l'identifiant "sign_in_button" dans votre mise en page</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> signInButton </span><span class="token operator">=</span><span class="token plain"> findViewById</span><span class="token operator">&lt;</span><span class="token plain">Button</span><span class="token operator">&gt;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">R</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">id</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">sign_in_button</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        signInButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">setOnClickListener</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            logtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">this</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token comment" style="color:rgb(98, 114, 164)">// Supposons que vous ayez un bouton avec l'identifiant "sign_out_button" dans votre mise en page</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> signOutButton </span><span class="token operator">=</span><span class="token plain"> findViewById</span><span class="token operator">&lt;</span><span class="token plain">Button</span><span class="token operator">&gt;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">R</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">id</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">sign_out_button</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        signOutButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">setOnClickListener</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">logtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">authenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">// Vérifiez si l'utilisateur est authentifié</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                logtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">signOut</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token comment" style="color:rgb(98, 114, 164)">// Observez le statut d'authentification pour mettre à jour l'interface utilisateur</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        logtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">authenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">observe</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">this</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> authenticated </span><span class="token operator">-&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">authenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                </span><span class="token comment" style="color:rgb(98, 114, 164)">// L'utilisateur est authentifié</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                signInButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">visibility </span><span class="token operator">=</span><span class="token plain"> View</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">GONE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                signOutButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">visibility </span><span class="token operator">=</span><span class="token plain"> View</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">VISIBLE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">else</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                </span><span class="token comment" style="color:rgb(98, 114, 164)">// L'utilisateur n'est pas authentifié</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                signInButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">visibility </span><span class="token operator">=</span><span class="token plain"> View</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">VISIBLE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                signOutButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">visibility </span><span class="token operator">=</span><span class="token plain"> View</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">GONE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="checkpoint-test-your-application">Point de contrôle : Testez votre application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-oidc-enterprise-sso-sign-in-with-android-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Lien direct vers Point de contrôle : Testez votre application" title="Lien direct vers Point de contrôle : Testez votre application" translate="no">​</a></h3>
<p>Maintenant, vous pouvez tester votre application :</p>
<ol>
<li class="">Exécutez votre application, vous verrez le bouton de connexion.</li>
<li class="">Cliquez sur le bouton de connexion, le SDK initiera le processus de connexion et vous redirigera vers la page de connexion Logto.</li>
<li class="">Après vous être connecté, vous serez redirigé vers votre application et verrez le bouton de déconnexion.</li>
<li class="">Cliquez sur le bouton de déconnexion pour effacer le stockage des jetons et vous déconnecter.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="add-connector-connector">Add Microsoft Entra ID OIDC enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-oidc-enterprise-sso-sign-in-with-android-and-logto#add-connector-connector" class="hash-link" aria-label="Lien direct vers Add Microsoft Entra ID OIDC enterprise SSO connector" title="Lien direct vers Add Microsoft Entra ID OIDC enterprise SSO connector" translate="no">​</a></h2>
<p>Pour simplifier la gestion des accès et obtenir des garanties de niveau entreprise pour vos grands clients, connectez-vous avec <!-- -->Android<!-- --> en tant que fournisseur d'identité fédéré. Le connecteur SSO d’entreprise Logto vous aide à établir cette connexion en quelques minutes en permettant l'entrée de plusieurs paramètres.</p>
<p>Pour ajouter un connecteur SSO d’entreprise, suivez simplement ces étapes :</p>
<ol>
<li class="">Accédez à <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto console &gt; Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-page.png" alt="Page SSO">
<ol start="2">
<li class="">Cliquez sur le bouton "Ajouter un connecteur d’entreprise" et choisissez votre type de fournisseur SSO. Choisissez parmi les connecteurs préconstruits pour Microsoft Entra ID (Azure AD), Google Workspace et Okta, ou créez une connexion SSO personnalisée en utilisant le protocole standard OpenID Connect (OIDC) ou SAML.</li>
<li class="">Fournissez un nom unique (par exemple, Connexion SSO pour Acme Company).</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/select-your-sso-provider.png" alt="Sélectionnez votre fournisseur SSO">
<ol start="4">
<li class="">Configurez la connexion avec votre IdP dans l'onglet "Connexion". Consultez les guides ci-dessus pour chaque type de connecteur.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-connection-settings.png" alt="Connexion SSO">
<ol start="5">
<li class="">Personnalisez l'expérience SSO et le <strong>domaine de messagerie</strong> de l’entreprise dans l'onglet "Expérience". Les utilisateurs se connectant avec le domaine de messagerie activé pour le SSO seront redirigés vers l'authentification SSO.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-experience-settings.png" alt="Expérience SSO">
<ol start="6">
<li class="">Enregistrez les modifications.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="set-up-connectorconfigname">Set up Azure AD SSO application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-oidc-enterprise-sso-sign-in-with-android-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Lien direct vers Set up Azure AD SSO application" title="Lien direct vers Set up Azure AD SSO application" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-microsoft-entraid-oidc-application">Étape 1 : Créer une application OIDC Microsoft EntraID<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-oidc-enterprise-sso-sign-in-with-android-and-logto#step-1-create-an-microsoft-entraid-oidc-application" class="hash-link" aria-label="Lien direct vers Étape 1 : Créer une application OIDC Microsoft EntraID" title="Lien direct vers Étape 1 : Créer une application OIDC Microsoft EntraID" translate="no">​</a></h3>
<ol>
<li class="">
<p>Allez sur le <span class="linkWrapper_B4Bt"><a href="https://entra.microsoft.com/" target="_blank" rel="noopener noreferrer" class="link_hf7f">centre d'administration Microsoft Entra<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> et connectez-vous en tant qu'administrateur.</p>
</li>
<li class="">
<p>Accédez à Identity &gt; Applications &gt; App registrations.</p>
</li>
</ol>
<center><img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/entra_id_oidc_create_application.webp" alt="Créer une application"></center>
<ol start="3">
<li class="">
<p>Sélectionnez <code>New registration</code>.</p>
</li>
<li class="">
<p>Entrez le nom de l'application et sélectionnez le type de compte approprié pour votre application.</p>
</li>
<li class="">
<p>Sélectionnez <code>Web</code> comme plateforme de l'application.</p>
</li>
<li class="">
<p>Copiez et collez l'<code>URI de redirection</code> depuis la page des paramètres SSO de Logto. L'<code>URI de redirection</code> est l'URL où l'utilisateur est redirigé après s'être authentifié avec Microsoft Entra ID.</p>
</li>
</ol>
<center><img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/entra_id_oidc_config_application.webp" alt="Configurer l'application"></center>
<ol start="6">
<li class="">Cliquez sur <code>Register</code> pour créer l'application.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-microsoft-entra-id-oidc-sso-at-logto">Étape 2 : Configurer le SSO OIDC Microsoft Entra ID dans Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-oidc-enterprise-sso-sign-in-with-android-and-logto#step-2-configure-microsoft-entra-id-oidc-sso-at-logto" class="hash-link" aria-label="Lien direct vers Étape 2 : Configurer le SSO OIDC Microsoft Entra ID dans Logto" title="Lien direct vers Étape 2 : Configurer le SSO OIDC Microsoft Entra ID dans Logto" translate="no">​</a></h3>
<p>Après avoir créé avec succès une application Microsoft Entra OIDC, vous devrez fournir les configurations du fournisseur d’identité (IdP) à Logto. Rendez-vous dans l’onglet <code>Connection</code> de la Console Logto et renseignez les configurations suivantes :</p>
<ol>
<li class=""><strong>ID client</strong> : Un identifiant unique attribué à votre application OIDC par Microsoft Entra. Cet identifiant est utilisé par Logto pour identifier et authentifier l’application lors du flux OIDC. Vous pouvez le trouver sur la page d’aperçu de l’application sous <code>Application (client) ID</code>.</li>
</ol>
<center><img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/entra_id_oidc_application_details.webp" alt="Détails de l’application"></center>
<ol start="2">
<li class=""><strong>Secret client</strong> : Créez un nouveau secret client et copiez la valeur dans Logto. Ce secret est utilisé pour authentifier l’application OIDC et sécuriser la communication entre Logto et le fournisseur d’identité (IdP).</li>
</ol>
<center><img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/entra_id_oidc_create_secret.webp" alt="Créer un secret"></center>
<ol start="3">
<li class="">
<p><strong>Émetteur (Issuer)</strong> : L’URL de l’émetteur, un identifiant unique pour le fournisseur d’identité (IdP), spécifiant l’emplacement où le fournisseur d’identité OIDC peut être trouvé. Il s’agit d’une partie cruciale de la configuration OIDC car elle permet à Logto de découvrir les points de terminaison nécessaires.</p>
<p>Au lieu de fournir manuellement tous ces points de terminaison OIDC, Logto récupère automatiquement toutes les configurations requises et les points de terminaison du fournisseur d’identité (IdP). Cela se fait en utilisant l’URL de l’émetteur que vous avez fournie et en effectuant un appel au point de terminaison de découverte du fournisseur d’identité (IdP).</p>
<p>Pour obtenir l’URL de l’émetteur, vous pouvez la trouver dans la section <code>Endpoints</code> de la page d’aperçu de l’application.</p>
<p>Repérez le point de terminaison <code>OpenID Connect metadata document</code> et copiez l’URL <strong>SANS</strong> le chemin final <code>.well-known/openid-configuration</code>. En effet, Logto ajoutera automatiquement <code>.well-known/openid-configuration</code> à l’URL de l’émetteur lors de la récupération des configurations OIDC.</p>
</li>
</ol>
<center><img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/entra_id_oidc_endpoints.webp" alt="Points de terminaison"></center>
<ol start="4">
<li class=""><strong>Portée (Scope)</strong> (optionnel) : Logto inclut automatiquement les portées requises (<code>openid</code>, <code>profile</code> et <code>email</code>) dans toutes les requêtes. Vous pouvez spécifier des portées supplémentaires sous forme de liste séparée par des espaces si votre application nécessite des permissions ou des niveaux d’accès supplémentaires du fournisseur d’identité (IdP).</li>
</ol>
<p>Cliquez sur <code>Save</code> pour terminer le processus de configuration</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-additional-scopes-optional">Étape 3 : Portées supplémentaires (facultatif)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-oidc-enterprise-sso-sign-in-with-android-and-logto#step-3-additional-scopes-optional" class="hash-link" aria-label="Lien direct vers Étape 3 : Portées supplémentaires (facultatif)" title="Lien direct vers Étape 3 : Portées supplémentaires (facultatif)" translate="no">​</a></h3>
<p>Les portées (Scopes) définissent les permissions que votre application demande aux utilisateurs et contrôlent à quelles données votre application peut accéder depuis leurs comptes Microsoft Entra ID. La demande de permissions Microsoft Graph nécessite une configuration des deux côtés :</p>
<p><strong>Dans le centre d'administration Microsoft Entra :</strong></p>
<ol>
<li class="">Accédez à <strong>Microsoft Entra ID &gt; Enregistrements d'applications</strong> et sélectionnez votre application.</li>
<li class="">Allez dans <strong>Permissions API &gt; Ajouter une permission &gt; Microsoft Graph &gt; Permissions déléguées</strong>.</li>
<li class="">Sélectionnez uniquement les permissions requises par votre application :<!-- -->
<ul>
<li class="">Permissions OpenID :<!-- -->
<ul>
<li class=""><code>openid</code> (Obligatoire) - Connecter les utilisateurs</li>
<li class=""><code>profile</code> (Obligatoire) - Voir le profil de base des utilisateurs</li>
<li class=""><code>email</code> (Obligatoire) - Voir l'adresse e-mail des utilisateurs</li>
<li class=""><code>offline_access</code> (Optionnel) - Nécessaire uniquement si vous activez <span class="linkWrapper_B4Bt"><a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-oidc-enterprise-sso-sign-in-with-android-and-logto#step-4-store-tokens-to-access-microsoft-apis-optional" class="link_hf7f">Stocker les jetons pour un accès API persistant</a></span> dans le connecteur Logto et que vous devez obtenir des jetons de rafraîchissement pour un accès longue durée aux API Microsoft Graph.</li>
</ul>
</li>
<li class="">Accès API (Optionnel) : Ajoutez toutes les permissions supplémentaires nécessaires à votre application. Les permissions courantes de Microsoft Graph incluent <code>Mail.Read</code>, <code>Calendars.Read</code>, <code>Files.Read</code>, etc. Parcourez la <span class="linkWrapper_B4Bt"><a href="https://docs.microsoft.com/en-us/graph/permissions-reference" target="_blank" rel="noopener noreferrer" class="link_hf7f">référence des permissions Microsoft Graph<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> pour trouver les permissions disponibles.</li>
</ul>
</li>
<li class="">Cliquez sur <strong>Ajouter des permissions</strong> pour confirmer la sélection.</li>
<li class="">Si votre application nécessite un consentement administrateur pour certaines permissions, cliquez sur <strong>Accorder le consentement administrateur pour [Votre organisation]</strong>.</li>
</ol>
<center><img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/entra_id_oidc_add_api_permissions.webp" alt="Ajouter des permissions API Microsoft"></center>
<p><strong>Dans le connecteur Logto Microsoft Entra ID :</strong></p>
<ol>
<li class="">Logto inclut automatiquement les portées <code>openid</code>, <code>profile</code> et <code>email</code> pour récupérer les informations d'identité de base de l'utilisateur. Vous pouvez laisser le champ <code>Scopes</code> vide si vous n'avez besoin que des informations de base de l'utilisateur.</li>
<li class="">Ajoutez <code>offline_access</code> au champ <code>Scopes</code> si vous prévoyez de stocker des jetons pour un accès API persistant. Cette portée permet d'obtenir des jetons de rafraîchissement pour un accès longue durée à l'API.</li>
<li class="">Ajoutez des portées supplémentaires (séparées par des espaces) dans le champ <code>Scopes</code> pour demander plus de données à Microsoft Graph. Utilisez les noms de portées standards, par exemple : <code>User.Read Mail.Read Calendars.Read</code></li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><p>Si votre application demande ces portées pour accéder à l'API Microsoft Graph et effectuer des actions, assurez-vous d'activer <strong>Stocker les jetons pour un accès API persistant</strong> dans le connecteur Logto Microsoft Entra ID. Voir la section suivante pour plus de détails.</p></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-store-tokens-to-access-microsoft-apis-optional">Étape 4 : Stocker les jetons pour accéder aux API Microsoft (facultatif)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-oidc-enterprise-sso-sign-in-with-android-and-logto#step-4-store-tokens-to-access-microsoft-apis-optional" class="hash-link" aria-label="Lien direct vers Étape 4 : Stocker les jetons pour accéder aux API Microsoft (facultatif)" title="Lien direct vers Étape 4 : Stocker les jetons pour accéder aux API Microsoft (facultatif)" translate="no">​</a></h3>
<p>Si vous souhaitez accéder aux <span class="linkWrapper_B4Bt"><a href="https://docs.microsoft.com/en-us/graph/api/overview" target="_blank" rel="noopener noreferrer" class="link_hf7f">API Microsoft Graph<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> et effectuer des actions avec l'autorisation de l'utilisateur, Logto doit obtenir des portées API spécifiques et stocker les jetons.</p>
<ol>
<li class="">Ajoutez les portées requises dans la configuration des permissions API de votre centre d'administration Microsoft Entra et dans le connecteur Microsoft Entra ID de Logto.</li>
<li class="">Activez <strong>Stocker les jetons pour un accès API persistant</strong> dans le connecteur Microsoft Entra ID de Logto. Logto stockera de manière sécurisée les jetons d’accès Microsoft et les jetons de rafraîchissement dans le Secret Vault.</li>
<li class="">Pour garantir que les jetons de rafraîchissement sont renvoyés, ajoutez la portée <code>offline_access</code> aux permissions de votre application Microsoft Entra ID et incluez-la dans les portées de votre connecteur Microsoft Entra ID de Logto. Cette portée permet à votre application de maintenir l'accès aux ressources pendant de longues périodes.</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-set-email-domains-and-enable-the-sso-connector">Étape 5 : Définir les domaines e-mail et activer le connecteur SSO<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-oidc-enterprise-sso-sign-in-with-android-and-logto#step-5-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Lien direct vers Étape 5 : Définir les domaines e-mail et activer le connecteur SSO" title="Lien direct vers Étape 5 : Définir les domaines e-mail et activer le connecteur SSO" translate="no">​</a></h3>
<p>Fournissez les <code>domains</code> e-mail de votre organisation dans l’onglet <code>experience</code> du connecteur. Cela activera le connecteur SSO comme méthode d’authentification pour ces utilisateurs.</p>
<p>Les utilisateurs ayant des adresses e-mail dans les domaines spécifiés seront exclusivement limités à l’utilisation de votre connecteur SSO comme seule méthode d’authentification.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-oidc-enterprise-sso-sign-in-with-android-and-logto#save-your-configuration" class="hash-link" aria-label="Lien direct vers Save your configuration" title="Lien direct vers Save your configuration" translate="no">​</a></h3>
<p>Vérifiez que vous avez rempli les valeurs nécessaires dans la zone de configuration du connecteur Logto. Cliquez sur "Enregistrer et terminer" (ou "Enregistrer les modifications") et le connecteur <!-- -->Microsoft Entra ID OIDC enterprise SSO<!-- --> devrait être disponible maintenant.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable Microsoft Entra ID OIDC enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-oidc-enterprise-sso-sign-in-with-android-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Lien direct vers Enable Microsoft Entra ID OIDC enterprise SSO connector in Sign-in Experience" title="Lien direct vers Enable Microsoft Entra ID OIDC enterprise SSO connector in Sign-in Experience" translate="no">​</a></h2>
<p>Vous n'avez pas besoin de configurer individuellement les connecteurs d'entreprise, Logto simplifie l'intégration du SSO dans vos applications en un seul clic.</p>
<ol>
<li class="">Accédez à : <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/sign-in-experience/sign-up-and-sign-in" target="_blank" rel="noopener noreferrer" class="link_hf7f">Console &gt; Expérience de connexion &gt; Inscription et connexion<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">Activez le bouton "SSO d’entreprise".</li>
<li class="">Enregistrez les modifications.</li>
</ol>
<p>Une fois activé, un bouton "Authentification unique (SSO)" apparaîtra sur votre page de connexion. Les utilisateurs d'entreprise avec des domaines de messagerie compatibles SSO peuvent accéder à vos services en utilisant leurs fournisseurs d’identité d’entreprise (IdPs).</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-email-auto-navigation.png" alt="Détection automatique de la connexion SSO via le domaine de messagerie">
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-link-button-navigation.png" alt="Naviguer vers la connexion SSO en cliquant manuellement sur le bouton de lien">
<p>Pour en savoir plus sur l'expérience utilisateur SSO, y compris le SSO initié par le SP et le SSO initié par l'IdP, consultez les flux utilisateur : <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>SSO d’entreprise<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="testing-and-validation">Testing and Validation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-oidc-enterprise-sso-sign-in-with-android-and-logto#testing-and-validation" class="hash-link" aria-label="Lien direct vers Testing and Validation" title="Lien direct vers Testing and Validation" translate="no">​</a></h2>
<p>Retournez à votre application <!-- -->Android (Kotlin / Java)<!-- -->. Vous devriez maintenant pouvoir vous connecter avec <!-- -->Microsoft Entra ID OIDC enterprise SSO<!-- -->. Profitez-en !</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="further-readings">Further readings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-oidc-enterprise-sso-sign-in-with-android-and-logto#further-readings" class="hash-link" aria-label="Lien direct vers Further readings" title="Lien direct vers Further readings" translate="no">​</a></h2>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows" target="_blank" rel="noopener noreferrer" class="link_hf7f">Flux des utilisateurs finaux<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> : Logto fournit des flux d'authentification prêts à l'emploi, y compris l'authentification multi-facteurs (MFA) et le SSO d’entreprise, ainsi que des API puissantes pour une mise en œuvre flexible des paramètres de compte, de la vérification de sécurité et de l'expérience multi-locataire.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/authorization" target="_blank" rel="noopener noreferrer" class="link_hf7f">Autorisation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> : L'autorisation définit les actions qu'un utilisateur peut effectuer ou les ressources auxquelles il peut accéder après avoir été authentifié. Découvrez comment protéger votre API pour les applications natives et monopages et mettre en œuvre le contrôle d’accès basé sur les rôles (RBAC).</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/organizations" target="_blank" rel="noopener noreferrer" class="link_hf7f">Organisations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> : Particulièrement efficace dans les applications SaaS multi-locataires et B2B, la fonctionnalité d'organisation permet la création de locataires, la gestion des membres, le RBAC au niveau de l'organisation et l'approvisionnement juste-à-temps.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://blog.logto.io/ciam-101-intro-authn-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Série IAM client<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> : Nos articles de blog en série sur la gestion des identités et des accès des clients (ou consommateurs), des sujets de base aux sujets avancés et au-delà.</p>]]></content:encoded>
            <category>SSO providers</category>
            <category>microsoft-entra-id-oidc-enterprise-sso</category>
            <category>android</category>
            <category>kotlin/java</category>
            <category>SAML authentication</category>
            <category>enterprise login</category>
            <category>SSO login</category>
        </item>
        <item>
            <title><![CDATA[How to build Microsoft Entra ID SAML enterprise SSO with Android (Kotlin / Java)]]></title>
            <link>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-saml-enterprise-sso-sign-in-with-android-and-logto</link>
            <guid>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-saml-enterprise-sso-sign-in-with-android-and-logto</guid>
            <pubDate>Fri, 17 Apr 2026 02:54:06 GMT</pubDate>
            <description><![CDATA[{/*]]></description>
            <content:encoded><![CDATA[
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<!-- -->
<div class="theme-admonition theme-admonition-info admonition_Gfwi alert alert--info"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">Pour nos nouveaux amis<!-- -->:</span><br><br><p><span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> est une alternative à Auth0 conçue pour les applications modernes et les produits SaaS. Il
offre des services à la fois <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> et <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/logto" target="_blank" rel="noopener noreferrer" class="link_hf7f">Open-source<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>
pour vous aider à lancer rapidement votre système de gestion des identités et des accès (IAM). Profitez de l'authentification,
de l'autorisation et de la gestion multi-locataires <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">tout-en-un<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.<!-- --> </p><p>Nous recommandons de commencer avec un locataire de développement gratuit sur <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Cloud<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. Cela vous permet d'explorer facilement toutes les fonctionnalités.</p></div></div></div>
<p>Dans cet article, nous allons parcourir les étapes pour construire rapidement l'expérience de connexion <!-- -->Microsoft Entra ID SAML enterprise SSO<!-- --> (authentification utilisateur) avec <a href="https://developer.android.com/" target="_blank" rel="noopener">Android (Kotlin / Java)</a> et <span class="linkWrapper_B4Bt"><a href="https://logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<p><strong>Prérequis</strong></p>
<ul>
<li class="">Une instance Logto en cours d'exécution. Consultez la <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/fr/introduction" target="_blank" rel="noopener noreferrer" class="link_hf7f">page d'introduction<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> pour commencer.</li>
<li class="">Connaissance de base de <a href="https://developer.android.com/" target="_blank" rel="noopener">Android (Kotlin / Java)</a>.</li>
<li class="">Un compte <!-- -->Microsoft Entra ID SAML enterprise SSO<!-- --> utilisable.</li>
</ul>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="create-an-application-in-logto">Create an application in Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-saml-enterprise-sso-sign-in-with-android-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Lien direct vers Create an application in Logto" title="Lien direct vers Create an application in Logto" translate="no">​</a></h2>
<p>Logto est basé sur l'authentification OpenID Connect (OIDC) et l'autorisation OAuth 2.0. Il prend en charge la gestion des identités fédérées à travers plusieurs applications, communément appelée authentification unique (SSO).</p>
<p>Pour créer votre application <!-- -->Native app<!-- -->, suivez simplement ces étapes :</p>
<ol>
<li class="">Ouvrez la <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>. Dans la section "Get started", cliquez sur le lien "View all" pour ouvrir la liste des frameworks d'application. Alternativement, vous pouvez naviguer vers <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/applications" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto Console &gt; Applications<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, et cliquer sur le bouton "Create application".<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/get-started.png" alt="Get started">
</li>
<li class="">Dans la fenêtre modale qui s'ouvre, cliquez sur la section "<!-- -->Native app<!-- -->" ou filtrez tous les frameworks "<!-- -->Native app<!-- -->" disponibles en utilisant les cases à cocher de filtre rapide à gauche. Cliquez sur la carte du framework "<!-- -->Android<!-- -->" pour commencer à créer votre application.<!-- -->
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/framework-list.png" alt="Frameworks">
</li>
<li class="">Entrez le nom de l'application, par exemple, "Bookstore", et cliquez sur "Create application".</li>
</ol>
<p>🎉 Ta-da ! Vous venez de créer votre première application dans Logto. Vous verrez une page de félicitations qui inclut un guide d'intégration détaillé. Suivez le guide pour voir quelle sera l'expérience dans votre application.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="integrate-framework-sdk">Integrate Android SDK<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-saml-enterprise-sso-sign-in-with-android-and-logto#integrate-framework-sdk" class="hash-link" aria-label="Lien direct vers Integrate Android SDK" title="Lien direct vers Integrate Android SDK" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition_Gfwi alert alert--success"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">astuce<!-- -->:</span><ul>
<li class="">L'exemple est basé sur le <span class="linkWrapper_B4Bt"><a href="https://developer.android.com/reference/android/view/View" target="_blank" rel="noopener noreferrer" class="link_hf7f">système View<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> et le <span class="linkWrapper_B4Bt"><a href="https://developer.android.com/topic/libraries/architecture/viewmodel" target="_blank" rel="noopener noreferrer" class="link_hf7f">modèle View<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>, mais les concepts sont les mêmes lors de l'utilisation de <span class="linkWrapper_B4Bt"><a href="https://developer.android.com/jetpack/compose" target="_blank" rel="noopener noreferrer" class="link_hf7f">Jetpack Compose<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">L'exemple est écrit en Kotlin, mais les concepts sont les mêmes pour Java.</li>
<li class="">Les projets d'exemple en <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/kotlin/tree/master/android-sample-kotlin" target="_blank" rel="noopener noreferrer" class="link_hf7f">Kotlin<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> et en <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/kotlin/tree/master/android-sample-java" target="_blank" rel="noopener noreferrer" class="link_hf7f">Java<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> sont disponibles sur notre <span class="linkWrapper_B4Bt"><a href="https://github.com/logto-io/kotlin" target="_blank" rel="noopener noreferrer" class="link_hf7f">répertoire SDK<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">La vidéo tutorielle est disponible sur notre <span class="linkWrapper_B4Bt"><a href="https://youtu.be/_GSiYqTLnak" target="_blank" rel="noopener noreferrer" class="link_hf7f">chaîne YouTube<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ul></div></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="installation">Installation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-saml-enterprise-sso-sign-in-with-android-and-logto#installation" class="hash-link" aria-label="Lien direct vers Installation" title="Lien direct vers Installation" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>Le niveau API Android minimal pris en charge par Logto Android SDK est le niveau 24.</p></div></div></div>
<p>Avant d'installer Logto Android SDK, assurez-vous que <code>mavenCentral()</code> est ajouté à votre configuration de dépôt dans le fichier de construction du projet Gradle :</p>
<div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">settings.gradle.kts</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">dependencyResolutionManagement </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  repositories </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token function" style="color:rgb(80, 250, 123)">mavenCentral</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>Ajoutez Logto Android SDK à vos dépendances :</p>
<div class="theme-tabs-container tabs-container tabList_q32P"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_DwL7 tabs__item--active">Kotlin</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_DwL7">Groovy</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_bR4Y"><div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">build.gradle.kts</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">dependencies </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token function" style="color:rgb(80, 250, 123)">implementation</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string-literal singleline string" style="color:rgb(255, 121, 198)">"io.logto.sdk:android:1.1.3"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div></div><div role="tabpanel" class="tabItem_bR4Y" hidden=""><div class="language-groovy codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">build.gradle</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-groovy codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token plain">dependencies </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  implementation </span><span class="token string" style="color:rgb(255, 121, 198)">'io.logto.sdk:android:1.1.3'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div></div></div></div>
<p>Étant donné que le SDK nécessite un accès à Internet, vous devez ajouter la permission suivante à votre fichier <code>AndroidManifest.xml</code> :</p>
<div class="language-xml codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">AndroidManifest.xml</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-xml codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token prolog" style="color:rgb(189, 147, 249)">&lt;?xml version="1.0" encoding="utf-8"?&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">manifest</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">xmlns:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">android</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">http://schemas.android.com/apk/res/android</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag" style="color:rgb(255, 121, 198)"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token tag" style="color:rgb(255, 121, 198)">  </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">xmlns:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">tools</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">http://schemas.android.com/tools</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">&lt;!-- ajouter la permission internet --&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">uses-permission</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag attr-name namespace" style="color:rgb(241, 250, 140)">android:</span><span class="token tag attr-name" style="color:rgb(241, 250, 140)">name</span><span class="token tag attr-value punctuation attr-equals" style="color:rgb(248, 248, 242)">=</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag attr-value" style="color:rgb(255, 121, 198)">android.permission.INTERNET</span><span class="token tag attr-value punctuation" style="color:rgb(248, 248, 242)">"</span><span class="token tag" style="color:rgb(255, 121, 198)"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">/&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">&lt;!-- autres configurations... --&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">manifest</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="init-logtoclient">Init LogtoClient<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-saml-enterprise-sso-sign-in-with-android-and-logto#init-logtoclient" class="hash-link" aria-label="Lien direct vers Init LogtoClient" title="Lien direct vers Init LogtoClient" translate="no">​</a></h3>
<p>Créez un <code>LogtoViewModel.kt</code> et initialisez <code>LogtoClient</code> dans ce modèle de vue :</p>
<div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">LogtoViewModel.kt</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">//...avec d'autres imports</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> io</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">logto</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">sdk</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">android</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">LogtoClient</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> io</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">logto</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">sdk</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">android</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">type</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">LogtoConfig</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">LogtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">application</span><span class="token operator">:</span><span class="token plain"> Application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">:</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">AndroidViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">private</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> logtoConfig </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">LogtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          endpoint </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:rgb(255, 121, 198)">"&lt;votre-point-de-terminaison-logto&gt;"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          appId </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:rgb(255, 121, 198)">"&lt;votre-id-app&gt;"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          scopes </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">null</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          resources </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">null</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">          usingPersistStorage </span><span class="token operator">=</span><span class="token plain"> </span><span class="token boolean">true</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">private</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> logtoClient </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">LogtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">logtoConfig</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">companion</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">object</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> Factory</span><span class="token operator">:</span><span class="token plain"> ViewModelProvider</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Factory </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">object</span><span class="token plain"> </span><span class="token operator">:</span><span class="token plain"> ViewModelProvider</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">Factory</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token annotation builtin" style="color:rgb(189, 147, 249)">@Suppress</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string-literal singleline string" style="color:rgb(255, 121, 198)">"UNCHECKED_CAST"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">override</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">fun</span><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">T </span><span class="token operator">:</span><span class="token plain"> ViewModel</span><span class="token operator">&gt;</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">create</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                modelClass</span><span class="token operator">:</span><span class="token plain"> Class</span><span class="token operator">&lt;</span><span class="token plain">T</span><span class="token operator">&gt;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                extras</span><span class="token operator">:</span><span class="token plain"> CreationExtras</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token operator">:</span><span class="token plain"> T </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                </span><span class="token comment" style="color:rgb(98, 114, 164)">// Obtenez l'objet Application à partir des extras</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> application </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">checkNotNull</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">extras</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">APPLICATION_KEY</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">LogtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">as</span><span class="token plain"> T</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>ensuite, créez un <code>LogtoViewModel</code> pour votre <code>MainActivity.kt</code> :</p>
<div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">MainActivity.kt</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">//...avec d'autres imports</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> MainActivity </span><span class="token operator">:</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">AppCompatActivity</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">private</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> logtoViewModel</span><span class="token operator">:</span><span class="token plain"> LogtoViewModel </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">by</span><span class="token plain"> viewModels </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> LogtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">Factory </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">//...autres codes</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="configure-redirect-uri">Configurer l'URI de redirection<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-saml-enterprise-sso-sign-in-with-android-and-logto#configure-redirect-uri" class="hash-link" aria-label="Lien direct vers Configurer l'URI de redirection" title="Lien direct vers Configurer l'URI de redirection" translate="no">​</a></h3>
<p>Passons à la page des détails de l'application de Logto Console. Ajoutez une URI de redirection <code>io.logto.android://io.logto.sample/callback</code> et cliquez sur "Enregistrer les modifications".</p>
<img alt="URI de redirection dans Logto Console" src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/android-redirect-uri.png" width="600px">
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="implement-sign-in-and-sign-out">Implémenter la connexion et la déconnexion<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-saml-enterprise-sso-sign-in-with-android-and-logto#implement-sign-in-and-sign-out" class="hash-link" aria-label="Lien direct vers Implémenter la connexion et la déconnexion" title="Lien direct vers Implémenter la connexion et la déconnexion" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-note admonition_Gfwi alert alert--secondary"><div class="admonitionContent_UjKb"><div class="content_hlIx"><span class="title_towL" data-type="title">remarque<!-- -->:</span><p>Avant d'appeler <code>logtoClient.signIn</code>, assurez-vous d'avoir correctement configuré l'URI de redirection dans la console d'administration.</p></div></div></div>
<p>Vous pouvez utiliser <code>logtoClient.signIn</code> pour connecter l'utilisateur et <code>logtoClient.signOut</code> pour déconnecter l'utilisateur.</p>
<p>Par exemple, dans une application Android :</p>
<div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">LogtoModelView.kt</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">//...avec d'autres imports</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">LogtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">application</span><span class="token operator">:</span><span class="token plain"> Application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">:</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">AndroidViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">application</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">// ...autres codes</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">// Ajouter une donnée en direct pour observer le statut d'authentification</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">private</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> _authenticated </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">MutableLiveData</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">isAuthenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> authenticated</span><span class="token operator">:</span><span class="token plain"> LiveData</span><span class="token operator">&lt;</span><span class="token plain">Boolean</span><span class="token operator">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">get</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> _authenticated</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">fun</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">context</span><span class="token operator">:</span><span class="token plain"> Activity</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:rgb(255, 121, 198)">"io.logto.android://io.logto.sample/callback"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> logtoException </span><span class="token operator">-&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            logtoException</span><span class="token operator">?</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">let</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">println</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">it</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token comment" style="color:rgb(98, 114, 164)">// Mettre à jour la donnée en direct</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            _authenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">postValue</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">isAuthenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">fun</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">signOut</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">signOut</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> logtoException </span><span class="token operator">-&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            logtoException</span><span class="token operator">?</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">let</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">println</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">it</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token comment" style="color:rgb(98, 114, 164)">// Mettre à jour la donnée en direct</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            _authenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">postValue</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">logtoClient</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">isAuthenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<p>Ensuite, appelez les méthodes <code>signIn</code> et <code>signOut</code> dans votre activité :</p>
<div class="language-kotlin codeBlockContainer_UCEj theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockTitle_cvyT">MainActivity.kt</div><div class="codeBlockContent_ZGJw"><pre tabindex="0" class="prism-code language-kotlin codeBlock_JrLX thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_S4QZ"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">class</span><span class="token plain"> MainActivity </span><span class="token operator">:</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">AppCompatActivity</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">override</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">fun</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">onCreate</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">savedInstanceState</span><span class="token operator">:</span><span class="token plain"> Bundle</span><span class="token operator">?</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token comment" style="color:rgb(98, 114, 164)">//...autres codes</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token comment" style="color:rgb(98, 114, 164)">// Supposons que vous ayez un bouton avec l'identifiant "sign_in_button" dans votre mise en page</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> signInButton </span><span class="token operator">=</span><span class="token plain"> findViewById</span><span class="token operator">&lt;</span><span class="token plain">Button</span><span class="token operator">&gt;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">R</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">id</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">sign_in_button</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        signInButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">setOnClickListener</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            logtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">signIn</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">this</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token comment" style="color:rgb(98, 114, 164)">// Supposons que vous ayez un bouton avec l'identifiant "sign_out_button" dans votre mise en page</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">val</span><span class="token plain"> signOutButton </span><span class="token operator">=</span><span class="token plain"> findViewById</span><span class="token operator">&lt;</span><span class="token plain">Button</span><span class="token operator">&gt;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">R</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">id</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">sign_out_button</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        signOutButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">setOnClickListener</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">logtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">authenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">// Vérifiez si l'utilisateur est authentifié</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                logtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">signOut</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token comment" style="color:rgb(98, 114, 164)">// Observez le statut d'authentification pour mettre à jour l'interface utilisateur</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        logtoViewModel</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">authenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token function" style="color:rgb(80, 250, 123)">observe</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">this</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> authenticated </span><span class="token operator">-&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">authenticated</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                </span><span class="token comment" style="color:rgb(98, 114, 164)">// L'utilisateur est authentifié</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                signInButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">visibility </span><span class="token operator">=</span><span class="token plain"> View</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">GONE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                signOutButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">visibility </span><span class="token operator">=</span><span class="token plain"> View</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">VISIBLE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">else</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                </span><span class="token comment" style="color:rgb(98, 114, 164)">// L'utilisateur n'est pas authentifié</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                signInButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">visibility </span><span class="token operator">=</span><span class="token plain"> View</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">VISIBLE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">                signOutButton</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">visibility </span><span class="token operator">=</span><span class="token plain"> View</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">GONE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">            </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">        </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="checkpoint-test-your-application">Point de contrôle : Testez votre application<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-saml-enterprise-sso-sign-in-with-android-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Lien direct vers Point de contrôle : Testez votre application" title="Lien direct vers Point de contrôle : Testez votre application" translate="no">​</a></h3>
<p>Maintenant, vous pouvez tester votre application :</p>
<ol>
<li class="">Exécutez votre application, vous verrez le bouton de connexion.</li>
<li class="">Cliquez sur le bouton de connexion, le SDK initiera le processus de connexion et vous redirigera vers la page de connexion Logto.</li>
<li class="">Après vous être connecté, vous serez redirigé vers votre application et verrez le bouton de déconnexion.</li>
<li class="">Cliquez sur le bouton de déconnexion pour effacer le stockage des jetons et vous déconnecter.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="add-connector-connector">Add Microsoft Entra ID SAML enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-saml-enterprise-sso-sign-in-with-android-and-logto#add-connector-connector" class="hash-link" aria-label="Lien direct vers Add Microsoft Entra ID SAML enterprise SSO connector" title="Lien direct vers Add Microsoft Entra ID SAML enterprise SSO connector" translate="no">​</a></h2>
<p>Pour simplifier la gestion des accès et obtenir des garanties de niveau entreprise pour vos grands clients, connectez-vous avec <!-- -->Android<!-- --> en tant que fournisseur d'identité fédéré. Le connecteur SSO d’entreprise Logto vous aide à établir cette connexion en quelques minutes en permettant l'entrée de plusieurs paramètres.</p>
<p>Pour ajouter un connecteur SSO d’entreprise, suivez simplement ces étapes :</p>
<ol>
<li class="">Accédez à <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Logto console &gt; Enterprise SSO<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-page.png" alt="Page SSO">
<ol start="2">
<li class="">Cliquez sur le bouton "Ajouter un connecteur d’entreprise" et choisissez votre type de fournisseur SSO. Choisissez parmi les connecteurs préconstruits pour Microsoft Entra ID (Azure AD), Google Workspace et Okta, ou créez une connexion SSO personnalisée en utilisant le protocole standard OpenID Connect (OIDC) ou SAML.</li>
<li class="">Fournissez un nom unique (par exemple, Connexion SSO pour Acme Company).</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/select-your-sso-provider.png" alt="Sélectionnez votre fournisseur SSO">
<ol start="4">
<li class="">Configurez la connexion avec votre IdP dans l'onglet "Connexion". Consultez les guides ci-dessus pour chaque type de connecteur.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-connection-settings.png" alt="Connexion SSO">
<ol start="5">
<li class="">Personnalisez l'expérience SSO et le <strong>domaine de messagerie</strong> de l’entreprise dans l'onglet "Expérience". Les utilisateurs se connectant avec le domaine de messagerie activé pour le SSO seront redirigés vers l'authentification SSO.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-experience-settings.png" alt="Expérience SSO">
<ol start="6">
<li class="">Enregistrez les modifications.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="set-up-connectorconfigname">Set up Application SSO Azure AD<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-saml-enterprise-sso-sign-in-with-android-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Lien direct vers Set up Application SSO Azure AD" title="Lien direct vers Set up Application SSO Azure AD" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-azure-ad-sso-application">Étape 1 : Créer une application Azure AD SSO<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-saml-enterprise-sso-sign-in-with-android-and-logto#step-1-create-an-azure-ad-sso-application" class="hash-link" aria-label="Lien direct vers Étape 1 : Créer une application Azure AD SSO" title="Lien direct vers Étape 1 : Créer une application Azure AD SSO" translate="no">​</a></h3>
<p>Initiez l'intégration SSO Azure AD en créant une application SSO du côté Azure AD.</p>
<ol>
<li class="">Allez sur le <span class="linkWrapper_B4Bt"><a href="https://portal.azure.com/" target="_blank" rel="noopener noreferrer" class="link_hf7f">portail Azure<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> et connectez-vous en tant qu'administrateur.</li>
<li class="">Sélectionnez le service <code>Microsoft Entra ID</code>.</li>
<li class="">Naviguez vers les <code>Applications d'entreprise</code> à l'aide du menu latéral. Cliquez sur <code>Nouvelle application</code>, et sélectionnez <code>Créer votre propre application</code>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/azure_ad_create_application.webp" alt="Azure AD create application">
<ol>
<li class="">Entrez le nom de l'application et sélectionnez <code>Intégrer toute autre application que vous ne trouvez pas dans la galerie (Non-galerie)</code>.</li>
<li class="">Sélectionnez <code>Configurer l’authentification unique</code> &gt; <code>SAML</code>.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/azure_ad_set_up_single_sign_on.webp" alt="Azure AD set up SSO">
<ol>
<li class="">Suivez les instructions, comme première étape, vous devrez remplir la configuration SAML de base en utilisant les informations suivantes fournies par Logto.</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/azure_ad_sp_config.webp" alt="Azure AD SP config">
<ul>
<li class=""><strong>URI d’audience (ID d’entité SP)</strong> : Il représente un identifiant unique global pour votre service Logto, fonctionnant comme l'EntityId pour SP lors des requêtes d’authentification vers le fournisseur d’identité (IdP). Cet identifiant est essentiel pour l'échange sécurisé des assertions SAML et d'autres données liées à l'authentification entre l'IdP et Logto.</li>
<li class=""><strong>URL ACS</strong> : L'URL du service consommateur d'assertions (ACS) est l'emplacement où l'assertion SAML est envoyée avec une requête POST. Cette URL est utilisée par l'IdP pour envoyer l'assertion SAML à Logto. Elle agit comme une URL de rappel où Logto s'attend à recevoir et à consommer la réponse SAML contenant les informations d'identité de l'utilisateur.</li>
</ul>
<p>Cliquez sur <code>Enregistrer</code> pour continuer.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-saml-sso-at-logto">Étape 2 : Configurer SAML SSO sur Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-saml-enterprise-sso-sign-in-with-android-and-logto#step-2-configure-saml-sso-at-logto" class="hash-link" aria-label="Lien direct vers Étape 2 : Configurer SAML SSO sur Logto" title="Lien direct vers Étape 2 : Configurer SAML SSO sur Logto" translate="no">​</a></h3>
<p>Pour que l'intégration SAML SSO fonctionne, vous devrez fournir les métadonnées de l'IdP à Logto. Revenons du côté de Logto et accédons à l'onglet <code>Connection</code> de votre connecteur Azure AD SSO.</p>
<p>Logto propose trois manières différentes de configurer les métadonnées de l'IdP. La manière la plus simple est de fournir l'<code>URL des métadonnées</code> de l'application Azure AD SSO.</p>
<p>Copiez l'<code>URL des métadonnées de fédération de l'application</code> à partir de la <code>section Certificats SAML</code> de votre application Azure AD SSO et collez-la dans le champ <code>Metadata URL</code> dans Logto.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/azure_ad_metadata_url.webp" alt="Azure AD Metadata URL">
<p>Logto récupérera les métadonnées à partir de l'URL et configurera automatiquement l'intégration SAML SSO.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-configure-user-attributes-mapping">Étape 3 : Configurer le mappage des attributs utilisateur<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-saml-enterprise-sso-sign-in-with-android-and-logto#step-3-configure-user-attributes-mapping" class="hash-link" aria-label="Lien direct vers Étape 3 : Configurer le mappage des attributs utilisateur" title="Lien direct vers Étape 3 : Configurer le mappage des attributs utilisateur" translate="no">​</a></h3>
<p>Logto offre un moyen flexible de mapper les attributs utilisateur renvoyés par le fournisseur d’identité (IdP) aux attributs utilisateur dans Logto. Logto synchronisera par défaut les attributs utilisateur suivants depuis l'IdP :</p>
<ul>
<li class="">id : L'identifiant unique de l'utilisateur. Logto lira la revendication <code>nameID</code> de la réponse SAML comme identifiant d'identité SSO de l'utilisateur.</li>
<li class="">email : L'adresse e-mail de l'utilisateur. Logto lira la revendication <code>email</code> de la réponse SAML comme e-mail principal de l'utilisateur par défaut.</li>
<li class="">name : Le nom de l'utilisateur.</li>
</ul>
<p>Vous pouvez gérer la logique de mappage des attributs utilisateur soit du côté Azure AD, soit du côté Logto.</p>
<ol>
<li class="">
<p>Mapper les attributs utilisateur AzureAD aux attributs utilisateur Logto du côté Logto.</p>
<p>Visitez la section <code>Attributes &amp; Claims</code> de votre application SSO Azure AD.</p>
<p>Copiez les noms d'attributs suivants (avec le préfixe de l'espace de noms) et collez-les dans les champs correspondants dans Logto.</p>
<ul>
<li class=""><code>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress</code></li>
<li class=""><code>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name</code> (Recommandation : mettez à jour cette carte de valeur d'attribut à <code>user.displayname</code> pour une meilleure expérience utilisateur)</li>
</ul>
</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/azure_ad_default_attribute_mapping.webp" alt="Mappage d'attributs par défaut Azure AD">
<ol>
<li class="">
<p>Mapper les attributs utilisateur AzureAD aux attributs utilisateur Logto du côté AzureAD.</p>
<p>Visitez la section <code>Attributes &amp; Claims</code> de votre application SSO Azure AD.</p>
<p>Cliquez sur <code>Edit</code>, et mettez à jour les champs <code>Additional claims</code> en fonction des paramètres des attributs utilisateur Logto :</p>
<ul>
<li class="">mettez à jour la valeur du nom de revendication en fonction des paramètres des attributs utilisateur Logto.</li>
<li class="">supprimez le préfixe de l'espace de noms.</li>
<li class="">cliquez sur <code>Save</code> pour continuer.</li>
</ul>
<p>Vous devriez obtenir les paramètres suivants :</p>
</li>
</ol>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/azure_ad_logto_attribute_mapping.webp" alt="Mappage d'attributs Azure AD_Logto">
<p>Vous pouvez également spécifier des attributs utilisateur supplémentaires du côté Azure AD. Logto conservera un enregistrement des attributs utilisateur originaux renvoyés par l'IdP sous le champ <code>sso_identity</code> de l'utilisateur.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-assign-users-to-the-azure-ad-sso-application">Étape 4 : Assigner des utilisateurs à l'application Azure AD SSO<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-saml-enterprise-sso-sign-in-with-android-and-logto#step-4-assign-users-to-the-azure-ad-sso-application" class="hash-link" aria-label="Lien direct vers Étape 4 : Assigner des utilisateurs à l'application Azure AD SSO" title="Lien direct vers Étape 4 : Assigner des utilisateurs à l'application Azure AD SSO" translate="no">​</a></h3>
<p>Visitez la section <code>Users and groups</code> de votre application Azure AD SSO. Cliquez sur <code>Add user/group</code> pour attribuer des utilisateurs à l'application Azure AD SSO. Seuls les utilisateurs attribués à votre application Azure AD SSO pourront s'authentifier via le connecteur Azure AD SSO.</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/assets/azure_ad_assign_users.webp" alt="Azure AD assign users">
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-set-email-domains-and-enable-the-sso-connector">Étape 5 : Définir les domaines de messagerie et activer le connecteur SSO<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-saml-enterprise-sso-sign-in-with-android-and-logto#step-5-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Lien direct vers Étape 5 : Définir les domaines de messagerie et activer le connecteur SSO" title="Lien direct vers Étape 5 : Définir les domaines de messagerie et activer le connecteur SSO" translate="no">​</a></h3>
<p>Fournissez les <code>domaines de messagerie</code> de votre organisation dans l'onglet <code>SSO experience</code> du connecteur de Logto. Cela activera le connecteur SSO comme méthode d'authentification pour ces utilisateurs.</p>
<p>Les utilisateurs ayant des adresses e-mail dans les domaines spécifiés seront redirigés pour utiliser le connecteur SAML SSO comme seule méthode d'authentification.</p>
<p>Veuillez consulter la <span class="linkWrapper_B4Bt"><a href="https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/add-application-portal-setup-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">documentation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> officielle d'Azure AD pour plus de détails sur l'intégration SSO d'Azure AD.</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-saml-enterprise-sso-sign-in-with-android-and-logto#save-your-configuration" class="hash-link" aria-label="Lien direct vers Save your configuration" title="Lien direct vers Save your configuration" translate="no">​</a></h3>
<p>Vérifiez que vous avez rempli les valeurs nécessaires dans la zone de configuration du connecteur Logto. Cliquez sur "Enregistrer et terminer" (ou "Enregistrer les modifications") et le connecteur <!-- -->Microsoft Entra ID SAML enterprise SSO<!-- --> devrait être disponible maintenant.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable Microsoft Entra ID SAML enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-saml-enterprise-sso-sign-in-with-android-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Lien direct vers Enable Microsoft Entra ID SAML enterprise SSO connector in Sign-in Experience" title="Lien direct vers Enable Microsoft Entra ID SAML enterprise SSO connector in Sign-in Experience" translate="no">​</a></h2>
<p>Vous n'avez pas besoin de configurer individuellement les connecteurs d'entreprise, Logto simplifie l'intégration du SSO dans vos applications en un seul clic.</p>
<ol>
<li class="">Accédez à : <span class="linkWrapper_B4Bt"><a href="https://cloud.logto.io/to/sign-in-experience/sign-up-and-sign-in" target="_blank" rel="noopener noreferrer" class="link_hf7f">Console &gt; Expérience de connexion &gt; Inscription et connexion<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</li>
<li class="">Activez le bouton "SSO d’entreprise".</li>
<li class="">Enregistrez les modifications.</li>
</ol>
<p>Une fois activé, un bouton "Authentification unique (SSO)" apparaîtra sur votre page de connexion. Les utilisateurs d'entreprise avec des domaines de messagerie compatibles SSO peuvent accéder à vos services en utilisant leurs fournisseurs d’identité d’entreprise (IdPs).</p>
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-email-auto-navigation.png" alt="Détection automatique de la connexion SSO via le domaine de messagerie">
<img src="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/img/tutorial/sso-link-button-navigation.png" alt="Naviguer vers la connexion SSO en cliquant manuellement sur le bouton de lien">
<p>Pour en savoir plus sur l'expérience utilisateur SSO, y compris le SSO initié par le SP et le SSO initié par l'IdP, consultez les flux utilisateur : <span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows/enterprise-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path fill="currentColor" d="m8.49 14.129-1.302 1.265a1.82 1.82 0 0 1-2.574-2.575l3.34-3.347a1.81 1.81 0 0 1 2.493-.066l.089.073a.736.736 0 1 0 1.03-1.052 2 2 0 0 0-.133-.154 3.28 3.28 0 0 0-4.48.162l-3.384 3.347a3.296 3.296 0 0 0 4.657 4.657l1.272-1.244A.736.736 0 0 0 8.49 14.13m7.865-10.476a3.303 3.303 0 0 0-4.657 0l-1.273 1.243a.736.736 0 0 0 1.008 1.067l1.273-1.265a1.82 1.82 0 1 1 2.575 2.574l-3.34 3.348a1.81 1.81 0 0 1-2.494.066l-.088-.074a.736.736 0 1 0-1.03 1.052q.08.083.169.155a3.29 3.29 0 0 0 4.48-.162l3.347-3.347a3.303 3.303 0 0 0 .03-4.657"></path></svg>SSO d’entreprise<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span>.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="testing-and-validation">Testing and Validation<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-saml-enterprise-sso-sign-in-with-android-and-logto#testing-and-validation" class="hash-link" aria-label="Lien direct vers Testing and Validation" title="Lien direct vers Testing and Validation" translate="no">​</a></h2>
<p>Retournez à votre application <!-- -->Android (Kotlin / Java)<!-- -->. Vous devriez maintenant pouvoir vous connecter avec <!-- -->Microsoft Entra ID SAML enterprise SSO<!-- -->. Profitez-en !</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="further-readings">Further readings<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/fr/how-to/build-microsoft-entra-id-saml-enterprise-sso-sign-in-with-android-and-logto#further-readings" class="hash-link" aria-label="Lien direct vers Further readings" title="Lien direct vers Further readings" translate="no">​</a></h2>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/end-user-flows" target="_blank" rel="noopener noreferrer" class="link_hf7f">Flux des utilisateurs finaux<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> : Logto fournit des flux d'authentification prêts à l'emploi, y compris l'authentification multi-facteurs (MFA) et le SSO d’entreprise, ainsi que des API puissantes pour une mise en œuvre flexible des paramètres de compte, de la vérification de sécurité et de l'expérience multi-locataire.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/authorization" target="_blank" rel="noopener noreferrer" class="link_hf7f">Autorisation<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> : L'autorisation définit les actions qu'un utilisateur peut effectuer ou les ressources auxquelles il peut accéder après avoir été authentifié. Découvrez comment protéger votre API pour les applications natives et monopages et mettre en œuvre le contrôle d’accès basé sur les rôles (RBAC).</p>
<p><span class="linkWrapper_B4Bt"><a href="https://docs.logto.io/organizations" target="_blank" rel="noopener noreferrer" class="link_hf7f">Organisations<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> : Particulièrement efficace dans les applications SaaS multi-locataires et B2B, la fonctionnalité d'organisation permet la création de locataires, la gestion des membres, le RBAC au niveau de l'organisation et l'approvisionnement juste-à-temps.</p>
<p><span class="linkWrapper_B4Bt"><a href="https://blog.logto.io/ciam-101-intro-authn-sso" target="_blank" rel="noopener noreferrer" class="link_hf7f">Série IAM client<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" class="iconExternalLink_2l9O externalLink_ia3C"><path d="M12.422 7.54748C12.2452 7.54748 12.0757 7.61772 11.9506 7.74274C11.8256 7.86777 11.7554 8.03734 11.7554 8.21415V13.0008C11.7554 13.1776 11.6851 13.3472 11.5601 13.4722C11.4351 13.5972 11.2655 13.6675 11.0887 13.6675H3.75537C3.57856 13.6675 3.40899 13.5972 3.28397 13.4722C3.15894 13.3472 3.0887 13.1776 3.0887 13.0008V5.66748C3.0887 5.49067 3.15894 5.3211 3.28397 5.19608C3.40899 5.07105 3.57856 5.00081 3.75537 5.00081H8.54204C8.71885 5.00081 8.88842 4.93058 9.01344 4.80555C9.13847 4.68053 9.2087 4.51096 9.2087 4.33415C9.2087 4.15734 9.13847 3.98777 9.01344 3.86274C8.88842 3.73772 8.71885 3.66748 8.54204 3.66748H3.75537C3.22494 3.66748 2.71623 3.87819 2.34116 4.25327C1.96608 4.62834 1.75537 5.13705 1.75537 5.66748V13.0008C1.75537 13.5312 1.96608 14.04 2.34116 14.415C2.71623 14.7901 3.22494 15.0008 3.75537 15.0008H11.0887C11.6191 15.0008 12.1278 14.7901 12.5029 14.415C12.878 14.04 13.0887 13.5312 13.0887 13.0008V8.21415C13.0887 8.03734 13.0185 7.86777 12.8934 7.74274C12.7684 7.61772 12.5988 7.54748 12.422 7.54748ZM15.0354 2.08081C14.9677 1.91791 14.8383 1.78846 14.6754 1.72081C14.5952 1.68665 14.5092 1.66853 14.422 1.66748H10.422C10.2452 1.66748 10.0757 1.73772 9.95063 1.86274C9.82561 1.98777 9.75537 2.15734 9.75537 2.33415C9.75537 2.51096 9.82561 2.68053 9.95063 2.80555C10.0757 2.93058 10.2452 3.00081 10.422 3.00081H12.8154L5.9487 9.86081C5.88622 9.92279 5.83662 9.99652 5.80278 10.0778C5.76893 10.159 5.75151 10.2461 5.75151 10.3341C5.75151 10.4222 5.76893 10.5093 5.80278 10.5905C5.83662 10.6718 5.88622 10.7455 5.9487 10.8075C6.01068 10.87 6.08441 10.9196 6.16565 10.9534C6.24689 10.9873 6.33403 11.0047 6.42204 11.0047C6.51005 11.0047 6.59718 10.9873 6.67842 10.9534C6.75966 10.9196 6.8334 10.87 6.89537 10.8075L13.7554 3.94081V6.33415C13.7554 6.51096 13.8256 6.68053 13.9506 6.80555C14.0757 6.93058 14.2452 7.00081 14.422 7.00081C14.5988 7.00081 14.7684 6.93058 14.8934 6.80555C15.0185 6.68053 15.0887 6.51096 15.0887 6.33415V2.33415C15.0877 2.24703 15.0695 2.16096 15.0354 2.08081Z" fill="currentColor"></path></svg></a></span> : Nos articles de blog en série sur la gestion des identités et des accès des clients (ou consommateurs), des sujets de base aux sujets avancés et au-delà.</p>]]></content:encoded>
            <category>SSO providers</category>
            <category>microsoft-entra-id-saml-enterprise-sso</category>
            <category>android</category>
            <category>kotlin/java</category>
            <category>SAML authentication</category>
            <category>enterprise login</category>
            <category>SSO login</category>
        </item>
    </channel>
</rss>