<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to</id>
    <title>Logto docs Blog</title>
    <updated>2026-04-17T02:54:06.885Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to"/>
    <subtitle>Logto docs Blog</subtitle>
    <icon>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/img/favicon.ico</icon>
    <entry>
        <title type="html"><![CDATA[How to build OIDC enterprise SSO with WordPress plugin]]></title>
        <id>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-wordpress-plugin-and-logto</id>
        <link href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-wordpress-plugin-and-logto"/>
        <updated>2026-04-17T02:54:06.885Z</updated>
        <summary type="html"><![CDATA[{/*]]></summary>
        <content type="html"><![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 <!-- -->OIDC 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 <!-- -->OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Create an application in Logto への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#integrate-with-logto" class="hash-link" aria-label="Integrate WordPress with Logto への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#install-the-plugin" class="hash-link" aria-label="Install the plugin への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#configure-the-plugin" class="hash-link" aria-label="Configure the plugin への直接リンク" title="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">注記<!-- -->:</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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#configure-redirect-uri" class="hash-link" aria-label="Configure redirect URI への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#checkpoint-test-your-website" class="hash-link" aria-label="Checkpoint: Test your WordPress website への直接リンク" title="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 OIDC enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#add-connector-connector" class="hash-link" aria-label="Add OIDC enterprise SSO connector への直接リンク" title="Add OIDC 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 your IdP<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Set up OIDC application on your IdP への直接リンク" title="Set up OIDC application on your IdP への直接リンク" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-your-idp">Step 1: Create an OIDC application on your IdP<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#step-1-create-an-oidc-application-on-your-idp" class="hash-link" aria-label="Step 1: Create an OIDC application on your IdP への直接リンク" title="Step 1: Create an OIDC application on your IdP への直接リンク" translate="no">​</a></h3>
<p>Initiate the OIDC SSO integration by creating an application on the IdP side. You will need to provide the following configurations from the Logto server.</p>
<ul>
<li class=""><strong>Callback URI</strong>: The Logto Callback URI, also known as the Redirect URI or Reply URL, is a specific endpoint or URL that the IdP uses to 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 authorization code received from this URI.</li>
</ul>
<p>Fill in the Logto Callback URI in your IdP OIDC application settings form and continue to create the application. (Most of the OIDC IdPs provide a wide range of application types to choose from. To create a web-based SSO connector on Logto, please choose the <code>Web Application</code> type.)</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-oidc-sso-on-logto">Step 2: Configure OIDC SSO on Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#step-2-configure-oidc-sso-on-logto" class="hash-link" aria-label="Step 2: Configure OIDC SSO on Logto への直接リンク" title="Step 2: Configure OIDC SSO on Logto への直接リンク" translate="no">​</a></h3>
<p>After successfully creating an OIDC application on the IdP side, you will need to provide the IdP configurations back to Logto. Navigate to the <code>Connection</code> tab, and fill in the following configurations:</p>
<ul>
<li class=""><strong>Client ID</strong>: A unique identifier assigned to your OIDC application by the IdP. This identifier is used by Logto to identify and authenticate the application during the OIDC flow.</li>
<li class=""><strong>Client Secret</strong>: A confidential secret shared between Logto and the IdP. This secret is used to authenticate the OIDC application and secure the communication between Logto and the IdP.</li>
<li class=""><strong>Issuer</strong>: The issuer URL, a unique identifier for the IdP, specifying the location where the OIDC identity provider can be found. It is a crucial part of the OIDC configuration as it helps Logto discover the necessary endpoints.
To make the configuration process easier. Logto will automatically fetch the required OIDC endpoints and configurations. This is done by utilizing the issuer you provided and making a call to the IdP's OIDC discover endpoints. It is imperative to ensure that the issuer endpoint is valid and accurately configured to enable Logto to retrieve the required information correctly.
After a successful fetch request, you should be able to see the parsed IdP configurations under the issuers section.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-configure-scopes-optional">Step 3: Configure scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#step-3-configure-scopes-optional" class="hash-link" aria-label="Step 3: Configure scopes (Optional) への直接リンク" title="Step 3: Configure scopes (Optional) への直接リンク" translate="no">​</a></h2>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their enterprise accounts.</p>
<p>Setting up scopes requires configuration on both sides:</p>
<ol>
<li class=""><strong>Your Identity Provider (IdP)</strong>: Configure which permissions are allowed for authorization in your IdP console<!-- -->
<ul>
<li class="">Some IdPs enable all public scopes by default (no action needed)</li>
<li class="">Others require you to explicitly grant permissions</li>
</ul>
</li>
<li class=""><strong>Logto enterprise connector</strong>: Specify which scopes to request during authentication in the Logto OIDC enterprise connector settings &gt; <code>Scopes</code> field.<!-- -->
<ul>
<li class="">Logto always includes the <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information, regardless of your custom scope settings.</li>
<li class="">You can add additional scopes (separated by spaces) to request more information from the IdP.</li>
</ul>
</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">ヒント<!-- -->:</span><p>If your app needs to access APIs using these scopes, make sure to enable <strong>Store tokens for persistent API access</strong> in your Logto enterprise connector. See the next section for details.</p></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-store-tokens-to-access-third-party-apis-optional">Step 4: Store tokens to access third-party APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#step-4-store-tokens-to-access-third-party-apis-optional" class="hash-link" aria-label="Step 4: Store tokens to access third-party APIs (Optional) への直接リンク" title="Step 4: Store tokens to access third-party APIs (Optional) への直接リンク" translate="no">​</a></h2>
<p>If you want to access the Identity Provider's APIs and perform actions with user authorization, Logto needs to get specific API scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in the <strong>scope</strong> field following the instructions above</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in the Logto OIDC enterprise connector. Logto will securely store access tokens in the Secret Vault.</li>
<li class="">For <strong>standard</strong> OIDC identity providers, the <code>offline_access</code> scope must be included to obtain a refresh token, preventing repeated user consent prompts.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-set-email-domains-and-enable-the-sso-connector">Step 5: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#step-5-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Step 5: Set email domains and enable the SSO connector への直接リンク" title="Step 5: Set email domains and enable the SSO connector への直接リンク" translate="no">​</a></h2>
<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>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#save-your-configuration" class="hash-link" aria-label="Save your configuration への直接リンク" title="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 <!-- -->OIDC enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable OIDC enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Enable OIDC enterprise SSO connector in Sign-in Experience への直接リンク" title="Enable OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#testing-and-validation" class="hash-link" aria-label="Testing and Validation への直接リンク" title="Testing and Validation への直接リンク" translate="no">​</a></h2>
<p>Return to your <!-- -->WordPress plugin<!-- --> app. You should now be able to sign in with <!-- -->OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#further-readings" class="hash-link" aria-label="Further readings への直接リンク" title="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>
        <category label="SSO providers" term="SSO providers"/>
        <category label="oidc-enterprise-sso" term="oidc-enterprise-sso"/>
        <category label="wordpress-plugin" term="wordpress-plugin"/>
        <category label="php" term="php"/>
        <category label="SAML authentication" term="SAML authentication"/>
        <category label="enterprise login" term="enterprise login"/>
        <category label="SSO login" term="SSO login"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to build Okta enterprise SSO with WordPress plugin]]></title>
        <id>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto</id>
        <link href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto"/>
        <updated>2026-04-17T02:54:06.885Z</updated>
        <summary type="html"><![CDATA[{/*]]></summary>
        <content type="html"><![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/ja/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Create an application in Logto への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#integrate-with-logto" class="hash-link" aria-label="Integrate WordPress with Logto への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#install-the-plugin" class="hash-link" aria-label="Install the plugin への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#configure-the-plugin" class="hash-link" aria-label="Configure the plugin への直接リンク" title="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">注記<!-- -->:</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/ja/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#configure-redirect-uri" class="hash-link" aria-label="Configure redirect URI への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#checkpoint-test-your-website" class="hash-link" aria-label="Checkpoint: Test your WordPress website への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#add-connector-connector" class="hash-link" aria-label="Add Okta enterprise SSO connector への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Set up OIDC application on Okta admin portal への直接リンク" title="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/ja/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="Step 1: Create an OIDC application on Okta admin portal への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Step 2: Configure the application settings への直接リンク" title="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/ja/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="Step 3: Set up Logto connector with the client credentials への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Step 4: Additional scopes (Optional) への直接リンク" title="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">ヒント<!-- -->:</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/ja/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="Step 5: Store tokens to access Okta APIs (Optional) への直接リンク" title="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/ja/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="Step 6: Set email domains and enable the SSO connector への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#save-your-configuration" class="hash-link" aria-label="Save your configuration への直接リンク" title="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/ja/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="Enable Okta enterprise SSO connector in Sign-in Experience への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#testing-and-validation" class="hash-link" aria-label="Testing and Validation への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-wordpress-plugin-and-logto#further-readings" class="hash-link" aria-label="Further readings への直接リンク" title="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>
        <category label="SSO providers" term="SSO providers"/>
        <category label="okta-enterprise-sso" term="okta-enterprise-sso"/>
        <category label="wordpress-plugin" term="wordpress-plugin"/>
        <category label="php" term="php"/>
        <category label="SAML authentication" term="SAML authentication"/>
        <category label="enterprise login" term="enterprise login"/>
        <category label="SSO login" term="SSO login"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to build OIDC enterprise SSO with Android (Kotlin / Java)]]></title>
        <id>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-android-and-logto</id>
        <link href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-android-and-logto"/>
        <updated>2026-04-17T02:54:06.877Z</updated>
        <summary type="html"><![CDATA[{/*]]></summary>
        <content type="html"><![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 <!-- -->OIDC 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 <!-- -->OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-android-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Create an application in Logto への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-android-and-logto#integrate-with-logto" class="hash-link" aria-label="Integrate Android with Logto への直接リンク" title="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">ヒント<!-- -->:</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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-android-and-logto#installation" class="hash-link" aria-label="Installation への直接リンク" title="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">注記<!-- -->:</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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-android-and-logto#init-logtoclient" class="hash-link" aria-label="Init LogtoClient への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-android-and-logto#configure-redirect-uri" class="hash-link" aria-label="Configure redirect URI への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-android-and-logto#implement-sign-in-and-sign-out" class="hash-link" aria-label="Implement sign-in and sign-out への直接リンク" title="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">注記<!-- -->:</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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-android-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Checkpoint: Test your application への直接リンク" title="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 OIDC enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-android-and-logto#add-connector-connector" class="hash-link" aria-label="Add OIDC enterprise SSO connector への直接リンク" title="Add OIDC 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 your IdP<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-android-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Set up OIDC application on your IdP への直接リンク" title="Set up OIDC application on your IdP への直接リンク" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-your-idp">Step 1: Create an OIDC application on your IdP<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-android-and-logto#step-1-create-an-oidc-application-on-your-idp" class="hash-link" aria-label="Step 1: Create an OIDC application on your IdP への直接リンク" title="Step 1: Create an OIDC application on your IdP への直接リンク" translate="no">​</a></h3>
<p>Initiate the OIDC SSO integration by creating an application on the IdP side. You will need to provide the following configurations from the Logto server.</p>
<ul>
<li class=""><strong>Callback URI</strong>: The Logto Callback URI, also known as the Redirect URI or Reply URL, is a specific endpoint or URL that the IdP uses to 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 authorization code received from this URI.</li>
</ul>
<p>Fill in the Logto Callback URI in your IdP OIDC application settings form and continue to create the application. (Most of the OIDC IdPs provide a wide range of application types to choose from. To create a web-based SSO connector on Logto, please choose the <code>Web Application</code> type.)</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-oidc-sso-on-logto">Step 2: Configure OIDC SSO on Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-android-and-logto#step-2-configure-oidc-sso-on-logto" class="hash-link" aria-label="Step 2: Configure OIDC SSO on Logto への直接リンク" title="Step 2: Configure OIDC SSO on Logto への直接リンク" translate="no">​</a></h3>
<p>After successfully creating an OIDC application on the IdP side, you will need to provide the IdP configurations back to Logto. Navigate to the <code>Connection</code> tab, and fill in the following configurations:</p>
<ul>
<li class=""><strong>Client ID</strong>: A unique identifier assigned to your OIDC application by the IdP. This identifier is used by Logto to identify and authenticate the application during the OIDC flow.</li>
<li class=""><strong>Client Secret</strong>: A confidential secret shared between Logto and the IdP. This secret is used to authenticate the OIDC application and secure the communication between Logto and the IdP.</li>
<li class=""><strong>Issuer</strong>: The issuer URL, a unique identifier for the IdP, specifying the location where the OIDC identity provider can be found. It is a crucial part of the OIDC configuration as it helps Logto discover the necessary endpoints.
To make the configuration process easier. Logto will automatically fetch the required OIDC endpoints and configurations. This is done by utilizing the issuer you provided and making a call to the IdP's OIDC discover endpoints. It is imperative to ensure that the issuer endpoint is valid and accurately configured to enable Logto to retrieve the required information correctly.
After a successful fetch request, you should be able to see the parsed IdP configurations under the issuers section.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-configure-scopes-optional">Step 3: Configure scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-android-and-logto#step-3-configure-scopes-optional" class="hash-link" aria-label="Step 3: Configure scopes (Optional) への直接リンク" title="Step 3: Configure scopes (Optional) への直接リンク" translate="no">​</a></h2>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their enterprise accounts.</p>
<p>Setting up scopes requires configuration on both sides:</p>
<ol>
<li class=""><strong>Your Identity Provider (IdP)</strong>: Configure which permissions are allowed for authorization in your IdP console<!-- -->
<ul>
<li class="">Some IdPs enable all public scopes by default (no action needed)</li>
<li class="">Others require you to explicitly grant permissions</li>
</ul>
</li>
<li class=""><strong>Logto enterprise connector</strong>: Specify which scopes to request during authentication in the Logto OIDC enterprise connector settings &gt; <code>Scopes</code> field.<!-- -->
<ul>
<li class="">Logto always includes the <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information, regardless of your custom scope settings.</li>
<li class="">You can add additional scopes (separated by spaces) to request more information from the IdP.</li>
</ul>
</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">ヒント<!-- -->:</span><p>If your app needs to access APIs using these scopes, make sure to enable <strong>Store tokens for persistent API access</strong> in your Logto enterprise connector. See the next section for details.</p></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-store-tokens-to-access-third-party-apis-optional">Step 4: Store tokens to access third-party APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-android-and-logto#step-4-store-tokens-to-access-third-party-apis-optional" class="hash-link" aria-label="Step 4: Store tokens to access third-party APIs (Optional) への直接リンク" title="Step 4: Store tokens to access third-party APIs (Optional) への直接リンク" translate="no">​</a></h2>
<p>If you want to access the Identity Provider's APIs and perform actions with user authorization, Logto needs to get specific API scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in the <strong>scope</strong> field following the instructions above</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in the Logto OIDC enterprise connector. Logto will securely store access tokens in the Secret Vault.</li>
<li class="">For <strong>standard</strong> OIDC identity providers, the <code>offline_access</code> scope must be included to obtain a refresh token, preventing repeated user consent prompts.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-set-email-domains-and-enable-the-sso-connector">Step 5: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-android-and-logto#step-5-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Step 5: Set email domains and enable the SSO connector への直接リンク" title="Step 5: Set email domains and enable the SSO connector への直接リンク" translate="no">​</a></h2>
<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>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-android-and-logto#save-your-configuration" class="hash-link" aria-label="Save your configuration への直接リンク" title="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 <!-- -->OIDC enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable OIDC enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-android-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Enable OIDC enterprise SSO connector in Sign-in Experience への直接リンク" title="Enable OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-android-and-logto#testing-and-validation" class="hash-link" aria-label="Testing and Validation への直接リンク" title="Testing and Validation への直接リンク" translate="no">​</a></h2>
<p>Return to your <!-- -->Android (Kotlin / Java)<!-- --> app. You should now be able to sign in with <!-- -->OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-android-and-logto#further-readings" class="hash-link" aria-label="Further readings への直接リンク" title="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>
        <category label="SSO providers" term="SSO providers"/>
        <category label="oidc-enterprise-sso" term="oidc-enterprise-sso"/>
        <category label="android" term="android"/>
        <category label="kotlin/java" term="kotlin/java"/>
        <category label="SAML authentication" term="SAML authentication"/>
        <category label="enterprise login" term="enterprise login"/>
        <category label="SSO login" term="SSO login"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to build Okta enterprise SSO with Android (Kotlin / Java)]]></title>
        <id>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto</id>
        <link href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto"/>
        <updated>2026-04-17T02:54:06.877Z</updated>
        <summary type="html"><![CDATA[{/*]]></summary>
        <content type="html"><![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/ja/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Create an application in Logto への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#integrate-with-logto" class="hash-link" aria-label="Integrate Android with Logto への直接リンク" title="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">ヒント<!-- -->:</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/ja/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#installation" class="hash-link" aria-label="Installation への直接リンク" title="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">注記<!-- -->:</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/ja/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#init-logtoclient" class="hash-link" aria-label="Init LogtoClient への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#configure-redirect-uri" class="hash-link" aria-label="Configure redirect URI への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#implement-sign-in-and-sign-out" class="hash-link" aria-label="Implement sign-in and sign-out への直接リンク" title="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">注記<!-- -->:</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/ja/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Checkpoint: Test your application への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#add-connector-connector" class="hash-link" aria-label="Add Okta enterprise SSO connector への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Set up OIDC application on Okta admin portal への直接リンク" title="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/ja/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="Step 1: Create an OIDC application on Okta admin portal への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Step 2: Configure the application settings への直接リンク" title="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/ja/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="Step 3: Set up Logto connector with the client credentials への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Step 4: Additional scopes (Optional) への直接リンク" title="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">ヒント<!-- -->:</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/ja/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="Step 5: Store tokens to access Okta APIs (Optional) への直接リンク" title="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/ja/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="Step 6: Set email domains and enable the SSO connector への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#save-your-configuration" class="hash-link" aria-label="Save your configuration への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Enable Okta enterprise SSO connector in Sign-in Experience への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#testing-and-validation" class="hash-link" aria-label="Testing and Validation への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-android-and-logto#further-readings" class="hash-link" aria-label="Further readings への直接リンク" title="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>
        <category label="SSO providers" term="SSO providers"/>
        <category label="okta-enterprise-sso" term="okta-enterprise-sso"/>
        <category label="android" term="android"/>
        <category label="kotlin/java" term="kotlin/java"/>
        <category label="SAML authentication" term="SAML authentication"/>
        <category label="enterprise login" term="enterprise login"/>
        <category label="SSO login" term="SSO login"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to build OIDC enterprise SSO with .NET Core (Blazor Server)]]></title>
        <id>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto</id>
        <link href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto"/>
        <updated>2026-04-17T02:54:06.877Z</updated>
        <summary type="html"><![CDATA[{/*]]></summary>
        <content type="html"><![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 <!-- -->OIDC 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 <!-- -->OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Create an application in Logto への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#integrate-with-logto" class="hash-link" aria-label="Integrate .Net Core (Blazor Server) with Logto への直接リンク" title="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">ヒント<!-- -->:</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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#installation" class="hash-link" aria-label="Installation への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#add-logto-authentication" class="hash-link" aria-label="Add Logto authentication への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#sign-in-and-sign-out-flows" class="hash-link" aria-label="Sign-in and sign-out flows への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Regarding redirect-based sign-in への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#configure-redirect-uris" class="hash-link" aria-label="Configure redirect URIs への直接リンク" title="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">注記<!-- -->:</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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#change-the-default-paths" class="hash-link" aria-label="Change the default paths への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#add-routes" class="hash-link" aria-label="Add routes への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#implement-sign-insign-out-buttons" class="hash-link" aria-label="Implement sign-in/sign-out buttons への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#the-authorizeview--component" class="hash-link" aria-label="the-authorizeview--component への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Checkpoint: Test your application への直接リンク" title="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 OIDC enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#add-connector-connector" class="hash-link" aria-label="Add OIDC enterprise SSO connector への直接リンク" title="Add OIDC 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 your IdP<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Set up OIDC application on your IdP への直接リンク" title="Set up OIDC application on your IdP への直接リンク" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-your-idp">Step 1: Create an OIDC application on your IdP<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#step-1-create-an-oidc-application-on-your-idp" class="hash-link" aria-label="Step 1: Create an OIDC application on your IdP への直接リンク" title="Step 1: Create an OIDC application on your IdP への直接リンク" translate="no">​</a></h3>
<p>Initiate the OIDC SSO integration by creating an application on the IdP side. You will need to provide the following configurations from the Logto server.</p>
<ul>
<li class=""><strong>Callback URI</strong>: The Logto Callback URI, also known as the Redirect URI or Reply URL, is a specific endpoint or URL that the IdP uses to 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 authorization code received from this URI.</li>
</ul>
<p>Fill in the Logto Callback URI in your IdP OIDC application settings form and continue to create the application. (Most of the OIDC IdPs provide a wide range of application types to choose from. To create a web-based SSO connector on Logto, please choose the <code>Web Application</code> type.)</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-oidc-sso-on-logto">Step 2: Configure OIDC SSO on Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#step-2-configure-oidc-sso-on-logto" class="hash-link" aria-label="Step 2: Configure OIDC SSO on Logto への直接リンク" title="Step 2: Configure OIDC SSO on Logto への直接リンク" translate="no">​</a></h3>
<p>After successfully creating an OIDC application on the IdP side, you will need to provide the IdP configurations back to Logto. Navigate to the <code>Connection</code> tab, and fill in the following configurations:</p>
<ul>
<li class=""><strong>Client ID</strong>: A unique identifier assigned to your OIDC application by the IdP. This identifier is used by Logto to identify and authenticate the application during the OIDC flow.</li>
<li class=""><strong>Client Secret</strong>: A confidential secret shared between Logto and the IdP. This secret is used to authenticate the OIDC application and secure the communication between Logto and the IdP.</li>
<li class=""><strong>Issuer</strong>: The issuer URL, a unique identifier for the IdP, specifying the location where the OIDC identity provider can be found. It is a crucial part of the OIDC configuration as it helps Logto discover the necessary endpoints.
To make the configuration process easier. Logto will automatically fetch the required OIDC endpoints and configurations. This is done by utilizing the issuer you provided and making a call to the IdP's OIDC discover endpoints. It is imperative to ensure that the issuer endpoint is valid and accurately configured to enable Logto to retrieve the required information correctly.
After a successful fetch request, you should be able to see the parsed IdP configurations under the issuers section.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-configure-scopes-optional">Step 3: Configure scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#step-3-configure-scopes-optional" class="hash-link" aria-label="Step 3: Configure scopes (Optional) への直接リンク" title="Step 3: Configure scopes (Optional) への直接リンク" translate="no">​</a></h2>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their enterprise accounts.</p>
<p>Setting up scopes requires configuration on both sides:</p>
<ol>
<li class=""><strong>Your Identity Provider (IdP)</strong>: Configure which permissions are allowed for authorization in your IdP console<!-- -->
<ul>
<li class="">Some IdPs enable all public scopes by default (no action needed)</li>
<li class="">Others require you to explicitly grant permissions</li>
</ul>
</li>
<li class=""><strong>Logto enterprise connector</strong>: Specify which scopes to request during authentication in the Logto OIDC enterprise connector settings &gt; <code>Scopes</code> field.<!-- -->
<ul>
<li class="">Logto always includes the <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information, regardless of your custom scope settings.</li>
<li class="">You can add additional scopes (separated by spaces) to request more information from the IdP.</li>
</ul>
</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">ヒント<!-- -->:</span><p>If your app needs to access APIs using these scopes, make sure to enable <strong>Store tokens for persistent API access</strong> in your Logto enterprise connector. See the next section for details.</p></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-store-tokens-to-access-third-party-apis-optional">Step 4: Store tokens to access third-party APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#step-4-store-tokens-to-access-third-party-apis-optional" class="hash-link" aria-label="Step 4: Store tokens to access third-party APIs (Optional) への直接リンク" title="Step 4: Store tokens to access third-party APIs (Optional) への直接リンク" translate="no">​</a></h2>
<p>If you want to access the Identity Provider's APIs and perform actions with user authorization, Logto needs to get specific API scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in the <strong>scope</strong> field following the instructions above</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in the Logto OIDC enterprise connector. Logto will securely store access tokens in the Secret Vault.</li>
<li class="">For <strong>standard</strong> OIDC identity providers, the <code>offline_access</code> scope must be included to obtain a refresh token, preventing repeated user consent prompts.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-set-email-domains-and-enable-the-sso-connector">Step 5: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#step-5-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Step 5: Set email domains and enable the SSO connector への直接リンク" title="Step 5: Set email domains and enable the SSO connector への直接リンク" translate="no">​</a></h2>
<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>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#save-your-configuration" class="hash-link" aria-label="Save your configuration への直接リンク" title="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 <!-- -->OIDC enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable OIDC enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Enable OIDC enterprise SSO connector in Sign-in Experience への直接リンク" title="Enable OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#testing-and-validation" class="hash-link" aria-label="Testing and Validation への直接リンク" title="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 <!-- -->OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#further-readings" class="hash-link" aria-label="Further readings への直接リンク" title="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>
        <category label="SSO providers" term="SSO providers"/>
        <category label="oidc-enterprise-sso" term="oidc-enterprise-sso"/>
        <category label="dotnet-core-blazor-server" term="dotnet-core-blazor-server"/>
        <category label="c#" term="c#"/>
        <category label="SAML authentication" term="SAML authentication"/>
        <category label="enterprise login" term="enterprise login"/>
        <category label="SSO login" term="SSO login"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to build Okta enterprise SSO with .NET Core (Blazor Server)]]></title>
        <id>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto</id>
        <link href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto"/>
        <updated>2026-04-17T02:54:06.877Z</updated>
        <summary type="html"><![CDATA[{/*]]></summary>
        <content type="html"><![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/ja/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="Create an application in Logto への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#integrate-with-logto" class="hash-link" aria-label="Integrate .Net Core (Blazor Server) with Logto への直接リンク" title="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">ヒント<!-- -->:</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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#installation" class="hash-link" aria-label="Installation への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#add-logto-authentication" class="hash-link" aria-label="Add Logto authentication への直接リンク" title="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/ja/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="Sign-in and sign-out flows への直接リンク" title="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/ja/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="Regarding redirect-based sign-in への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#configure-redirect-uris" class="hash-link" aria-label="Configure redirect URIs への直接リンク" title="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">注記<!-- -->:</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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#change-the-default-paths" class="hash-link" aria-label="Change the default paths への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#add-routes" class="hash-link" aria-label="Add routes への直接リンク" title="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/ja/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="Implement sign-in/sign-out buttons への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#the-authorizeview--component" class="hash-link" aria-label="the-authorizeview--component への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Checkpoint: Test your application への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#add-connector-connector" class="hash-link" aria-label="Add Okta enterprise SSO connector への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Set up OIDC application on Okta admin portal への直接リンク" title="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/ja/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="Step 1: Create an OIDC application on Okta admin portal への直接リンク" title="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/ja/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="Step 2: Configure the application settings への直接リンク" title="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/ja/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="Step 3: Set up Logto connector with the client credentials への直接リンク" title="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/ja/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="Step 4: Additional scopes (Optional) への直接リンク" title="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">ヒント<!-- -->:</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/ja/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="Step 5: Store tokens to access Okta APIs (Optional) への直接リンク" title="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/ja/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="Step 6: Set email domains and enable the SSO connector への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#save-your-configuration" class="hash-link" aria-label="Save your configuration への直接リンク" title="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/ja/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="Enable Okta enterprise SSO connector in Sign-in Experience への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#testing-and-validation" class="hash-link" aria-label="Testing and Validation への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-server-and-logto#further-readings" class="hash-link" aria-label="Further readings への直接リンク" title="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>
        <category label="SSO providers" term="SSO providers"/>
        <category label="okta-enterprise-sso" term="okta-enterprise-sso"/>
        <category label="dotnet-core-blazor-server" term="dotnet-core-blazor-server"/>
        <category label="c#" term="c#"/>
        <category label="SAML authentication" term="SAML authentication"/>
        <category label="enterprise login" term="enterprise login"/>
        <category label="SSO login" term="SSO login"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to build OIDC enterprise SSO with .NET Core (Blazor WebAssembly)]]></title>
        <id>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto</id>
        <link href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto"/>
        <updated>2026-04-17T02:54:06.877Z</updated>
        <summary type="html"><![CDATA[{/*]]></summary>
        <content type="html"><![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 <!-- -->OIDC 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 <!-- -->OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Create an application in Logto への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#integrate-with-logto" class="hash-link" aria-label="Integrate .NET Core (Blazor WebAssembly) with Logto への直接リンク" title="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">ヒント<!-- -->:</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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#installation" class="hash-link" aria-label="Installation への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#add-script-references" class="hash-link" aria-label="Add script references への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#register-services" class="hash-link" aria-label="Register services への直接リンク" title="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">備考<!-- -->:</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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#configure-redirect-uris" class="hash-link" aria-label="Configure redirect URIs への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Regarding redirect-based sign-in への直接リンク" title="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">注記<!-- -->:</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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#configure-redirect-uris" class="hash-link" aria-label="Configure redirect URIs への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#configure-application" class="hash-link" aria-label="Configure application への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#add-authorizeview-component" class="hash-link" aria-label="add-authorizeview-component への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#set-up-authentication" class="hash-link" aria-label="Set up authentication への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Checkpoint: Test your application への直接リンク" title="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 OIDC enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#add-connector-connector" class="hash-link" aria-label="Add OIDC enterprise SSO connector への直接リンク" title="Add OIDC 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 your IdP<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Set up OIDC application on your IdP への直接リンク" title="Set up OIDC application on your IdP への直接リンク" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-your-idp">Step 1: Create an OIDC application on your IdP<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#step-1-create-an-oidc-application-on-your-idp" class="hash-link" aria-label="Step 1: Create an OIDC application on your IdP への直接リンク" title="Step 1: Create an OIDC application on your IdP への直接リンク" translate="no">​</a></h3>
<p>Initiate the OIDC SSO integration by creating an application on the IdP side. You will need to provide the following configurations from the Logto server.</p>
<ul>
<li class=""><strong>Callback URI</strong>: The Logto Callback URI, also known as the Redirect URI or Reply URL, is a specific endpoint or URL that the IdP uses to 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 authorization code received from this URI.</li>
</ul>
<p>Fill in the Logto Callback URI in your IdP OIDC application settings form and continue to create the application. (Most of the OIDC IdPs provide a wide range of application types to choose from. To create a web-based SSO connector on Logto, please choose the <code>Web Application</code> type.)</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-oidc-sso-on-logto">Step 2: Configure OIDC SSO on Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#step-2-configure-oidc-sso-on-logto" class="hash-link" aria-label="Step 2: Configure OIDC SSO on Logto への直接リンク" title="Step 2: Configure OIDC SSO on Logto への直接リンク" translate="no">​</a></h3>
<p>After successfully creating an OIDC application on the IdP side, you will need to provide the IdP configurations back to Logto. Navigate to the <code>Connection</code> tab, and fill in the following configurations:</p>
<ul>
<li class=""><strong>Client ID</strong>: A unique identifier assigned to your OIDC application by the IdP. This identifier is used by Logto to identify and authenticate the application during the OIDC flow.</li>
<li class=""><strong>Client Secret</strong>: A confidential secret shared between Logto and the IdP. This secret is used to authenticate the OIDC application and secure the communication between Logto and the IdP.</li>
<li class=""><strong>Issuer</strong>: The issuer URL, a unique identifier for the IdP, specifying the location where the OIDC identity provider can be found. It is a crucial part of the OIDC configuration as it helps Logto discover the necessary endpoints.
To make the configuration process easier. Logto will automatically fetch the required OIDC endpoints and configurations. This is done by utilizing the issuer you provided and making a call to the IdP's OIDC discover endpoints. It is imperative to ensure that the issuer endpoint is valid and accurately configured to enable Logto to retrieve the required information correctly.
After a successful fetch request, you should be able to see the parsed IdP configurations under the issuers section.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-configure-scopes-optional">Step 3: Configure scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#step-3-configure-scopes-optional" class="hash-link" aria-label="Step 3: Configure scopes (Optional) への直接リンク" title="Step 3: Configure scopes (Optional) への直接リンク" translate="no">​</a></h2>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their enterprise accounts.</p>
<p>Setting up scopes requires configuration on both sides:</p>
<ol>
<li class=""><strong>Your Identity Provider (IdP)</strong>: Configure which permissions are allowed for authorization in your IdP console<!-- -->
<ul>
<li class="">Some IdPs enable all public scopes by default (no action needed)</li>
<li class="">Others require you to explicitly grant permissions</li>
</ul>
</li>
<li class=""><strong>Logto enterprise connector</strong>: Specify which scopes to request during authentication in the Logto OIDC enterprise connector settings &gt; <code>Scopes</code> field.<!-- -->
<ul>
<li class="">Logto always includes the <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information, regardless of your custom scope settings.</li>
<li class="">You can add additional scopes (separated by spaces) to request more information from the IdP.</li>
</ul>
</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">ヒント<!-- -->:</span><p>If your app needs to access APIs using these scopes, make sure to enable <strong>Store tokens for persistent API access</strong> in your Logto enterprise connector. See the next section for details.</p></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-store-tokens-to-access-third-party-apis-optional">Step 4: Store tokens to access third-party APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#step-4-store-tokens-to-access-third-party-apis-optional" class="hash-link" aria-label="Step 4: Store tokens to access third-party APIs (Optional) への直接リンク" title="Step 4: Store tokens to access third-party APIs (Optional) への直接リンク" translate="no">​</a></h2>
<p>If you want to access the Identity Provider's APIs and perform actions with user authorization, Logto needs to get specific API scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in the <strong>scope</strong> field following the instructions above</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in the Logto OIDC enterprise connector. Logto will securely store access tokens in the Secret Vault.</li>
<li class="">For <strong>standard</strong> OIDC identity providers, the <code>offline_access</code> scope must be included to obtain a refresh token, preventing repeated user consent prompts.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-set-email-domains-and-enable-the-sso-connector">Step 5: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#step-5-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Step 5: Set email domains and enable the SSO connector への直接リンク" title="Step 5: Set email domains and enable the SSO connector への直接リンク" translate="no">​</a></h2>
<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>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#save-your-configuration" class="hash-link" aria-label="Save your configuration への直接リンク" title="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 <!-- -->OIDC enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable OIDC enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Enable OIDC enterprise SSO connector in Sign-in Experience への直接リンク" title="Enable OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#testing-and-validation" class="hash-link" aria-label="Testing and Validation への直接リンク" title="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 <!-- -->OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#further-readings" class="hash-link" aria-label="Further readings への直接リンク" title="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>
        <category label="SSO providers" term="SSO providers"/>
        <category label="oidc-enterprise-sso" term="oidc-enterprise-sso"/>
        <category label="dotnet-core-blazor-webassembly" term="dotnet-core-blazor-webassembly"/>
        <category label="c#" term="c#"/>
        <category label="SAML authentication" term="SAML authentication"/>
        <category label="enterprise login" term="enterprise login"/>
        <category label="SSO login" term="SSO login"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to build Okta enterprise SSO with .NET Core (Blazor WebAssembly)]]></title>
        <id>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto</id>
        <link href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto"/>
        <updated>2026-04-17T02:54:06.877Z</updated>
        <summary type="html"><![CDATA[{/*]]></summary>
        <content type="html"><![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/ja/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="Create an application in Logto への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#integrate-with-logto" class="hash-link" aria-label="Integrate .NET Core (Blazor WebAssembly) with Logto への直接リンク" title="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">ヒント<!-- -->:</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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#installation" class="hash-link" aria-label="Installation への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#add-script-references" class="hash-link" aria-label="Add script references への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#register-services" class="hash-link" aria-label="Register services への直接リンク" title="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">備考<!-- -->:</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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#configure-redirect-uris" class="hash-link" aria-label="Configure redirect URIs への直接リンク" title="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/ja/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="Regarding redirect-based sign-in への直接リンク" title="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">注記<!-- -->:</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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#configure-redirect-uris" class="hash-link" aria-label="Configure redirect URIs への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#configure-application" class="hash-link" aria-label="Configure application への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#add-authorizeview-component" class="hash-link" aria-label="add-authorizeview-component への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#set-up-authentication" class="hash-link" aria-label="Set up authentication への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Checkpoint: Test your application への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#add-connector-connector" class="hash-link" aria-label="Add Okta enterprise SSO connector への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Set up OIDC application on Okta admin portal への直接リンク" title="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/ja/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="Step 1: Create an OIDC application on Okta admin portal への直接リンク" title="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/ja/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="Step 2: Configure the application settings への直接リンク" title="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/ja/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="Step 3: Set up Logto connector with the client credentials への直接リンク" title="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/ja/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="Step 4: Additional scopes (Optional) への直接リンク" title="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">ヒント<!-- -->:</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/ja/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="Step 5: Store tokens to access Okta APIs (Optional) への直接リンク" title="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/ja/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="Step 6: Set email domains and enable the SSO connector への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#save-your-configuration" class="hash-link" aria-label="Save your configuration への直接リンク" title="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/ja/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="Enable Okta enterprise SSO connector in Sign-in Experience への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#testing-and-validation" class="hash-link" aria-label="Testing and Validation への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-blazor-webassembly-and-logto#further-readings" class="hash-link" aria-label="Further readings への直接リンク" title="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>
        <category label="SSO providers" term="SSO providers"/>
        <category label="okta-enterprise-sso" term="okta-enterprise-sso"/>
        <category label="dotnet-core-blazor-webassembly" term="dotnet-core-blazor-webassembly"/>
        <category label="c#" term="c#"/>
        <category label="SAML authentication" term="SAML authentication"/>
        <category label="enterprise login" term="enterprise login"/>
        <category label="SSO login" term="SSO login"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to build OIDC enterprise SSO with .NET Core (MVC)]]></title>
        <id>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto</id>
        <link href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto"/>
        <updated>2026-04-17T02:54:06.877Z</updated>
        <summary type="html"><![CDATA[{/*]]></summary>
        <content type="html"><![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 <!-- -->OIDC 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 <!-- -->OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Create an application in Logto への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#integrate-with-logto" class="hash-link" aria-label="Integrate .NET Core (MVC) with Logto への直接リンク" title="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">ヒント<!-- -->:</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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#installation" class="hash-link" aria-label="Installation への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#add-logto-authentication" class="hash-link" aria-label="Add Logto authentication への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#sign-in-and-sign-out-flows" class="hash-link" aria-label="Sign-in and sign-out flows への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Regarding redirect-based sign-in への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#configure-redirect-uris" class="hash-link" aria-label="Configure redirect URIs への直接リンク" title="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">注記<!-- -->:</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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#change-the-default-paths" class="hash-link" aria-label="Change the default paths への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#implement-sign-insign-out-buttons" class="hash-link" aria-label="Implement sign-in/sign-out buttons への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Checkpoint: Test your application への直接リンク" title="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 OIDC enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#add-connector-connector" class="hash-link" aria-label="Add OIDC enterprise SSO connector への直接リンク" title="Add OIDC 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 your IdP<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Set up OIDC application on your IdP への直接リンク" title="Set up OIDC application on your IdP への直接リンク" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-your-idp">Step 1: Create an OIDC application on your IdP<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#step-1-create-an-oidc-application-on-your-idp" class="hash-link" aria-label="Step 1: Create an OIDC application on your IdP への直接リンク" title="Step 1: Create an OIDC application on your IdP への直接リンク" translate="no">​</a></h3>
<p>Initiate the OIDC SSO integration by creating an application on the IdP side. You will need to provide the following configurations from the Logto server.</p>
<ul>
<li class=""><strong>Callback URI</strong>: The Logto Callback URI, also known as the Redirect URI or Reply URL, is a specific endpoint or URL that the IdP uses to 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 authorization code received from this URI.</li>
</ul>
<p>Fill in the Logto Callback URI in your IdP OIDC application settings form and continue to create the application. (Most of the OIDC IdPs provide a wide range of application types to choose from. To create a web-based SSO connector on Logto, please choose the <code>Web Application</code> type.)</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-oidc-sso-on-logto">Step 2: Configure OIDC SSO on Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#step-2-configure-oidc-sso-on-logto" class="hash-link" aria-label="Step 2: Configure OIDC SSO on Logto への直接リンク" title="Step 2: Configure OIDC SSO on Logto への直接リンク" translate="no">​</a></h3>
<p>After successfully creating an OIDC application on the IdP side, you will need to provide the IdP configurations back to Logto. Navigate to the <code>Connection</code> tab, and fill in the following configurations:</p>
<ul>
<li class=""><strong>Client ID</strong>: A unique identifier assigned to your OIDC application by the IdP. This identifier is used by Logto to identify and authenticate the application during the OIDC flow.</li>
<li class=""><strong>Client Secret</strong>: A confidential secret shared between Logto and the IdP. This secret is used to authenticate the OIDC application and secure the communication between Logto and the IdP.</li>
<li class=""><strong>Issuer</strong>: The issuer URL, a unique identifier for the IdP, specifying the location where the OIDC identity provider can be found. It is a crucial part of the OIDC configuration as it helps Logto discover the necessary endpoints.
To make the configuration process easier. Logto will automatically fetch the required OIDC endpoints and configurations. This is done by utilizing the issuer you provided and making a call to the IdP's OIDC discover endpoints. It is imperative to ensure that the issuer endpoint is valid and accurately configured to enable Logto to retrieve the required information correctly.
After a successful fetch request, you should be able to see the parsed IdP configurations under the issuers section.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-configure-scopes-optional">Step 3: Configure scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#step-3-configure-scopes-optional" class="hash-link" aria-label="Step 3: Configure scopes (Optional) への直接リンク" title="Step 3: Configure scopes (Optional) への直接リンク" translate="no">​</a></h2>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their enterprise accounts.</p>
<p>Setting up scopes requires configuration on both sides:</p>
<ol>
<li class=""><strong>Your Identity Provider (IdP)</strong>: Configure which permissions are allowed for authorization in your IdP console<!-- -->
<ul>
<li class="">Some IdPs enable all public scopes by default (no action needed)</li>
<li class="">Others require you to explicitly grant permissions</li>
</ul>
</li>
<li class=""><strong>Logto enterprise connector</strong>: Specify which scopes to request during authentication in the Logto OIDC enterprise connector settings &gt; <code>Scopes</code> field.<!-- -->
<ul>
<li class="">Logto always includes the <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information, regardless of your custom scope settings.</li>
<li class="">You can add additional scopes (separated by spaces) to request more information from the IdP.</li>
</ul>
</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">ヒント<!-- -->:</span><p>If your app needs to access APIs using these scopes, make sure to enable <strong>Store tokens for persistent API access</strong> in your Logto enterprise connector. See the next section for details.</p></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-store-tokens-to-access-third-party-apis-optional">Step 4: Store tokens to access third-party APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#step-4-store-tokens-to-access-third-party-apis-optional" class="hash-link" aria-label="Step 4: Store tokens to access third-party APIs (Optional) への直接リンク" title="Step 4: Store tokens to access third-party APIs (Optional) への直接リンク" translate="no">​</a></h2>
<p>If you want to access the Identity Provider's APIs and perform actions with user authorization, Logto needs to get specific API scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in the <strong>scope</strong> field following the instructions above</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in the Logto OIDC enterprise connector. Logto will securely store access tokens in the Secret Vault.</li>
<li class="">For <strong>standard</strong> OIDC identity providers, the <code>offline_access</code> scope must be included to obtain a refresh token, preventing repeated user consent prompts.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-set-email-domains-and-enable-the-sso-connector">Step 5: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#step-5-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Step 5: Set email domains and enable the SSO connector への直接リンク" title="Step 5: Set email domains and enable the SSO connector への直接リンク" translate="no">​</a></h2>
<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>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#save-your-configuration" class="hash-link" aria-label="Save your configuration への直接リンク" title="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 <!-- -->OIDC enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable OIDC enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Enable OIDC enterprise SSO connector in Sign-in Experience への直接リンク" title="Enable OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#testing-and-validation" class="hash-link" aria-label="Testing and Validation への直接リンク" title="Testing and Validation への直接リンク" translate="no">​</a></h2>
<p>Return to your <!-- -->.NET Core (MVC)<!-- --> app. You should now be able to sign in with <!-- -->OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#further-readings" class="hash-link" aria-label="Further readings への直接リンク" title="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>
        <category label="SSO providers" term="SSO providers"/>
        <category label="oidc-enterprise-sso" term="oidc-enterprise-sso"/>
        <category label="dotnet-core-mvc" term="dotnet-core-mvc"/>
        <category label="c#" term="c#"/>
        <category label="SAML authentication" term="SAML authentication"/>
        <category label="enterprise login" term="enterprise login"/>
        <category label="SSO login" term="SSO login"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to build Okta enterprise SSO with .NET Core (MVC)]]></title>
        <id>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto</id>
        <link href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto"/>
        <updated>2026-04-17T02:54:06.877Z</updated>
        <summary type="html"><![CDATA[{/*]]></summary>
        <content type="html"><![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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Create an application in Logto への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#integrate-with-logto" class="hash-link" aria-label="Integrate .NET Core (MVC) with Logto への直接リンク" title="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">ヒント<!-- -->:</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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#installation" class="hash-link" aria-label="Installation への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#add-logto-authentication" class="hash-link" aria-label="Add Logto authentication への直接リンク" title="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/ja/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="Sign-in and sign-out flows への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Regarding redirect-based sign-in への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#configure-redirect-uris" class="hash-link" aria-label="Configure redirect URIs への直接リンク" title="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">注記<!-- -->:</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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#change-the-default-paths" class="hash-link" aria-label="Change the default paths への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#implement-sign-insign-out-buttons" class="hash-link" aria-label="Implement sign-in/sign-out buttons への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Checkpoint: Test your application への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#add-connector-connector" class="hash-link" aria-label="Add Okta enterprise SSO connector への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Set up OIDC application on Okta admin portal への直接リンク" title="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/ja/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="Step 1: Create an OIDC application on Okta admin portal への直接リンク" title="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/ja/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="Step 2: Configure the application settings への直接リンク" title="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/ja/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="Step 3: Set up Logto connector with the client credentials への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Step 4: Additional scopes (Optional) への直接リンク" title="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">ヒント<!-- -->:</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/ja/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="Step 5: Store tokens to access Okta APIs (Optional) への直接リンク" title="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/ja/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="Step 6: Set email domains and enable the SSO connector への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#save-your-configuration" class="hash-link" aria-label="Save your configuration への直接リンク" title="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/ja/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="Enable Okta enterprise SSO connector in Sign-in Experience への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#testing-and-validation" class="hash-link" aria-label="Testing and Validation への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-mvc-and-logto#further-readings" class="hash-link" aria-label="Further readings への直接リンク" title="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>
        <category label="SSO providers" term="SSO providers"/>
        <category label="okta-enterprise-sso" term="okta-enterprise-sso"/>
        <category label="dotnet-core-mvc" term="dotnet-core-mvc"/>
        <category label="c#" term="c#"/>
        <category label="SAML authentication" term="SAML authentication"/>
        <category label="enterprise login" term="enterprise login"/>
        <category label="SSO login" term="SSO login"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to build OIDC enterprise SSO with .NET Core (Razor Pages)]]></title>
        <id>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto</id>
        <link href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto"/>
        <updated>2026-04-17T02:54:06.877Z</updated>
        <summary type="html"><![CDATA[{/*]]></summary>
        <content type="html"><![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 <!-- -->OIDC 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 <!-- -->OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Create an application in Logto への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#integrate-with-logto" class="hash-link" aria-label="Integrate .NET Core (Razor Pages) with Logto への直接リンク" title="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">ヒント<!-- -->:</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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#installation" class="hash-link" aria-label="Installation への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#add-logto-authentication" class="hash-link" aria-label="Add Logto authentication への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#sign-in-and-sign-out-flows" class="hash-link" aria-label="Sign-in and sign-out flows への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Regarding redirect-based sign-in への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#configure-redirect-uris" class="hash-link" aria-label="Configure redirect URIs への直接リンク" title="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">注記<!-- -->:</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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#change-the-default-paths" class="hash-link" aria-label="Change the default paths への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#implement-sign-insign-out-buttons" class="hash-link" aria-label="Implement sign-in/sign-out buttons への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Checkpoint: Test your application への直接リンク" title="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 OIDC enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#add-connector-connector" class="hash-link" aria-label="Add OIDC enterprise SSO connector への直接リンク" title="Add OIDC 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 your IdP<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Set up OIDC application on your IdP への直接リンク" title="Set up OIDC application on your IdP への直接リンク" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-your-idp">Step 1: Create an OIDC application on your IdP<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#step-1-create-an-oidc-application-on-your-idp" class="hash-link" aria-label="Step 1: Create an OIDC application on your IdP への直接リンク" title="Step 1: Create an OIDC application on your IdP への直接リンク" translate="no">​</a></h3>
<p>Initiate the OIDC SSO integration by creating an application on the IdP side. You will need to provide the following configurations from the Logto server.</p>
<ul>
<li class=""><strong>Callback URI</strong>: The Logto Callback URI, also known as the Redirect URI or Reply URL, is a specific endpoint or URL that the IdP uses to 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 authorization code received from this URI.</li>
</ul>
<p>Fill in the Logto Callback URI in your IdP OIDC application settings form and continue to create the application. (Most of the OIDC IdPs provide a wide range of application types to choose from. To create a web-based SSO connector on Logto, please choose the <code>Web Application</code> type.)</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-oidc-sso-on-logto">Step 2: Configure OIDC SSO on Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#step-2-configure-oidc-sso-on-logto" class="hash-link" aria-label="Step 2: Configure OIDC SSO on Logto への直接リンク" title="Step 2: Configure OIDC SSO on Logto への直接リンク" translate="no">​</a></h3>
<p>After successfully creating an OIDC application on the IdP side, you will need to provide the IdP configurations back to Logto. Navigate to the <code>Connection</code> tab, and fill in the following configurations:</p>
<ul>
<li class=""><strong>Client ID</strong>: A unique identifier assigned to your OIDC application by the IdP. This identifier is used by Logto to identify and authenticate the application during the OIDC flow.</li>
<li class=""><strong>Client Secret</strong>: A confidential secret shared between Logto and the IdP. This secret is used to authenticate the OIDC application and secure the communication between Logto and the IdP.</li>
<li class=""><strong>Issuer</strong>: The issuer URL, a unique identifier for the IdP, specifying the location where the OIDC identity provider can be found. It is a crucial part of the OIDC configuration as it helps Logto discover the necessary endpoints.
To make the configuration process easier. Logto will automatically fetch the required OIDC endpoints and configurations. This is done by utilizing the issuer you provided and making a call to the IdP's OIDC discover endpoints. It is imperative to ensure that the issuer endpoint is valid and accurately configured to enable Logto to retrieve the required information correctly.
After a successful fetch request, you should be able to see the parsed IdP configurations under the issuers section.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-configure-scopes-optional">Step 3: Configure scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#step-3-configure-scopes-optional" class="hash-link" aria-label="Step 3: Configure scopes (Optional) への直接リンク" title="Step 3: Configure scopes (Optional) への直接リンク" translate="no">​</a></h2>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their enterprise accounts.</p>
<p>Setting up scopes requires configuration on both sides:</p>
<ol>
<li class=""><strong>Your Identity Provider (IdP)</strong>: Configure which permissions are allowed for authorization in your IdP console<!-- -->
<ul>
<li class="">Some IdPs enable all public scopes by default (no action needed)</li>
<li class="">Others require you to explicitly grant permissions</li>
</ul>
</li>
<li class=""><strong>Logto enterprise connector</strong>: Specify which scopes to request during authentication in the Logto OIDC enterprise connector settings &gt; <code>Scopes</code> field.<!-- -->
<ul>
<li class="">Logto always includes the <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information, regardless of your custom scope settings.</li>
<li class="">You can add additional scopes (separated by spaces) to request more information from the IdP.</li>
</ul>
</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">ヒント<!-- -->:</span><p>If your app needs to access APIs using these scopes, make sure to enable <strong>Store tokens for persistent API access</strong> in your Logto enterprise connector. See the next section for details.</p></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-store-tokens-to-access-third-party-apis-optional">Step 4: Store tokens to access third-party APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#step-4-store-tokens-to-access-third-party-apis-optional" class="hash-link" aria-label="Step 4: Store tokens to access third-party APIs (Optional) への直接リンク" title="Step 4: Store tokens to access third-party APIs (Optional) への直接リンク" translate="no">​</a></h2>
<p>If you want to access the Identity Provider's APIs and perform actions with user authorization, Logto needs to get specific API scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in the <strong>scope</strong> field following the instructions above</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in the Logto OIDC enterprise connector. Logto will securely store access tokens in the Secret Vault.</li>
<li class="">For <strong>standard</strong> OIDC identity providers, the <code>offline_access</code> scope must be included to obtain a refresh token, preventing repeated user consent prompts.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-set-email-domains-and-enable-the-sso-connector">Step 5: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#step-5-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Step 5: Set email domains and enable the SSO connector への直接リンク" title="Step 5: Set email domains and enable the SSO connector への直接リンク" translate="no">​</a></h2>
<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>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#save-your-configuration" class="hash-link" aria-label="Save your configuration への直接リンク" title="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 <!-- -->OIDC enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable OIDC enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Enable OIDC enterprise SSO connector in Sign-in Experience への直接リンク" title="Enable OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#testing-and-validation" class="hash-link" aria-label="Testing and Validation への直接リンク" title="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 <!-- -->OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#further-readings" class="hash-link" aria-label="Further readings への直接リンク" title="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>
        <category label="SSO providers" term="SSO providers"/>
        <category label="oidc-enterprise-sso" term="oidc-enterprise-sso"/>
        <category label="dotnet-core-razor-pages" term="dotnet-core-razor-pages"/>
        <category label="c#" term="c#"/>
        <category label="SAML authentication" term="SAML authentication"/>
        <category label="enterprise login" term="enterprise login"/>
        <category label="SSO login" term="SSO login"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to build Okta enterprise SSO with .NET Core (Razor Pages)]]></title>
        <id>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto</id>
        <link href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto"/>
        <updated>2026-04-17T02:54:06.877Z</updated>
        <summary type="html"><![CDATA[{/*]]></summary>
        <content type="html"><![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/ja/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="Create an application in Logto への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#integrate-with-logto" class="hash-link" aria-label="Integrate .NET Core (Razor Pages) with Logto への直接リンク" title="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">ヒント<!-- -->:</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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#installation" class="hash-link" aria-label="Installation への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#add-logto-authentication" class="hash-link" aria-label="Add Logto authentication への直接リンク" title="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/ja/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="Sign-in and sign-out flows への直接リンク" title="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/ja/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="Regarding redirect-based sign-in への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#configure-redirect-uris" class="hash-link" aria-label="Configure redirect URIs への直接リンク" title="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">注記<!-- -->:</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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#change-the-default-paths" class="hash-link" aria-label="Change the default paths への直接リンク" title="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/ja/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="Implement sign-in/sign-out buttons への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Checkpoint: Test your application への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#add-connector-connector" class="hash-link" aria-label="Add Okta enterprise SSO connector への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Set up OIDC application on Okta admin portal への直接リンク" title="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/ja/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="Step 1: Create an OIDC application on Okta admin portal への直接リンク" title="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/ja/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="Step 2: Configure the application settings への直接リンク" title="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/ja/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="Step 3: Set up Logto connector with the client credentials への直接リンク" title="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/ja/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="Step 4: Additional scopes (Optional) への直接リンク" title="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">ヒント<!-- -->:</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/ja/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="Step 5: Store tokens to access Okta APIs (Optional) への直接リンク" title="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/ja/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="Step 6: Set email domains and enable the SSO connector への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#save-your-configuration" class="hash-link" aria-label="Save your configuration への直接リンク" title="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/ja/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="Enable Okta enterprise SSO connector in Sign-in Experience への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#testing-and-validation" class="hash-link" aria-label="Testing and Validation への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-dotnet-core-razor-pages-and-logto#further-readings" class="hash-link" aria-label="Further readings への直接リンク" title="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>
        <category label="SSO providers" term="SSO providers"/>
        <category label="okta-enterprise-sso" term="okta-enterprise-sso"/>
        <category label="dotnet-core-razor-pages" term="dotnet-core-razor-pages"/>
        <category label="c#" term="c#"/>
        <category label="SAML authentication" term="SAML authentication"/>
        <category label="enterprise login" term="enterprise login"/>
        <category label="SSO login" term="SSO login"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to build OIDC enterprise SSO with Expo (React Native)]]></title>
        <id>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-expo-react-native-and-logto</id>
        <link href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-expo-react-native-and-logto"/>
        <updated>2026-04-17T02:54:06.877Z</updated>
        <summary type="html"><![CDATA[{/*]]></summary>
        <content type="html"><![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 <!-- -->OIDC 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 <!-- -->OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-expo-react-native-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Create an application in Logto への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-expo-react-native-and-logto#integrate-with-logto" class="hash-link" aria-label="Integrate Expo with Logto への直接リンク" title="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">ヒント<!-- -->:</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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-expo-react-native-and-logto#installation" class="hash-link" aria-label="Installation への直接リンク" title="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">注記<!-- -->:</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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-expo-react-native-and-logto#init-logto-provider" class="hash-link" aria-label="Init Logto provider への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-expo-react-native-and-logto#implement-sign-in-and-sign-out" class="hash-link" aria-label="Implement sign-in and sign-out への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-expo-react-native-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Regarding redirect-based sign-in への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-expo-react-native-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Checkpoint: Test your application への直接リンク" title="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 OIDC enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-expo-react-native-and-logto#add-connector-connector" class="hash-link" aria-label="Add OIDC enterprise SSO connector への直接リンク" title="Add OIDC 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 your IdP<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-expo-react-native-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Set up OIDC application on your IdP への直接リンク" title="Set up OIDC application on your IdP への直接リンク" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-your-idp">Step 1: Create an OIDC application on your IdP<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-expo-react-native-and-logto#step-1-create-an-oidc-application-on-your-idp" class="hash-link" aria-label="Step 1: Create an OIDC application on your IdP への直接リンク" title="Step 1: Create an OIDC application on your IdP への直接リンク" translate="no">​</a></h3>
<p>Initiate the OIDC SSO integration by creating an application on the IdP side. You will need to provide the following configurations from the Logto server.</p>
<ul>
<li class=""><strong>Callback URI</strong>: The Logto Callback URI, also known as the Redirect URI or Reply URL, is a specific endpoint or URL that the IdP uses to 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 authorization code received from this URI.</li>
</ul>
<p>Fill in the Logto Callback URI in your IdP OIDC application settings form and continue to create the application. (Most of the OIDC IdPs provide a wide range of application types to choose from. To create a web-based SSO connector on Logto, please choose the <code>Web Application</code> type.)</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-oidc-sso-on-logto">Step 2: Configure OIDC SSO on Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-expo-react-native-and-logto#step-2-configure-oidc-sso-on-logto" class="hash-link" aria-label="Step 2: Configure OIDC SSO on Logto への直接リンク" title="Step 2: Configure OIDC SSO on Logto への直接リンク" translate="no">​</a></h3>
<p>After successfully creating an OIDC application on the IdP side, you will need to provide the IdP configurations back to Logto. Navigate to the <code>Connection</code> tab, and fill in the following configurations:</p>
<ul>
<li class=""><strong>Client ID</strong>: A unique identifier assigned to your OIDC application by the IdP. This identifier is used by Logto to identify and authenticate the application during the OIDC flow.</li>
<li class=""><strong>Client Secret</strong>: A confidential secret shared between Logto and the IdP. This secret is used to authenticate the OIDC application and secure the communication between Logto and the IdP.</li>
<li class=""><strong>Issuer</strong>: The issuer URL, a unique identifier for the IdP, specifying the location where the OIDC identity provider can be found. It is a crucial part of the OIDC configuration as it helps Logto discover the necessary endpoints.
To make the configuration process easier. Logto will automatically fetch the required OIDC endpoints and configurations. This is done by utilizing the issuer you provided and making a call to the IdP's OIDC discover endpoints. It is imperative to ensure that the issuer endpoint is valid and accurately configured to enable Logto to retrieve the required information correctly.
After a successful fetch request, you should be able to see the parsed IdP configurations under the issuers section.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-configure-scopes-optional">Step 3: Configure scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-expo-react-native-and-logto#step-3-configure-scopes-optional" class="hash-link" aria-label="Step 3: Configure scopes (Optional) への直接リンク" title="Step 3: Configure scopes (Optional) への直接リンク" translate="no">​</a></h2>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their enterprise accounts.</p>
<p>Setting up scopes requires configuration on both sides:</p>
<ol>
<li class=""><strong>Your Identity Provider (IdP)</strong>: Configure which permissions are allowed for authorization in your IdP console<!-- -->
<ul>
<li class="">Some IdPs enable all public scopes by default (no action needed)</li>
<li class="">Others require you to explicitly grant permissions</li>
</ul>
</li>
<li class=""><strong>Logto enterprise connector</strong>: Specify which scopes to request during authentication in the Logto OIDC enterprise connector settings &gt; <code>Scopes</code> field.<!-- -->
<ul>
<li class="">Logto always includes the <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information, regardless of your custom scope settings.</li>
<li class="">You can add additional scopes (separated by spaces) to request more information from the IdP.</li>
</ul>
</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">ヒント<!-- -->:</span><p>If your app needs to access APIs using these scopes, make sure to enable <strong>Store tokens for persistent API access</strong> in your Logto enterprise connector. See the next section for details.</p></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-store-tokens-to-access-third-party-apis-optional">Step 4: Store tokens to access third-party APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-expo-react-native-and-logto#step-4-store-tokens-to-access-third-party-apis-optional" class="hash-link" aria-label="Step 4: Store tokens to access third-party APIs (Optional) への直接リンク" title="Step 4: Store tokens to access third-party APIs (Optional) への直接リンク" translate="no">​</a></h2>
<p>If you want to access the Identity Provider's APIs and perform actions with user authorization, Logto needs to get specific API scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in the <strong>scope</strong> field following the instructions above</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in the Logto OIDC enterprise connector. Logto will securely store access tokens in the Secret Vault.</li>
<li class="">For <strong>standard</strong> OIDC identity providers, the <code>offline_access</code> scope must be included to obtain a refresh token, preventing repeated user consent prompts.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-set-email-domains-and-enable-the-sso-connector">Step 5: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-expo-react-native-and-logto#step-5-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Step 5: Set email domains and enable the SSO connector への直接リンク" title="Step 5: Set email domains and enable the SSO connector への直接リンク" translate="no">​</a></h2>
<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>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-expo-react-native-and-logto#save-your-configuration" class="hash-link" aria-label="Save your configuration への直接リンク" title="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 <!-- -->OIDC enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable OIDC enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-expo-react-native-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Enable OIDC enterprise SSO connector in Sign-in Experience への直接リンク" title="Enable OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-expo-react-native-and-logto#testing-and-validation" class="hash-link" aria-label="Testing and Validation への直接リンク" title="Testing and Validation への直接リンク" translate="no">​</a></h2>
<p>Return to your <!-- -->Expo (React Native)<!-- --> app. You should now be able to sign in with <!-- -->OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-expo-react-native-and-logto#further-readings" class="hash-link" aria-label="Further readings への直接リンク" title="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>
        <category label="SSO providers" term="SSO providers"/>
        <category label="oidc-enterprise-sso" term="oidc-enterprise-sso"/>
        <category label="expo-react-native" term="expo-react-native"/>
        <category label="js" term="js"/>
        <category label="SAML authentication" term="SAML authentication"/>
        <category label="enterprise login" term="enterprise login"/>
        <category label="SSO login" term="SSO login"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to build Okta enterprise SSO with Expo (React Native)]]></title>
        <id>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto</id>
        <link href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto"/>
        <updated>2026-04-17T02:54:06.877Z</updated>
        <summary type="html"><![CDATA[{/*]]></summary>
        <content type="html"><![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/ja/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Create an application in Logto への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#integrate-with-logto" class="hash-link" aria-label="Integrate Expo with Logto への直接リンク" title="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">ヒント<!-- -->:</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/ja/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#installation" class="hash-link" aria-label="Installation への直接リンク" title="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">注記<!-- -->:</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/ja/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#init-logto-provider" class="hash-link" aria-label="Init Logto provider への直接リンク" title="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/ja/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="Implement sign-in and sign-out への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Regarding redirect-based sign-in への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Checkpoint: Test your application への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#add-connector-connector" class="hash-link" aria-label="Add Okta enterprise SSO connector への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Set up OIDC application on Okta admin portal への直接リンク" title="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/ja/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="Step 1: Create an OIDC application on Okta admin portal への直接リンク" title="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/ja/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="Step 2: Configure the application settings への直接リンク" title="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/ja/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="Step 3: Set up Logto connector with the client credentials への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Step 4: Additional scopes (Optional) への直接リンク" title="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">ヒント<!-- -->:</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/ja/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="Step 5: Store tokens to access Okta APIs (Optional) への直接リンク" title="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/ja/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="Step 6: Set email domains and enable the SSO connector への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#save-your-configuration" class="hash-link" aria-label="Save your configuration への直接リンク" title="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/ja/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="Enable Okta enterprise SSO connector in Sign-in Experience への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#testing-and-validation" class="hash-link" aria-label="Testing and Validation への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-expo-react-native-and-logto#further-readings" class="hash-link" aria-label="Further readings への直接リンク" title="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>
        <category label="SSO providers" term="SSO providers"/>
        <category label="okta-enterprise-sso" term="okta-enterprise-sso"/>
        <category label="expo-react-native" term="expo-react-native"/>
        <category label="js" term="js"/>
        <category label="SAML authentication" term="SAML authentication"/>
        <category label="enterprise login" term="enterprise login"/>
        <category label="SSO login" term="SSO login"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to build OIDC enterprise SSO with Express]]></title>
        <id>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto</id>
        <link href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto"/>
        <updated>2026-04-17T02:54:06.877Z</updated>
        <summary type="html"><![CDATA[{/*]]></summary>
        <content type="html"><![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 <!-- -->OIDC 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 <!-- -->OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Create an application in Logto への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#integrate-with-logto" class="hash-link" aria-label="Integrate Express with Logto への直接リンク" title="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">ヒント<!-- -->:</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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#installation" class="hash-link" aria-label="Installation への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#integration" class="hash-link" aria-label="Integration への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#prepare-configs-and-required-middlewares" class="hash-link" aria-label="Prepare configs and required middlewares への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#configure-redirect-uris" class="hash-link" aria-label="Configure redirect URIs への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Regarding redirect-based sign-in への直接リンク" title="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">注記<!-- -->:</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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#configure-redirect-uris" class="hash-link" aria-label="Configure redirect URIs への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#register-routes" class="hash-link" aria-label="Register routes への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#implement-sign-in-and-sign-out" class="hash-link" aria-label="Implement sign-in and sign-out への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Checkpoint: Test your application への直接リンク" title="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 OIDC enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#add-connector-connector" class="hash-link" aria-label="Add OIDC enterprise SSO connector への直接リンク" title="Add OIDC 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 your IdP<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Set up OIDC application on your IdP への直接リンク" title="Set up OIDC application on your IdP への直接リンク" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-your-idp">Step 1: Create an OIDC application on your IdP<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#step-1-create-an-oidc-application-on-your-idp" class="hash-link" aria-label="Step 1: Create an OIDC application on your IdP への直接リンク" title="Step 1: Create an OIDC application on your IdP への直接リンク" translate="no">​</a></h3>
<p>Initiate the OIDC SSO integration by creating an application on the IdP side. You will need to provide the following configurations from the Logto server.</p>
<ul>
<li class=""><strong>Callback URI</strong>: The Logto Callback URI, also known as the Redirect URI or Reply URL, is a specific endpoint or URL that the IdP uses to 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 authorization code received from this URI.</li>
</ul>
<p>Fill in the Logto Callback URI in your IdP OIDC application settings form and continue to create the application. (Most of the OIDC IdPs provide a wide range of application types to choose from. To create a web-based SSO connector on Logto, please choose the <code>Web Application</code> type.)</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-oidc-sso-on-logto">Step 2: Configure OIDC SSO on Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#step-2-configure-oidc-sso-on-logto" class="hash-link" aria-label="Step 2: Configure OIDC SSO on Logto への直接リンク" title="Step 2: Configure OIDC SSO on Logto への直接リンク" translate="no">​</a></h3>
<p>After successfully creating an OIDC application on the IdP side, you will need to provide the IdP configurations back to Logto. Navigate to the <code>Connection</code> tab, and fill in the following configurations:</p>
<ul>
<li class=""><strong>Client ID</strong>: A unique identifier assigned to your OIDC application by the IdP. This identifier is used by Logto to identify and authenticate the application during the OIDC flow.</li>
<li class=""><strong>Client Secret</strong>: A confidential secret shared between Logto and the IdP. This secret is used to authenticate the OIDC application and secure the communication between Logto and the IdP.</li>
<li class=""><strong>Issuer</strong>: The issuer URL, a unique identifier for the IdP, specifying the location where the OIDC identity provider can be found. It is a crucial part of the OIDC configuration as it helps Logto discover the necessary endpoints.
To make the configuration process easier. Logto will automatically fetch the required OIDC endpoints and configurations. This is done by utilizing the issuer you provided and making a call to the IdP's OIDC discover endpoints. It is imperative to ensure that the issuer endpoint is valid and accurately configured to enable Logto to retrieve the required information correctly.
After a successful fetch request, you should be able to see the parsed IdP configurations under the issuers section.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-configure-scopes-optional">Step 3: Configure scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#step-3-configure-scopes-optional" class="hash-link" aria-label="Step 3: Configure scopes (Optional) への直接リンク" title="Step 3: Configure scopes (Optional) への直接リンク" translate="no">​</a></h2>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their enterprise accounts.</p>
<p>Setting up scopes requires configuration on both sides:</p>
<ol>
<li class=""><strong>Your Identity Provider (IdP)</strong>: Configure which permissions are allowed for authorization in your IdP console<!-- -->
<ul>
<li class="">Some IdPs enable all public scopes by default (no action needed)</li>
<li class="">Others require you to explicitly grant permissions</li>
</ul>
</li>
<li class=""><strong>Logto enterprise connector</strong>: Specify which scopes to request during authentication in the Logto OIDC enterprise connector settings &gt; <code>Scopes</code> field.<!-- -->
<ul>
<li class="">Logto always includes the <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information, regardless of your custom scope settings.</li>
<li class="">You can add additional scopes (separated by spaces) to request more information from the IdP.</li>
</ul>
</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">ヒント<!-- -->:</span><p>If your app needs to access APIs using these scopes, make sure to enable <strong>Store tokens for persistent API access</strong> in your Logto enterprise connector. See the next section for details.</p></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-store-tokens-to-access-third-party-apis-optional">Step 4: Store tokens to access third-party APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#step-4-store-tokens-to-access-third-party-apis-optional" class="hash-link" aria-label="Step 4: Store tokens to access third-party APIs (Optional) への直接リンク" title="Step 4: Store tokens to access third-party APIs (Optional) への直接リンク" translate="no">​</a></h2>
<p>If you want to access the Identity Provider's APIs and perform actions with user authorization, Logto needs to get specific API scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in the <strong>scope</strong> field following the instructions above</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in the Logto OIDC enterprise connector. Logto will securely store access tokens in the Secret Vault.</li>
<li class="">For <strong>standard</strong> OIDC identity providers, the <code>offline_access</code> scope must be included to obtain a refresh token, preventing repeated user consent prompts.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-set-email-domains-and-enable-the-sso-connector">Step 5: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#step-5-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Step 5: Set email domains and enable the SSO connector への直接リンク" title="Step 5: Set email domains and enable the SSO connector への直接リンク" translate="no">​</a></h2>
<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>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#save-your-configuration" class="hash-link" aria-label="Save your configuration への直接リンク" title="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 <!-- -->OIDC enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable OIDC enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Enable OIDC enterprise SSO connector in Sign-in Experience への直接リンク" title="Enable OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#testing-and-validation" class="hash-link" aria-label="Testing and Validation への直接リンク" title="Testing and Validation への直接リンク" translate="no">​</a></h2>
<p>Return to your <!-- -->Express<!-- --> app. You should now be able to sign in with <!-- -->OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-express-and-logto#further-readings" class="hash-link" aria-label="Further readings への直接リンク" title="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>
        <category label="SSO providers" term="SSO providers"/>
        <category label="oidc-enterprise-sso" term="oidc-enterprise-sso"/>
        <category label="express" term="express"/>
        <category label="js" term="js"/>
        <category label="SAML authentication" term="SAML authentication"/>
        <category label="enterprise login" term="enterprise login"/>
        <category label="SSO login" term="SSO login"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to build Okta enterprise SSO with Express]]></title>
        <id>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto</id>
        <link href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto"/>
        <updated>2026-04-17T02:54:06.877Z</updated>
        <summary type="html"><![CDATA[{/*]]></summary>
        <content type="html"><![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/ja/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Create an application in Logto への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#integrate-with-logto" class="hash-link" aria-label="Integrate Express with Logto への直接リンク" title="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">ヒント<!-- -->:</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/ja/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#installation" class="hash-link" aria-label="Installation への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#integration" class="hash-link" aria-label="Integration への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#prepare-configs-and-required-middlewares" class="hash-link" aria-label="Prepare configs and required middlewares への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#configure-redirect-uris" class="hash-link" aria-label="Configure redirect URIs への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Regarding redirect-based sign-in への直接リンク" title="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">注記<!-- -->:</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/ja/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#configure-redirect-uris" class="hash-link" aria-label="Configure redirect URIs への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#register-routes" class="hash-link" aria-label="Register routes への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#implement-sign-in-and-sign-out" class="hash-link" aria-label="Implement sign-in and sign-out への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Checkpoint: Test your application への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#add-connector-connector" class="hash-link" aria-label="Add Okta enterprise SSO connector への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Set up OIDC application on Okta admin portal への直接リンク" title="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/ja/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="Step 1: Create an OIDC application on Okta admin portal への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Step 2: Configure the application settings への直接リンク" title="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/ja/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="Step 3: Set up Logto connector with the client credentials への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Step 4: Additional scopes (Optional) への直接リンク" title="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">ヒント<!-- -->:</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/ja/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="Step 5: Store tokens to access Okta APIs (Optional) への直接リンク" title="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/ja/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="Step 6: Set email domains and enable the SSO connector への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#save-your-configuration" class="hash-link" aria-label="Save your configuration への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Enable Okta enterprise SSO connector in Sign-in Experience への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#testing-and-validation" class="hash-link" aria-label="Testing and Validation への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-express-and-logto#further-readings" class="hash-link" aria-label="Further readings への直接リンク" title="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>
        <category label="SSO providers" term="SSO providers"/>
        <category label="okta-enterprise-sso" term="okta-enterprise-sso"/>
        <category label="express" term="express"/>
        <category label="js" term="js"/>
        <category label="SAML authentication" term="SAML authentication"/>
        <category label="enterprise login" term="enterprise login"/>
        <category label="SSO login" term="SSO login"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to build OIDC enterprise SSO with Flutter]]></title>
        <id>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto</id>
        <link href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto"/>
        <updated>2026-04-17T02:54:06.877Z</updated>
        <summary type="html"><![CDATA[{/*]]></summary>
        <content type="html"><![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 <!-- -->OIDC 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 <!-- -->OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Create an application in Logto への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#integrate-with-logto" class="hash-link" aria-label="Integrate Flutter with Logto への直接リンク" title="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">ヒント<!-- -->:</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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#installation" class="hash-link" aria-label="Installation への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#dependency-and-configurations" class="hash-link" aria-label="Dependency and configurations への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#sdk-version-compatibility" class="hash-link" aria-label="SDK version compatibility への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#flutter_secure_storage-set-up" class="hash-link" aria-label="flutter_secure_storage set up への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#config-android-version" class="hash-link" aria-label="Config Android version への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#disable-auto-backup-on-android" class="hash-link" aria-label="Disable auto backup on Android への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#flutter_web_auth_2-set-up" class="hash-link" aria-label="flutter_web_auth_2 set up への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#integration" class="hash-link" aria-label="Integration への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#init-logtoclient" class="hash-link" aria-label="Init LogtoClient への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#implement-sign-in" class="hash-link" aria-label="Implement sign-in への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Regarding redirect-based sign-in への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#implement-sign-out" class="hash-link" aria-label="Implement sign-out への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#handle-authentication-status" class="hash-link" aria-label="Handle authentication status への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Checkpoint: Test your application への直接リンク" title="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 OIDC enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#add-connector-connector" class="hash-link" aria-label="Add OIDC enterprise SSO connector への直接リンク" title="Add OIDC 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 your IdP<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Set up OIDC application on your IdP への直接リンク" title="Set up OIDC application on your IdP への直接リンク" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-your-idp">Step 1: Create an OIDC application on your IdP<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#step-1-create-an-oidc-application-on-your-idp" class="hash-link" aria-label="Step 1: Create an OIDC application on your IdP への直接リンク" title="Step 1: Create an OIDC application on your IdP への直接リンク" translate="no">​</a></h3>
<p>Initiate the OIDC SSO integration by creating an application on the IdP side. You will need to provide the following configurations from the Logto server.</p>
<ul>
<li class=""><strong>Callback URI</strong>: The Logto Callback URI, also known as the Redirect URI or Reply URL, is a specific endpoint or URL that the IdP uses to 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 authorization code received from this URI.</li>
</ul>
<p>Fill in the Logto Callback URI in your IdP OIDC application settings form and continue to create the application. (Most of the OIDC IdPs provide a wide range of application types to choose from. To create a web-based SSO connector on Logto, please choose the <code>Web Application</code> type.)</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-oidc-sso-on-logto">Step 2: Configure OIDC SSO on Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#step-2-configure-oidc-sso-on-logto" class="hash-link" aria-label="Step 2: Configure OIDC SSO on Logto への直接リンク" title="Step 2: Configure OIDC SSO on Logto への直接リンク" translate="no">​</a></h3>
<p>After successfully creating an OIDC application on the IdP side, you will need to provide the IdP configurations back to Logto. Navigate to the <code>Connection</code> tab, and fill in the following configurations:</p>
<ul>
<li class=""><strong>Client ID</strong>: A unique identifier assigned to your OIDC application by the IdP. This identifier is used by Logto to identify and authenticate the application during the OIDC flow.</li>
<li class=""><strong>Client Secret</strong>: A confidential secret shared between Logto and the IdP. This secret is used to authenticate the OIDC application and secure the communication between Logto and the IdP.</li>
<li class=""><strong>Issuer</strong>: The issuer URL, a unique identifier for the IdP, specifying the location where the OIDC identity provider can be found. It is a crucial part of the OIDC configuration as it helps Logto discover the necessary endpoints.
To make the configuration process easier. Logto will automatically fetch the required OIDC endpoints and configurations. This is done by utilizing the issuer you provided and making a call to the IdP's OIDC discover endpoints. It is imperative to ensure that the issuer endpoint is valid and accurately configured to enable Logto to retrieve the required information correctly.
After a successful fetch request, you should be able to see the parsed IdP configurations under the issuers section.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-configure-scopes-optional">Step 3: Configure scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#step-3-configure-scopes-optional" class="hash-link" aria-label="Step 3: Configure scopes (Optional) への直接リンク" title="Step 3: Configure scopes (Optional) への直接リンク" translate="no">​</a></h2>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their enterprise accounts.</p>
<p>Setting up scopes requires configuration on both sides:</p>
<ol>
<li class=""><strong>Your Identity Provider (IdP)</strong>: Configure which permissions are allowed for authorization in your IdP console<!-- -->
<ul>
<li class="">Some IdPs enable all public scopes by default (no action needed)</li>
<li class="">Others require you to explicitly grant permissions</li>
</ul>
</li>
<li class=""><strong>Logto enterprise connector</strong>: Specify which scopes to request during authentication in the Logto OIDC enterprise connector settings &gt; <code>Scopes</code> field.<!-- -->
<ul>
<li class="">Logto always includes the <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information, regardless of your custom scope settings.</li>
<li class="">You can add additional scopes (separated by spaces) to request more information from the IdP.</li>
</ul>
</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">ヒント<!-- -->:</span><p>If your app needs to access APIs using these scopes, make sure to enable <strong>Store tokens for persistent API access</strong> in your Logto enterprise connector. See the next section for details.</p></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-store-tokens-to-access-third-party-apis-optional">Step 4: Store tokens to access third-party APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#step-4-store-tokens-to-access-third-party-apis-optional" class="hash-link" aria-label="Step 4: Store tokens to access third-party APIs (Optional) への直接リンク" title="Step 4: Store tokens to access third-party APIs (Optional) への直接リンク" translate="no">​</a></h2>
<p>If you want to access the Identity Provider's APIs and perform actions with user authorization, Logto needs to get specific API scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in the <strong>scope</strong> field following the instructions above</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in the Logto OIDC enterprise connector. Logto will securely store access tokens in the Secret Vault.</li>
<li class="">For <strong>standard</strong> OIDC identity providers, the <code>offline_access</code> scope must be included to obtain a refresh token, preventing repeated user consent prompts.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-set-email-domains-and-enable-the-sso-connector">Step 5: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#step-5-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Step 5: Set email domains and enable the SSO connector への直接リンク" title="Step 5: Set email domains and enable the SSO connector への直接リンク" translate="no">​</a></h2>
<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>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#save-your-configuration" class="hash-link" aria-label="Save your configuration への直接リンク" title="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 <!-- -->OIDC enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable OIDC enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Enable OIDC enterprise SSO connector in Sign-in Experience への直接リンク" title="Enable OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#testing-and-validation" class="hash-link" aria-label="Testing and Validation への直接リンク" title="Testing and Validation への直接リンク" translate="no">​</a></h2>
<p>Return to your <!-- -->Flutter<!-- --> app. You should now be able to sign in with <!-- -->OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-flutter-and-logto#further-readings" class="hash-link" aria-label="Further readings への直接リンク" title="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>
        <category label="SSO providers" term="SSO providers"/>
        <category label="oidc-enterprise-sso" term="oidc-enterprise-sso"/>
        <category label="flutter" term="flutter"/>
        <category label="dart" term="dart"/>
        <category label="SAML authentication" term="SAML authentication"/>
        <category label="enterprise login" term="enterprise login"/>
        <category label="SSO login" term="SSO login"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to build Okta enterprise SSO with Flutter]]></title>
        <id>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto</id>
        <link href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto"/>
        <updated>2026-04-17T02:54:06.877Z</updated>
        <summary type="html"><![CDATA[{/*]]></summary>
        <content type="html"><![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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Create an application in Logto への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#integrate-with-logto" class="hash-link" aria-label="Integrate Flutter with Logto への直接リンク" title="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">ヒント<!-- -->:</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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#installation" class="hash-link" aria-label="Installation への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#dependency-and-configurations" class="hash-link" aria-label="Dependency and configurations への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#sdk-version-compatibility" class="hash-link" aria-label="SDK version compatibility への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#flutter_secure_storage-set-up" class="hash-link" aria-label="flutter_secure_storage set up への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#config-android-version" class="hash-link" aria-label="Config Android version への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#disable-auto-backup-on-android" class="hash-link" aria-label="Disable auto backup on Android への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#flutter_web_auth_2-set-up" class="hash-link" aria-label="flutter_web_auth_2 set up への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#integration" class="hash-link" aria-label="Integration への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#init-logtoclient" class="hash-link" aria-label="Init LogtoClient への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#implement-sign-in" class="hash-link" aria-label="Implement sign-in への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#regarding-redirect-based-sign-in" class="hash-link" aria-label="Regarding redirect-based sign-in への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#implement-sign-out" class="hash-link" aria-label="Implement sign-out への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#handle-authentication-status" class="hash-link" aria-label="Handle authentication status への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Checkpoint: Test your application への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#add-connector-connector" class="hash-link" aria-label="Add Okta enterprise SSO connector への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Set up OIDC application on Okta admin portal への直接リンク" title="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/ja/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="Step 1: Create an OIDC application on Okta admin portal への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Step 2: Configure the application settings への直接リンク" title="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/ja/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="Step 3: Set up Logto connector with the client credentials への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Step 4: Additional scopes (Optional) への直接リンク" title="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">ヒント<!-- -->:</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/ja/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="Step 5: Store tokens to access Okta APIs (Optional) への直接リンク" title="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/ja/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="Step 6: Set email domains and enable the SSO connector への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#save-your-configuration" class="hash-link" aria-label="Save your configuration への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Enable Okta enterprise SSO connector in Sign-in Experience への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#testing-and-validation" class="hash-link" aria-label="Testing and Validation への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-flutter-and-logto#further-readings" class="hash-link" aria-label="Further readings への直接リンク" title="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>
        <category label="SSO providers" term="SSO providers"/>
        <category label="okta-enterprise-sso" term="okta-enterprise-sso"/>
        <category label="flutter" term="flutter"/>
        <category label="dart" term="dart"/>
        <category label="SAML authentication" term="SAML authentication"/>
        <category label="enterprise login" term="enterprise login"/>
        <category label="SSO login" term="SSO login"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to build OIDC enterprise SSO with Go]]></title>
        <id>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto</id>
        <link href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto"/>
        <updated>2026-04-17T02:54:06.877Z</updated>
        <summary type="html"><![CDATA[{/*]]></summary>
        <content type="html"><![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 <!-- -->OIDC 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 <!-- -->OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Create an application in Logto への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto#integrate-with-logto" class="hash-link" aria-label="Integrate Go with Logto への直接リンク" title="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">ヒント<!-- -->:</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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto#installation" class="hash-link" aria-label="Installation への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto#create-a-session-storage" class="hash-link" aria-label="Create a session storage への直接リンク" title="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">注記<!-- -->:</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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto#init-logtoclient" class="hash-link" aria-label="Init LogtoClient への直接リンク" title="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">ヒント<!-- -->:</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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto#implement-sign-in-route" class="hash-link" aria-label="Implement sign-in route への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto#implement-the-callback-route" class="hash-link" aria-label="Implement the callback route への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto#implement-sign-out-route" class="hash-link" aria-label="Implement sign-out route への直接リンク" title="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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Checkpoint: Test your application への直接リンク" title="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 OIDC enterprise SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto#add-connector-connector" class="hash-link" aria-label="Add OIDC enterprise SSO connector への直接リンク" title="Add OIDC 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 your IdP<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Set up OIDC application on your IdP への直接リンク" title="Set up OIDC application on your IdP への直接リンク" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-1-create-an-oidc-application-on-your-idp">Step 1: Create an OIDC application on your IdP<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto#step-1-create-an-oidc-application-on-your-idp" class="hash-link" aria-label="Step 1: Create an OIDC application on your IdP への直接リンク" title="Step 1: Create an OIDC application on your IdP への直接リンク" translate="no">​</a></h3>
<p>Initiate the OIDC SSO integration by creating an application on the IdP side. You will need to provide the following configurations from the Logto server.</p>
<ul>
<li class=""><strong>Callback URI</strong>: The Logto Callback URI, also known as the Redirect URI or Reply URL, is a specific endpoint or URL that the IdP uses to 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 authorization code received from this URI.</li>
</ul>
<p>Fill in the Logto Callback URI in your IdP OIDC application settings form and continue to create the application. (Most of the OIDC IdPs provide a wide range of application types to choose from. To create a web-based SSO connector on Logto, please choose the <code>Web Application</code> type.)</p>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="step-2-configure-oidc-sso-on-logto">Step 2: Configure OIDC SSO on Logto<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto#step-2-configure-oidc-sso-on-logto" class="hash-link" aria-label="Step 2: Configure OIDC SSO on Logto への直接リンク" title="Step 2: Configure OIDC SSO on Logto への直接リンク" translate="no">​</a></h3>
<p>After successfully creating an OIDC application on the IdP side, you will need to provide the IdP configurations back to Logto. Navigate to the <code>Connection</code> tab, and fill in the following configurations:</p>
<ul>
<li class=""><strong>Client ID</strong>: A unique identifier assigned to your OIDC application by the IdP. This identifier is used by Logto to identify and authenticate the application during the OIDC flow.</li>
<li class=""><strong>Client Secret</strong>: A confidential secret shared between Logto and the IdP. This secret is used to authenticate the OIDC application and secure the communication between Logto and the IdP.</li>
<li class=""><strong>Issuer</strong>: The issuer URL, a unique identifier for the IdP, specifying the location where the OIDC identity provider can be found. It is a crucial part of the OIDC configuration as it helps Logto discover the necessary endpoints.
To make the configuration process easier. Logto will automatically fetch the required OIDC endpoints and configurations. This is done by utilizing the issuer you provided and making a call to the IdP's OIDC discover endpoints. It is imperative to ensure that the issuer endpoint is valid and accurately configured to enable Logto to retrieve the required information correctly.
After a successful fetch request, you should be able to see the parsed IdP configurations under the issuers section.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-3-configure-scopes-optional">Step 3: Configure scopes (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto#step-3-configure-scopes-optional" class="hash-link" aria-label="Step 3: Configure scopes (Optional) への直接リンク" title="Step 3: Configure scopes (Optional) への直接リンク" translate="no">​</a></h2>
<p>Scopes define the permissions your app requests from users and control which data your app can access from their enterprise accounts.</p>
<p>Setting up scopes requires configuration on both sides:</p>
<ol>
<li class=""><strong>Your Identity Provider (IdP)</strong>: Configure which permissions are allowed for authorization in your IdP console<!-- -->
<ul>
<li class="">Some IdPs enable all public scopes by default (no action needed)</li>
<li class="">Others require you to explicitly grant permissions</li>
</ul>
</li>
<li class=""><strong>Logto enterprise connector</strong>: Specify which scopes to request during authentication in the Logto OIDC enterprise connector settings &gt; <code>Scopes</code> field.<!-- -->
<ul>
<li class="">Logto always includes the <code>openid</code>, <code>profile</code>, and <code>email</code> scopes to retrieve basic user identity information, regardless of your custom scope settings.</li>
<li class="">You can add additional scopes (separated by spaces) to request more information from the IdP.</li>
</ul>
</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">ヒント<!-- -->:</span><p>If your app needs to access APIs using these scopes, make sure to enable <strong>Store tokens for persistent API access</strong> in your Logto enterprise connector. See the next section for details.</p></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-4-store-tokens-to-access-third-party-apis-optional">Step 4: Store tokens to access third-party APIs (Optional)<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto#step-4-store-tokens-to-access-third-party-apis-optional" class="hash-link" aria-label="Step 4: Store tokens to access third-party APIs (Optional) への直接リンク" title="Step 4: Store tokens to access third-party APIs (Optional) への直接リンク" translate="no">​</a></h2>
<p>If you want to access the Identity Provider's APIs and perform actions with user authorization, Logto needs to get specific API scopes and store tokens.</p>
<ol>
<li class="">Add the required scopes in the <strong>scope</strong> field following the instructions above</li>
<li class="">Enable <strong>Store tokens for persistent API access</strong> in the Logto OIDC enterprise connector. Logto will securely store access tokens in the Secret Vault.</li>
<li class="">For <strong>standard</strong> OIDC identity providers, the <code>offline_access</code> scope must be included to obtain a refresh token, preventing repeated user consent prompts.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="step-5-set-email-domains-and-enable-the-sso-connector">Step 5: Set email domains and enable the SSO connector<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto#step-5-set-email-domains-and-enable-the-sso-connector" class="hash-link" aria-label="Step 5: Set email domains and enable the SSO connector への直接リンク" title="Step 5: Set email domains and enable the SSO connector への直接リンク" translate="no">​</a></h2>
<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>
<h3 class="anchor anchorTargetStickyNavbar_iJWz" id="save-your-configuration">Save your configuration<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto#save-your-configuration" class="hash-link" aria-label="Save your configuration への直接リンク" title="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 <!-- -->OIDC enterprise SSO<!-- --> connector should be available now.</p>
<h2 class="anchor anchorTargetStickyNavbar_iJWz" id="enable-connector-connector-in-sign-in-experience">Enable OIDC enterprise SSO connector in Sign-in Experience<a href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Enable OIDC enterprise SSO connector in Sign-in Experience への直接リンク" title="Enable OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto#testing-and-validation" class="hash-link" aria-label="Testing and Validation への直接リンク" title="Testing and Validation への直接リンク" translate="no">​</a></h2>
<p>Return to your <!-- -->Go<!-- --> app. You should now be able to sign in with <!-- -->OIDC 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/ja/how-to/build-oidc-enterprise-sso-sign-in-with-go-and-logto#further-readings" class="hash-link" aria-label="Further readings への直接リンク" title="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>
        <category label="SSO providers" term="SSO providers"/>
        <category label="oidc-enterprise-sso" term="oidc-enterprise-sso"/>
        <category label="go" term="go"/>
        <category label="go" term="go"/>
        <category label="SAML authentication" term="SAML authentication"/>
        <category label="enterprise login" term="enterprise login"/>
        <category label="SSO login" term="SSO login"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[How to build Okta enterprise SSO with Go]]></title>
        <id>https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto</id>
        <link href="https://renovate-typescript-6-x.logto-docs-tutorials.pages.dev/ja/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto"/>
        <updated>2026-04-17T02:54:06.877Z</updated>
        <summary type="html"><![CDATA[{/*]]></summary>
        <content type="html"><![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/ja/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#create-an-application-in-logto" class="hash-link" aria-label="Create an application in Logto への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#integrate-with-logto" class="hash-link" aria-label="Integrate Go with Logto への直接リンク" title="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">ヒント<!-- -->:</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/ja/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#installation" class="hash-link" aria-label="Installation への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#create-a-session-storage" class="hash-link" aria-label="Create a session storage への直接リンク" title="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">注記<!-- -->:</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/ja/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#init-logtoclient" class="hash-link" aria-label="Init LogtoClient への直接リンク" title="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">ヒント<!-- -->:</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/ja/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#implement-sign-in-route" class="hash-link" aria-label="Implement sign-in route への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#implement-the-callback-route" class="hash-link" aria-label="Implement the callback route への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#implement-sign-out-route" class="hash-link" aria-label="Implement sign-out route への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#checkpoint-test-your-application" class="hash-link" aria-label="Checkpoint: Test your application への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#add-connector-connector" class="hash-link" aria-label="Add Okta enterprise SSO connector への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#set-up-connectorconfigname" class="hash-link" aria-label="Set up OIDC application on Okta admin portal への直接リンク" title="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/ja/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="Step 1: Create an OIDC application on Okta admin portal への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#step-2-configure-the-application-settings" class="hash-link" aria-label="Step 2: Configure the application settings への直接リンク" title="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/ja/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="Step 3: Set up Logto connector with the client credentials への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#step-4-additional-scopes-optional" class="hash-link" aria-label="Step 4: Additional scopes (Optional) への直接リンク" title="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">ヒント<!-- -->:</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/ja/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="Step 5: Store tokens to access Okta APIs (Optional) への直接リンク" title="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/ja/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="Step 6: Set email domains and enable the SSO connector への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#save-your-configuration" class="hash-link" aria-label="Save your configuration への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#enable-connector-connector-in-sign-in-experience" class="hash-link" aria-label="Enable Okta enterprise SSO connector in Sign-in Experience への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#testing-and-validation" class="hash-link" aria-label="Testing and Validation への直接リンク" title="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/ja/how-to/build-okta-enterprise-sso-sign-in-with-go-and-logto#further-readings" class="hash-link" aria-label="Further readings への直接リンク" title="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>
        <category label="SSO providers" term="SSO providers"/>
        <category label="okta-enterprise-sso" term="okta-enterprise-sso"/>
        <category label="go" term="go"/>
        <category label="go" term="go"/>
        <category label="SAML authentication" term="SAML authentication"/>
        <category label="enterprise login" term="enterprise login"/>
        <category label="SSO login" term="SSO login"/>
    </entry>
</feed>