[{"data":1,"prerenderedAt":127},["ShallowReactive",2],{"i-heroicons:building-office-2":3,"i-heroicons:computer-desktop":8,"i-heroicons:cloud":10,"i-heroicons:server":12,"i-heroicons:folder":14,"i-heroicons:chart-bar":16,"i-heroicons:lock-closed":18,"i-heroicons:rectangle-stack":20,"i-heroicons:scale":22,"i-heroicons:key":24,"i-heroicons:finger-print":26,"i-heroicons:cpu-chip":28,"i-heroicons:document-text":30,"i-heroicons:shield-exclamation":32,"i-heroicons:shield-check":34,"blog-en-yubion-fido2-server-service-fast-passkey-auth":36,"i-heroicons:user":125},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M2.25 21h19.5m-18-18v18m10.5-18v18m6-13.5V21M6.75 6.75h.75m-.75 3h.75m-.75 3h.75m3-6h.75m-.75 3h.75m-.75 3h.75M6.75 21v-3.375c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21M3 3h12m-.75 4.5H21m-3.75 3.75h.008v.008h-.008zm0 3h.008v.008h-.008zm0 3h.008v.008h-.008z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M2.25 15a4.5 4.5 0 0 0 4.5 4.5H18a3.75 3.75 0 0 0 1.332-7.257a3 3 0 0 0-3.758-3.848a5.25 5.25 0 0 0-10.233 2.33A4.5 4.5 0 0 0 2.25 15\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":13},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M21.75 17.25v-.228a4.5 4.5 0 0 0-.12-1.03l-2.268-9.64a3.375 3.375 0 0 0-3.285-2.602H7.923a3.375 3.375 0 0 0-3.285 2.602l-2.268 9.64a4.5 4.5 0 0 0-.12 1.03v.228m19.5 0a3 3 0 0 1-3 3H5.25a3 3 0 0 1-3-3m19.5 0a3 3 0 0 0-3-3H5.25a3 3 0 0 0-3 3m16.5 0h.008v.008h-.008zm-3 0h.008v.008h-.008z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":15},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44l-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":17},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875zm6.75-4.5c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125zm6.75-4.5c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":19},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":21},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M6 6.878V6a2.25 2.25 0 0 1 2.25-2.25h7.5A2.25 2.25 0 0 1 18 6v.878m-12 0q.354-.126.75-.128h10.5q.396.002.75.128m-12 0A2.25 2.25 0 0 0 4.5 9v.878m13.5-3A2.25 2.25 0 0 1 19.5 9v.878m0 0a2.3 2.3 0 0 0-.75-.128H5.25q-.396.002-.75.128m15 0A2.25 2.25 0 0 1 21 12v6a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 18v-6c0-.98.626-1.813 1.5-2.122\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":23},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M12 3v17.25m0 0c-1.472 0-2.882.265-4.185.75M12 20.25c1.472 0 2.882.265 4.185.75M18.75 4.97A48 48 0 0 0 12 4.5c-2.291 0-4.545.16-6.75.47m13.5 0q1.515.215 3 .52m-3-.52l2.62 10.726c.122.499-.106 1.028-.589 1.202a6 6 0 0 1-2.031.352a6 6 0 0 1-2.031-.352c-.483-.174-.711-.703-.59-1.202zm-16.5.52q1.485-.305 3-.52m0 0l2.62 10.726c.122.499-.106 1.028-.589 1.202a6 6 0 0 1-2.031.352a6 6 0 0 1-2.031-.352c-.483-.174-.711-.703-.59-1.202z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":25},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M15.75 5.25a3 3 0 0 1 3 3m3 0a6 6 0 0 1-7.029 5.912c-.563-.097-1.159.026-1.563.43L10.5 17.25H8.25v2.25H6v2.25H2.25v-2.818c0-.597.237-1.17.659-1.591l6.499-6.499c.404-.404.527-1 .43-1.563A6 6 0 1 1 21.75 8.25\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":27},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M7.864 4.243A7.5 7.5 0 0 1 19.5 10.5c0 2.92-.556 5.709-1.568 8.269M5.742 6.364A7.47 7.47 0 0 0 4.5 10.5a7.46 7.46 0 0 1-1.15 3.993m1.989 3.559A11.2 11.2 0 0 0 8.25 10.5a3.75 3.75 0 1 1 7.5 0q0 .79-.064 1.565M12 10.5a14.94 14.94 0 0 1-3.6 9.75m6.633-4.596a18.7 18.7 0 0 1-2.485 5.33\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":29},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25m.75-12h9v9h-9z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":31},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":33},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M12 9v3.75m0-10.036A11.96 11.96 0 0 1 3.598 6A12 12 0 0 0 3 9.75c0 5.592 3.824 10.29 9 11.622c5.176-1.332 9-6.03 9-11.622c0-1.31-.21-2.57-.598-3.75h-.152c-3.196 0-6.1-1.25-8.25-3.286m0 13.036h.008v.008H12z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":35},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M9 12.75L11.25 15L15 9.75m-3-7.036A11.96 11.96 0 0 1 3.598 6A12 12 0 0 0 3 9.749c0 5.592 3.824 10.29 9 11.623c5.176-1.332 9-6.03 9-11.622c0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285\"\u002F>",{"id":37,"documentId":38,"title":39,"content":40,"slug":41,"published":42,"createdAt":43,"updatedAt":43,"publishedAt":44,"locale":45,"authorManual":46,"cover":47,"tags":97,"seo":122,"author":51},87,"m5b0po97uu2x67d2vca93275","Trying Out the Fastest Way to Implement FIDO Authentication: “YubiOn FIDO2 Server Service”","\u003Cp>Recently, YubiOn released a new service called \u003Cstrong>“YubiOn FIDO2 Server Service.”\u003C\u002Fstrong> This service is primarily intended for developers and development vendors, enabling them to easily integrate FIDO (passkey) authentication into the services they provide. Normally, in order to properly validate FIDO authentication, developers must implement a variety of verification processes according to specifications such as WebAuthn. However, by offering these processes as a service, this solution makes it effortless to introduce passkey authentication.\u003C\u002Fp>\n\u003Cp>Previously, Soft Giken offered a certified FIDO2 Server product called \u003Cstrong>“YubiOn FIDO2 Server,”\u003C\u002Fstrong> which had been approved by the FIDO Alliance. However, it was not provided as a service; instead, we delivered the necessary environment individually in response to customer requests. With the release of the \u003Cstrong>YubiOn FIDO2 Server Service\u003C\u002Fstrong>, this solution has now been fully service‑based, allowing customers to introduce it more easily and more quickly.\u003C\u002Fp>\n\u003Cp>This time, we will use the sample application prepared by our company to show how simple it becomes to implement passkey authentication by introducing the YubiOn FIDO2 Server Service.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>■Flow of Implementation\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>If you would like to understand the system architecture or authentication mechanism, please refer to the \u003Ca href=\"https:\u002F\u002Ffss.yubion.com\u002Fguide\u002Fen\u002Foverview\u002Findex.html\">service overview\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Although the implementation flow is also described in the \u003Ca href=\"https:\u002F\u002Ffss.yubion.com\u002Fguide\u002Fen\u002Fsetup\u002Findex.html\">manual\u003C\u002Fa>, the general steps are as follows:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Customer Registration\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>↓\u003C\u002Fp>\n\u003Cp>２． RP Registration\u003C\u002Fp>\n\u003Cp>↓\u003C\u002Fp>\n\u003Cp>３． API Key Registration\u003C\u002Fp>\n\u003Cp>↓\u003C\u002Fp>\n\u003Cp>４． SDK Integration\u003C\u002Fp>\n\u003Cp>↓\u003C\u002Fp>\n\u003Cp>５． Operational Testing\u003C\u002Fp>\n\u003Cp>Normally, in step 4 (SDK Integration), after obtaining the SDK, you would need to implement logic within your service that calls the YubiOn FIDO2 Server Service API. However, for this walkthrough, we will use a sample that already has this logic implemented, so you can experience the process more easily.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>■ Trying Out the Sample\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Environment Used\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cp>OS: Windows 11\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>Browser: Chrome\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>Passkey: Windows Hello (Fingerprint Authentication)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>Source Code Editor: Visual Studio Code\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>\u003Cstrong>Prerequisites:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fnodejs.org\u002Fen\u002Fdownload\u002F\">Node.js\u003C\u002Fa> and npm must be installed.\u003C\u002Fp>\n\u003Cp>I used Node.js (v22) and npm (v10).\u003C\u002Fp>\n\u003Cp>(Installing Node.js typically installs npm as well.)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Service Registration &amp; Preparation\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cp>Register a Customer (Free Registration)\u003C\u002Fp>\n\u003Cp>●Steps\u003C\u002Fp>\n\u003Cp>Open the &quot;\u003Ca href=\"https:\u002F\u002Ffss.yubion.com\u002Fja\">YubiOn FIDO2 Server Service\u003C\u002Fa>&quot; page and click \u003Cstrong>“New Registration”\u003C\u002Fstrong> in the top right corner.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fdty9gbw7gew16.cloudfront.net\u002Fuploads\u002Fblog_yubion_fido2_server_service_fast_passkey_auth_1_2d955afb83.png\" alt=\"\">\u003C\u002Fp>\n\u003Cp>By agreeing to the handling of personal information, you will proceed to the customer registration screen.\u003C\u002Fp>\n\u003Cp>Enter the required customer information and agree to the Terms of Service, then click the \u003Cstrong>“Register”\u003C\u002Fstrong> button.\u003C\u002Fp>\n\u003Cp>　・\u003Cstrong>Admin name\u003C\u002Fstrong>\u003Cstrong>:\u003C\u002Fstrong> YubiOn (any name)\u003C\u002Fp>\n\u003Cp>　・\u003Cstrong>Admin email address\u003C\u002Fstrong>\u003Cstrong>:\u003C\u002Fstrong> An email will be sent after registration to activate the account.\u003C\u002Fp>\n\u003Cp>　・\u003Cstrong>Customer name:\u003C\u002Fstrong> Test Customer (any name)\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fdty9gbw7gew16.cloudfront.net\u002Fuploads\u002Fblog_yubion_fido2_server_service_fast_passkey_auth_2_69770a840c.png\" alt=\"\">\u003C\u002Fp>\n\u003Cp>After the customer registration is completed, a customer registration approval email will be sent to the administrator&#39;s email address.\u003C\u002Fp>\n\u003Cp>Click the URL link in the email body to open the customer activation screen.\u003C\u002Fp>\n\u003Cp>Once you register a passkey to log in to the &quot;YubiOn FIDO2 Server Service&quot; management website, the activation will be complete.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fdty9gbw7gew16.cloudfront.net\u002Fuploads\u002Fblog_yubion_fido2_server_service_fast_passkey_auth_3_02bc4cb015.png\" alt=\"\">\u003C\u002Fp>\n\u003Cp>A passkey registration modal will appear, so follow the instructions to register your passkey.\u003C\u002Fp>\n\u003Cp>In this example, we will use Windows Hello and register with a fingerprint.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fdty9gbw7gew16.cloudfront.net\u002Fuploads\u002Fblog_yubion_fido2_server_service_fast_passkey_auth_4_c0bfbf7802.png\" alt=\"\">\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>Registering an RP\u003C\u002Fp>\n\u003Cp>\u003Cstrong>RP\u003C\u002Fstrong> (Relying Party) is a FIDO term that refers to the service or web application that implements FIDO authentication.\u003C\u002Fp>\n\u003Cp>The \u003Cstrong>RP ID\u003C\u002Fstrong> is an identifier used to distinguish that service, and it is usually the domain name. In the case of the \u003Cstrong>“YubiOn FIDO2 Server Service”\u003C\u002Fstrong>, to prevent unauthorized third parties from registering services, ownership of the domain is normally verified when registering an RP. However, to make it easier to verify operation in development environments, RP IDs ending with .localhost can be used without ownership verification. In this walkthrough, we will use that mechanism to proceed.\u003C\u002Fp>\n\u003Cp>●Steps\u003C\u002Fp>\n\u003Cp>Log in to the “YubiOn FIDO2 Server Service” management website and open the \u003Cstrong>RP\u003C\u002Fstrong> screen.\u003C\u002Fp>\n\u003Cp>Click the \u003Cstrong>“Register RP”\u003C\u002Fstrong> button.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fdty9gbw7gew16.cloudfront.net\u002Fuploads\u002Fblog_yubion_fido2_server_service_fast_passkey_auth_5_d4e28eabf7.png\" alt=\"\">\u003C\u002Fp>\n\u003Cp>A modal window for RP registration will open. Enter the required information and complete the registration.\u003C\u002Fp>\n\u003Cp>　・RP ID: test-app**.localhost** (any name + \u003Cstrong>.localhost\u003C\u002Fstrong>\u003Cstrong>)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>　・RP name: Test App (any name)\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fdty9gbw7gew16.cloudfront.net\u002Fuploads\u002Fblog_yubion_fido2_server_service_fast_passkey_auth_6_b617438d0b.png\" alt=\"\">\u003C\u002Fp>\n\u003Cp>Normally, the RP would become “Verified” after confirming ownership. However, since we are using the development‑only “.localhost” as the RP ID this time, you can see that it is already marked as “Verified” at the time of RP registration.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fdty9gbw7gew16.cloudfront.net\u002Fuploads\u002Fblog_yubion_fido2_server_service_fast_passkey_auth_7_ce97d28f20.png\" alt=\"\">\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>Register an API Key\u003C\u002Fp>\n\u003Cp>Create a key that will be required when accessing the \u003Cstrong>YubiOn FIDO2 Server Service\u003C\u002Fstrong> API from the RP you registered. You will register it using \u003Cstrong>Nonce Signature Authentication\u003C\u002Fstrong>, and you must make a note of the \u003Cstrong>API Authentication ID\u003C\u002Fstrong> and \u003Cstrong>Secret Key\u003C\u002Fstrong> that are displayed after registration.\u003C\u002Fp>\n\u003Cp>●Steps\u003C\u002Fp>\n\u003Cp>Open the \u003Cstrong>API Key\u003C\u002Fstrong> screen from the RP details. (You can open the RP details by clicking the RP you registered on the RP screen.)\u003C\u002Fp>\n\u003Cp>Click the \u003Cstrong>“Register API key”\u003C\u002Fstrong> button.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fdty9gbw7gew16.cloudfront.net\u002Fuploads\u002Fblog_yubion_fido2_server_service_fast_passkey_auth_8_16d512202a.png\" alt=\"\">\u003C\u002Fp>\n\u003Cp>A modal window for API key registration will open. Enter the required information and complete the registration.\u003C\u002Fp>\n\u003Cp>　・API auth name: Test API key (any name)\u003C\u002Fp>\n\u003Cp>　・API auth type: \u003Cstrong>Nonce sign auth\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>※For this example, we are selecting Nonce Signature Authentication because of the implementation used in the sample application.\u003C\u002Fp>\n\u003Cp>　　　　　　　　　　For actual production use, please select the appropriate \u003Ca href=\"https:\u002F\u002Ffss.yubion.com\u002Fguide\u002Fen\u002Fdeveloper\u002Fapi-reference\u002Fapi_common_info\u002Findex.html\">authentication type\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fdty9gbw7gew16.cloudfront.net\u002Fuploads\u002Fblog_yubion_fido2_server_service_fast_passkey_auth_9_3cdd7df693.png\" alt=\"\">\u003C\u002Fp>\n\u003Cp>After registering the API key, make sure to record the \u003Cstrong>API authentication ID\u003C\u002Fstrong> and \u003Cstrong>secret key\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fdty9gbw7gew16.cloudfront.net\u002Fuploads\u002Fblog_yubion_fido2_server_service_fast_passkey_auth_10_b0c2d648f9.png\" alt=\"\">\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Preparing the Sample Application\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>You will use Visual Studio Code (VS Code) to run a web server on your PC.\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cp>Obtain the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FYubiOn-Dev-Team\u002Fyubion-fido2-server-sdk-js\u002F\">SDK\u003C\u002Fa> Sample Application\u003C\u002Fp>\n\u003Cp>The Node.js SDK source code includes a simple sample application that allows you to test FIDO registration and authentication features. You can access this sample by cloning the SDK source code from GitHub or by downloading the ZIP file and using the sample directory contained within it. Detailed setup instructions can be found in the README.md or README.ja.md file located directly under the sample directory.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>Set Environment Variables\u003C\u002Fp>\n\u003Cp>Copy the sample\u002Fserver\u002F.env.sample file and create a new .env file in the same location.\u003C\u002Fp>\n\u003Cp>Open the .env file in VS Code and edit the following values:\u003C\u002Fp>\n\u003Cp>　・FSS_RP_ID: test-app.localhost (the RP ID you registered)\u003C\u002Fp>\n\u003Cp>　・FSS_API_KEY_ID: (API authentication ID you recorded when registering the API key)\u003C\u002Fp>\n\u003Cp>　・FSS_API_SECRET: (Secret key you recorded when registering the API key)\u003C\u002Fp>\n\u003Cp>　・SESSION_SECRET: (A long, random string used to protect user sessions)\u003C\u002Fp>\n\u003Cp>　・CLIENT_ORIGIN_URL: \u003Ca href=\"http:\u002F\u002Ftest-app.localhost:5173\">http:\u002F\u002Ftest-app.localhost:5173\u003C\u002Fa> (URL of the client application)\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fdty9gbw7gew16.cloudfront.net\u002Fuploads\u002Fblog_yubion_fido2_server_service_fast_passkey_auth_11_d261d3ddf8.png\" alt=\"\">\u003C\u002Fp>\n\u003Cp>Because of the structure of the application, the backend and frontend run on separate servers, so you will need to start both of them.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>３． Start the Backend\u003C\u002Fp>\n\u003Cp>Open the terminal in VS Code and execute the following commands:\u003C\u002Fp>\n\u003Cpre>\u003Ccode># Move to the sample\u002Fserver directory\ncd sample\u002Fserver\n\n# Install dependencies\nnpm ci\n\n# Start the development server\nnpm run dev\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>If the server starts successfully, it should be running at: \u003Ca href=\"http:\u002F\u002Flocalhost:3000\">http:\u002F\u002Flocalhost:3000\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>４． Start the Frontend\u003C\u002Fp>\n\u003Cp>Open a new terminal in VS Code and execute the following commands:\u003C\u002Fp>\n\u003Cpre>\u003Ccode># Move to the sample\u002Fclient directory\ncd sample\u002Fclient\n\n# Install dependencies\nnpm ci\n\n# Start the development server\nnpm run dev\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The client development server will start on a port such as: \u003Ca href=\"http:\u002F\u002Flocalhost:5173\">http:\u002F\u002Flocalhost:5173\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Verify Sample Operation\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Once both the server and client are running, you can test passkey registration and authentication from your browser.\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cp>Access the Sample Application\u003C\u002Fp>\n\u003Cp>Open your browser and access: \u003Ca href=\"http:\u002F\u002Ftest-app.localhost:5173\u002F\">http:\u002F\u002Ftest-app.localhost:5173\u002F\u003C\u002Fa> (or http:\u002F\u002F\u003Cem>\u003Cthe RPID you set>\u003C\u002Fem>:5173\u002F). If everything is configured correctly, the login screen of the sample application will appear.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fdty9gbw7gew16.cloudfront.net\u002Fuploads\u002Fblog_yubion_fido2_server_service_fast_passkey_auth_12_c51c2a0709.png\" alt=\"\">\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>Register a User and Passkey\u003C\u002Fp>\n\u003Cp>Click the \u003Cstrong>&quot;Create a new account&quot;\u003C\u002Fstrong> link to open the user registration page.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fdty9gbw7gew16.cloudfront.net\u002Fuploads\u002Fblog_yubion_fido2_server_service_fast_passkey_auth_13_59ef540bd9.png\" alt=\"\">\u003C\u002Fp>\n\u003Cp>After entering any user information, click the \u003Cstrong>&quot;Register and Add Passkey&quot;\u003C\u002Fstrong> button.\u003C\u002Fp>\n\u003Cp>A passkey registration modal will appear. Follow the instructions to complete the passkey registration.\u003C\u002Fp>\n\u003Cp>In this example, we will register using a fingerprint—just as we did with the \u003Cstrong>YubiOn FIDO2 Server Service\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fdty9gbw7gew16.cloudfront.net\u002Fuploads\u002Fblog_yubion_fido2_server_service_fast_passkey_auth_14_9e13d93d3c.png\" alt=\"\">\u003C\u002Fp>\n\u003Cp>Since the SDK is integrated, the passkey registration completes successfully.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>Log in\u003C\u002Fp>\n\u003Cp>Click the \u003Cstrong>&quot;Login with Passkey&quot;\u003C\u002Fstrong> button to log in using your passkey.\u003C\u002Fp>\n\u003Cp>The user list is now displayed.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fdty9gbw7gew16.cloudfront.net\u002Fuploads\u002Fblog_yubion_fido2_server_service_fast_passkey_auth_15_5f8aa9535e.png\" alt=\"\">\u003C\u002Fp>\n\u003Cp>Passkey authentication was successful!\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\u003Cp>Verify Operation\u003C\u002Fp>\n\u003Cp>To verify that everything is working correctly, open the management website for the \u003Cstrong>YubiOn FIDO2 Server Service\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>On the RP details page, open the \u003Cstrong>“API Logs”\u003C\u002Fstrong> screen. You should see the relevant information reflected there, confirming that passkey registration and authentication were processed successfully.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fdty9gbw7gew16.cloudfront.net\u002Fuploads\u002Fblog_yubion_fido2_server_service_fast_passkey_auth_16_a07342ce04.png\" alt=\"\">\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>How was it? Although this was only a sample, we incorporated the SDK into the application and actually tested passkey registration and authentication. In a real project, you would need to implement your own service logic and then integrate the SDK. However, you may have seen how easily FIDO authentication can be introduced simply by adding the SDK.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>■Summary\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>The \u003Cstrong>YubiOn FIDO2 Server Service\u003C\u002Fstrong> is a powerful solution for companies considering the adoption of FIDO authentication. It significantly reduces both development cost and implementation time. By using this service, you can quickly and efficiently integrate FIDO authentication—which enhances security while improving the user experience—into your own services.\u003C\u002Fp>\n\u003Cp>You can register for free, so feel free to try it out.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>■Related Links\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>[YubiOn FIDO2 Server Service]\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Ffss.yubion.com\u002Fja\">https:\u002F\u002Ffss.yubion.com\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>[YubiOn FIDO2 Server Service Manual]\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Ffss.yubion.com\u002Fguide\u002Fen\u002F\">https:\u002F\u002Ffss.yubion.com\u002Fguide\u002Fen\u002F\u003C\u002Fa>\u003C\u002Fp>\n","yubion-fido2-server-service-fast-passkey-auth","2025-09-24","2026-04-28T07:06:08.807Z","2026-04-28T07:06:11.794Z","en","Asa",{"id":48,"documentId":49,"name":50,"alternativeText":51,"caption":51,"focalPoint":51,"width":52,"height":53,"formats":54,"hash":92,"ext":56,"mime":60,"size":93,"url":94,"previewUrl":51,"provider":95,"provider_metadata":51,"createdAt":96,"updatedAt":96,"publishedAt":96},802,"o1kpsrnamynobm7wtseigedc","blog-yubion-fido2-server-service-fast-passkey-auth-1.png",null,1825,894,{"large":55,"small":66,"medium":75,"thumbnail":84},{"ext":56,"url":57,"etag":58,"hash":59,"mime":60,"name":61,"path":51,"size":62,"width":63,"height":64,"sizeInBytes":65},".png","https:\u002F\u002Fdty9gbw7gew16.cloudfront.net\u002Fuploads\u002Flarge_blog_yubion_fido2_server_service_fast_passkey_auth_1_2d955afb83.png","c4afdcc3570d56b394a85f24dde51273","large_blog_yubion_fido2_server_service_fast_passkey_auth_1_2d955afb83","image\u002Fpng","large_blog-yubion-fido2-server-service-fast-passkey-auth-1.png",430.19,1000,490,430187,{"ext":56,"url":67,"etag":68,"hash":69,"mime":60,"name":70,"path":51,"size":71,"width":72,"height":73,"sizeInBytes":74},"https:\u002F\u002Fdty9gbw7gew16.cloudfront.net\u002Fuploads\u002Fsmall_blog_yubion_fido2_server_service_fast_passkey_auth_1_2d955afb83.png","a14bc1312d5e16077ca92f410156a68c","small_blog_yubion_fido2_server_service_fast_passkey_auth_1_2d955afb83","small_blog-yubion-fido2-server-service-fast-passkey-auth-1.png",115.73,500,245,115728,{"ext":56,"url":76,"etag":77,"hash":78,"mime":60,"name":79,"path":51,"size":80,"width":81,"height":82,"sizeInBytes":83},"https:\u002F\u002Fdty9gbw7gew16.cloudfront.net\u002Fuploads\u002Fmedium_blog_yubion_fido2_server_service_fast_passkey_auth_1_2d955afb83.png","196faf55176cd2ef3e06e0c0c030b64b","medium_blog_yubion_fido2_server_service_fast_passkey_auth_1_2d955afb83","medium_blog-yubion-fido2-server-service-fast-passkey-auth-1.png",239.51,750,367,239513,{"ext":56,"url":85,"etag":86,"hash":87,"mime":60,"name":88,"path":51,"size":89,"width":73,"height":90,"sizeInBytes":91},"https:\u002F\u002Fdty9gbw7gew16.cloudfront.net\u002Fuploads\u002Fthumbnail_blog_yubion_fido2_server_service_fast_passkey_auth_1_2d955afb83.png","816ce4f1ff50077f29db870155a2c0b1","thumbnail_blog_yubion_fido2_server_service_fast_passkey_auth_1_2d955afb83","thumbnail_blog-yubion-fido2-server-service-fast-passkey-auth-1.png",38.48,120,38478,"blog_yubion_fido2_server_service_fast_passkey_auth_1_2d955afb83",241.05,"https:\u002F\u002Fdty9gbw7gew16.cloudfront.net\u002Fuploads\u002Fblog_yubion_fido2_server_service_fast_passkey_auth_1_2d955afb83.png","aws-s3","2026-04-28T07:04:47.026Z",[98,104,110,116],{"id":99,"documentId":100,"name":101,"slug":51,"createdAt":102,"updatedAt":102,"publishedAt":103},44,"ndyi3ro2mlncggjsp6vy47ue","Passkeys","2026-04-28T05:22:55.540Z","2026-04-28T05:22:57.559Z",{"id":105,"documentId":106,"name":107,"slug":51,"createdAt":108,"updatedAt":108,"publishedAt":109},54,"aik3it1d9trj8u1rr5wbmw2d","FIDO2","2026-04-28T05:24:47.451Z","2026-04-28T05:24:49.300Z",{"id":111,"documentId":112,"name":113,"slug":51,"createdAt":114,"updatedAt":114,"publishedAt":115},56,"o72uon3nd8d31kuwuly0jame","YubiOn FIDO2 Server Service","2026-04-28T05:24:54.868Z","2026-04-28T05:24:56.719Z",{"id":117,"documentId":118,"name":119,"slug":51,"createdAt":120,"updatedAt":120,"publishedAt":121},110,"hspry4hzfp94ulih8tjfmu34","YubiOn FIDO2 Server","2026-04-28T07:06:03.949Z","2026-04-28T07:06:05.797Z",{"id":123,"metaDescription":124},321,"Discover the YubiOn FIDO2 Server Service, the fastest way for developers to easily integrate FIDO passkey authentication.",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":126},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M15.75 6a3.75 3.75 0 1 1-7.5 0a3.75 3.75 0 0 1 7.5 0M4.501 20.118a7.5 7.5 0 0 1 14.998 0A17.9 17.9 0 0 1 12 21.75c-2.676 0-5.216-.584-7.499-1.632\"\u002F>",1783406313627]