{"id":731,"date":"2021-09-18T13:57:50","date_gmt":"2021-09-18T05:57:50","guid":{"rendered":"https:\/\/www.linyinghao.cn\/wordpress\/?p=731"},"modified":"2026-04-08T14:32:11","modified_gmt":"2026-04-08T06:32:11","slug":"configure-azure-ad-single-sign-on-for-on-prem-oracle-apex","status":"publish","type":"post","link":"https:\/\/www.linyinghao.cn\/wordpress\/?p=731","title":{"rendered":"Configure Azure AD Single Sign On for On-prem Oracle APEX"},"content":{"rendered":"\n<p>This article describes the steps to configure Azure AD single sign on for OP Oracle Apex application.<\/p>\n\n\n\n<p>Reference links:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/oracle-base.com\/articles\/misc\/azure-ad-authentication-for-oracle-apex-applications\" data-type=\"URL\" data-id=\"https:\/\/oracle-base.com\/articles\/misc\/azure-ad-authentication-for-oracle-apex-applications\">https:\/\/oracle-base.com\/articles\/misc\/azure-ad-authentication-for-oracle-apex-applications<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=fAdhxFmvLI4\" data-type=\"URL\" data-id=\"https:\/\/www.youtube.com\/watch?v=fAdhxFmvLI4\">https:\/\/www.youtube.com\/watch?v=fAdhxFmvLI4<\/a><\/li>\n<\/ul>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_74 ez-toc-wrap-left counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.linyinghao.cn\/wordpress\/?p=731\/#Configure_Oracle_Database_to_Enable_SSL_Connection_to_Microsoftonline\" >Configure Oracle Database to Enable SSL Connection to Microsoftonline<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.linyinghao.cn\/wordpress\/?p=731\/#Download_SSL_Certificates\" >Download SSL Certificates.<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.linyinghao.cn\/wordpress\/?p=731\/#Create_DB_Wallet_and_Import_Certificates\" >Create DB Wallet and Import Certificates<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.linyinghao.cn\/wordpress\/?p=731\/#Create_and_Assign_ACL\" >Create and Assign ACL<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.linyinghao.cn\/wordpress\/?p=731\/#Verify_HTTPS_connection\" >Verify HTTPS connection.<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.linyinghao.cn\/wordpress\/?p=731\/#Configure_Azure_AD_to_Create_New_Application_for_APEX_SSO\" >Configure Azure AD to Create New Application for APEX SSO<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.linyinghao.cn\/wordpress\/?p=731\/#Create_New_Application\" >Create New Application<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.linyinghao.cn\/wordpress\/?p=731\/#Add_Client_Secret_for_Azure_Application\" >Add Client Secret for Azure Application<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.linyinghao.cn\/wordpress\/?p=731\/#Assign_Azure_AD_User_to_Application\" >Assign Azure AD User to Application<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.linyinghao.cn\/wordpress\/?p=731\/#Configure_APEX_Application_to_Use_Single_Sign_On\" >Configure APEX Application to Use Single Sign On<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.linyinghao.cn\/wordpress\/?p=731\/#Configure_APEX_to_Use_Wallet_as_Web_Credential\" >Configure APEX to Use Wallet as Web Credential<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.linyinghao.cn\/wordpress\/?p=731\/#Add_Web_Credential_for_APEX_application\" >Add Web Credential for APEX application<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.linyinghao.cn\/wordpress\/?p=731\/#Add_Authentication_Schema_for_SSO\" >Add Authentication Schema for SSO<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.linyinghao.cn\/wordpress\/?p=731\/#Test_and_verify_SSO_for_APEX\" >Test and verify SSO for APEX<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.linyinghao.cn\/wordpress\/?p=731\/#Known_Certificate_Issue\" >Known Certificate Issue<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.linyinghao.cn\/wordpress\/?p=731\/#Symptom\" >Symptom<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/www.linyinghao.cn\/wordpress\/?p=731\/#Root_Cause_Analysis\" >Root Cause Analysis<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/www.linyinghao.cn\/wordpress\/?p=731\/#Resolution\" >Resolution<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\" id=\"configure-oracle-database-to-enable-ssl-connection-to-microsoftonline\"><span class=\"ez-toc-section\" id=\"Configure_Oracle_Database_to_Enable_SSL_Connection_to_Microsoftonline\"><\/span>Configure Oracle Database to Enable SSL Connection to Microsoftonline<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Connection is established between OP Oracle DB and microsoft online. By default OP Oracle database doesn&#8217;t permit http calling to outside website through SSL connection. To do it, it is necessary to take following actions.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Download SSL certificate from microsoft website.<\/li>\n\n\n\n<li>Create DB wallet and import certificates.<\/li>\n\n\n\n<li>Create and assign ACL.<\/li>\n\n\n\n<li>Verify HTTPS connection.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"download-ssl-certificates\"><span class=\"ez-toc-section\" id=\"Download_SSL_Certificates\"><\/span>Download SSL Certificates.<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Open microsoft website <a href=\"http:\/\/login.microsoftonline.com\" data-type=\"URL\" data-id=\"login.microsoftonline.com\">login.microsoftonline.com<\/a> from Firefox, open certificate detail.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-12.png\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"214\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-12.png\" alt=\"\" class=\"wp-image-732\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-12.png 640w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-12-300x100.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-13.png\"><img loading=\"lazy\" decoding=\"async\" width=\"372\" height=\"147\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-13.png\" alt=\"\" class=\"wp-image-733\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-13.png 372w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-13-300x119.png 300w\" sizes=\"auto, (max-width: 372px) 100vw, 372px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-14.png\"><img loading=\"lazy\" decoding=\"async\" width=\"595\" height=\"213\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-14.png\" alt=\"\" class=\"wp-image-734\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-14.png 595w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-14-300x107.png 300w\" sizes=\"auto, (max-width: 595px) 100vw, 595px\" \/><\/a><figcaption class=\"wp-element-caption\">View Certificate<\/figcaption><\/figure>\n\n\n\n<p>Choose Root CA<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-15.png\"><img loading=\"lazy\" decoding=\"async\" width=\"825\" height=\"308\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-15.png\" alt=\"\" class=\"wp-image-735\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-15.png 825w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-15-300x112.png 300w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-15-768x287.png 768w\" sizes=\"auto, (max-width: 825px) 100vw, 825px\" \/><\/a><\/figure>\n\n\n\n<p>Download single certificate<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-16.png\"><img loading=\"lazy\" decoding=\"async\" width=\"811\" height=\"193\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-16.png\" alt=\"\" class=\"wp-image-736\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-16.png 811w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-16-300x71.png 300w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-16-768x183.png 768w\" sizes=\"auto, (max-width: 811px) 100vw, 811px\" \/><\/a><\/figure>\n\n\n\n<p>Repeat above steps for another website <a href=\"http:\/\/graph.microsoft.com\" data-type=\"URL\" data-id=\"graph.microsoft.com\">graph.microsoft.com<\/a>. Rename these 2 certificate files and place them in OS folder.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"create-db-wallet-and-import-certificates\"><span class=\"ez-toc-section\" id=\"Create_DB_Wallet_and_Import_Certificates\"><\/span>Create DB Wallet and Import Certificates<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>To enable access to website using SSL, it is necessary to import the websites&#8217; SSL certificate into Oracle database wallet.<\/p>\n\n\n\n<p>Create wallet file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p \/home\/oracle\/wallet\ncd \/home\/oracle\/wallet\n\norapki wallet create -wallet \/home\/oracle\/wallet -pwd MyWalletPassword -auto_login<\/code><\/pre>\n\n\n\n<p>Import the certificates. Repeat it for both websites.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ORACLE_HOME\/bin\/orapki wallet add -wallet \/home\/oracle\/wallet \\\n  -trusted_cert -cert \"\/home\/oracle\/wallet\/digicert-root.cer\" -pwd MyWalletPassword\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"create-and-assign-acl\"><span class=\"ez-toc-section\" id=\"Create_and_Assign_ACL\"><\/span>Create and Assign ACL<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>In Oracle 11gR2, use following scripts to create and assign ACL.<\/p>\n\n\n\n<p>Create ACL:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>BEGIN\n  DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (\n    acl =&gt; 'APEX_200100_TO_AZURE.xml', -- File name\n    description =&gt; 'allows APEX access to Azure',\n    principal =&gt; 'APEX_200100', -- APEX DB user name, must be in upper case\n    is_grant =&gt; TRUE,\n    privilege =&gt; 'connect');\nEND;\n\/\n<\/code><\/pre>\n\n\n\n<p>Assgn ACL:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>BEGIN\n  DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL ( -- Creates the first target host\n    acl =&gt; 'APEX_200100_TO_AZURE.xml',\n    host =&gt; 'login.microsoftonline.com');\n  DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL ( -- Creates the second target host\n    acl =&gt; 'APEX_200100_TO_AZURE.xml',\n    host =&gt; 'graph.microsoft.com');\nEND;\n\/\n<\/code><\/pre>\n\n\n\n<p>Assign wallet ACL. Make sure the wallet path start with &#8220;<span class=\"has-inline-color has-vivid-red-color\">file:\/<\/span>&#8220;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>BEGIN\n  DBMS_NETWORK_ACL_ADMIN.assign_wallet_acl ( -- Creates the first target host\n    acl =&gt; 'APEX_200100_TO_AZURE.xml',\n    wallet_path =&gt; '<span class=\"has-inline-color has-vivid-red-color\">file:\/home\/oracle\/wallet<\/span>');\nEND;\n\/\n<\/code><\/pre>\n\n\n\n<p>In Oracle 21c, use following scripts to create and assign ACL.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>declare\n  l_username varchar2(30) := 'APEX_200200';\nbegin\n  dbms_network_acl_admin.append_host_ace(\n    host =&gt; 'login.microsoftonline.com',\n    lower_port =&gt; 443,\n    ace  =&gt;  xs$ace_type(privilege_list =&gt; xs$name_list('connect'),\n                        principal_name =&gt; l_username,\n                        principal_type =&gt; xs_acl.ptype_db));\n\n  dbms_network_acl_admin.append_host_ace(\n    host =&gt; 'graph.microsoft.com',\n    lower_port =&gt; 443,\n    ace  =&gt;  xs$ace_type(privilege_list =&gt; xs$name_list('connect'),\n                        principal_name =&gt; l_username,\n                        principal_type =&gt; xs_acl.ptype_db));\n  commit;\nend;\n\/<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"verify-https-connection\"><span class=\"ez-toc-section\" id=\"Verify_HTTPS_connection\"><\/span>Verify HTTPS connection.<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>To ensure above setups are completed without error, make a call to microsoft website using PLSQL:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-17.png\"><img loading=\"lazy\" decoding=\"async\" width=\"538\" height=\"249\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-17.png\" alt=\"\" class=\"wp-image-738\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-17.png 538w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-17-300x139.png 300w\" sizes=\"auto, (max-width: 538px) 100vw, 538px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"configure-azure-ad-to-create-new-application-for-apex-sso\"><span class=\"ez-toc-section\" id=\"Configure_Azure_AD_to_Create_New_Application_for_APEX_SSO\"><\/span>Configure Azure AD to Create New Application for APEX SSO<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"create-new-application\"><span class=\"ez-toc-section\" id=\"Create_New_Application\"><\/span>Create New Application<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-20.png\"><img loading=\"lazy\" decoding=\"async\" width=\"749\" height=\"592\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-20.png\" alt=\"\" class=\"wp-image-742\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-20.png 749w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-20-300x237.png 300w\" sizes=\"auto, (max-width: 749px) 100vw, 749px\" \/><\/a><\/figure>\n\n\n\n<p>Provide APEX callback URL in recirect URI list. During SSO, after authentication completes, Azure will redirect back to APEX application. If this is not setup, it may cause error during the redirect activity.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-21.png\"><img loading=\"lazy\" decoding=\"async\" width=\"892\" height=\"910\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-21.png\" alt=\"\" class=\"wp-image-743\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-21.png 892w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-21-294x300.png 294w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-21-768x783.png 768w\" sizes=\"auto, (max-width: 892px) 100vw, 892px\" \/><\/a><\/figure>\n\n\n\n<p>Markdown Client ID, this will be used in APEX condiguration.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-40.png\"><img loading=\"lazy\" decoding=\"async\" width=\"807\" height=\"361\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-40.png\" alt=\"\" class=\"wp-image-769\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-40.png 807w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-40-300x134.png 300w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-40-768x344.png 768w\" sizes=\"auto, (max-width: 807px) 100vw, 807px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"add-client-secret-for-azure-application\"><span class=\"ez-toc-section\" id=\"Add_Client_Secret_for_Azure_Application\"><\/span>Add Client Secret for Azure Application<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-22.png\"><img loading=\"lazy\" decoding=\"async\" width=\"707\" height=\"717\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-22.png\" alt=\"\" class=\"wp-image-744\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-22.png 707w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-22-296x300.png 296w\" sizes=\"auto, (max-width: 707px) 100vw, 707px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-23.png\"><img loading=\"lazy\" decoding=\"async\" width=\"582\" height=\"156\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-23.png\" alt=\"\" class=\"wp-image-745\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-23.png 582w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-23-300x80.png 300w\" sizes=\"auto, (max-width: 582px) 100vw, 582px\" \/><\/a><\/figure>\n\n\n\n<p>Markdown the secret, this will be used in APEX configuration.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-24.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"207\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-24-1024x207.png\" alt=\"\" class=\"wp-image-746\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-24-1024x207.png 1024w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-24-300x61.png 300w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-24-768x156.png 768w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-24.png 1032w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"assign-azure-ad-user-to-application\"><span class=\"ez-toc-section\" id=\"Assign_Azure_AD_User_to_Application\"><\/span>Assign Azure AD User to Application<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-25.png\"><img loading=\"lazy\" decoding=\"async\" width=\"241\" height=\"505\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-25.png\" alt=\"\" class=\"wp-image-747\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-25.png 241w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-25-143x300.png 143w\" sizes=\"auto, (max-width: 241px) 100vw, 241px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-26.png\"><img loading=\"lazy\" decoding=\"async\" width=\"680\" height=\"388\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-26.png\" alt=\"\" class=\"wp-image-748\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-26.png 680w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-26-300x171.png 300w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-27.png\"><img loading=\"lazy\" decoding=\"async\" width=\"589\" height=\"392\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-27.png\" alt=\"\" class=\"wp-image-749\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-27.png 589w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-27-300x200.png 300w\" sizes=\"auto, (max-width: 589px) 100vw, 589px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-29.png\"><img loading=\"lazy\" decoding=\"async\" width=\"309\" height=\"197\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-29.png\" alt=\"\" class=\"wp-image-751\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-29.png 309w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-29-300x191.png 300w\" sizes=\"auto, (max-width: 309px) 100vw, 309px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"configure-apex-application-to-use-single-sign-on\"><span class=\"ez-toc-section\" id=\"Configure_APEX_Application_to_Use_Single_Sign_On\"><\/span>Configure APEX Application to Use Single Sign On<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"configure-apex-to-use-wallet-as-web-credential\"><span class=\"ez-toc-section\" id=\"Configure_APEX_to_Use_Wallet_as_Web_Credential\"><\/span>Configure APEX to Use Wallet as Web Credential<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Login to INTERNAL workspace as APEX admin and navitate to Manage Instance -&gt; Instance Setting.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-18.png\"><img loading=\"lazy\" decoding=\"async\" width=\"520\" height=\"264\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-18.png\" alt=\"\" class=\"wp-image-740\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-18.png 520w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-18-300x152.png 300w\" sizes=\"auto, (max-width: 520px) 100vw, 520px\" \/><\/a><\/figure>\n\n\n\n<p>Go to Wallet tab and input wallet path as well as wallet password.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-19.png\"><img loading=\"lazy\" decoding=\"async\" width=\"666\" height=\"380\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-19.png\" alt=\"\" class=\"wp-image-741\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-19.png 666w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-19-300x171.png 300w\" sizes=\"auto, (max-width: 666px) 100vw, 666px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"add-web-credential-for-apex-application\"><span class=\"ez-toc-section\" id=\"Add_Web_Credential_for_APEX_application\"><\/span>Add Web Credential for APEX application<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>In APEX application management page, go to Shared Components<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-31.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1012\" height=\"373\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-31.png\" alt=\"\" class=\"wp-image-755\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-31.png 1012w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-31-300x111.png 300w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-31-768x283.png 768w\" sizes=\"auto, (max-width: 1012px) 100vw, 1012px\" \/><\/a><\/figure>\n\n\n\n<p>Go to Security -&gt; Web Credentials<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-32.png\"><img loading=\"lazy\" decoding=\"async\" width=\"838\" height=\"359\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-32.png\" alt=\"\" class=\"wp-image-756\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-32.png 838w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-32-300x129.png 300w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-32-768x329.png 768w\" sizes=\"auto, (max-width: 838px) 100vw, 838px\" \/><\/a><\/figure>\n\n\n\n<p>Specify Client ID and Client Secret got from Azure application client secret.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-41.png\"><img loading=\"lazy\" decoding=\"async\" width=\"880\" height=\"673\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-41.png\" alt=\"\" class=\"wp-image-771\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-41.png 880w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-41-300x229.png 300w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-41-768x587.png 768w\" sizes=\"auto, (max-width: 880px) 100vw, 880px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"add-authentication-schema-for-sso\"><span class=\"ez-toc-section\" id=\"Add_Authentication_Schema_for_SSO\"><\/span>Add Authentication Schema for SSO<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-34.png\"><img loading=\"lazy\" decoding=\"async\" width=\"955\" height=\"373\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-34.png\" alt=\"\" class=\"wp-image-758\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-34.png 955w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-34-300x117.png 300w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-34-768x300.png 768w\" sizes=\"auto, (max-width: 955px) 100vw, 955px\" \/><\/a><\/figure>\n\n\n\n<p>Leave default for first step<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-35.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"347\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-35-1024x347.png\" alt=\"\" class=\"wp-image-759\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-35-1024x347.png 1024w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-35-300x102.png 300w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-35-768x261.png 768w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-35.png 1462w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Select Social Sign-in as Schema type, specify endpoint URL as per endpoints provided by Azure.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-36.png\"><img loading=\"lazy\" decoding=\"async\" width=\"846\" height=\"791\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-36.png\" alt=\"\" class=\"wp-image-760\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-36.png 846w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-36-300x280.png 300w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-36-768x718.png 768w\" sizes=\"auto, (max-width: 846px) 100vw, 846px\" \/><\/a><\/figure>\n\n\n\n<p>To get endpoints from Azure, click the Endpoints.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-42.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"395\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-42-1024x395.png\" alt=\"\" class=\"wp-image-773\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-42-1024x395.png 1024w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-42-300x116.png 300w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-42-768x296.png 768w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-42-1536x592.png 1536w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-42.png 1901w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"test-and-verify-sso-for-apex\"><span class=\"ez-toc-section\" id=\"Test_and_verify_SSO_for_APEX\"><\/span>Test and verify SSO for APEX<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-38.png\"><img loading=\"lazy\" decoding=\"async\" width=\"448\" height=\"552\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-38.png\" alt=\"\" class=\"wp-image-762\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-38.png 448w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-38-243x300.png 243w\" sizes=\"auto, (max-width: 448px) 100vw, 448px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-39.png\"><img loading=\"lazy\" decoding=\"async\" width=\"679\" height=\"160\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-39.png\" alt=\"\" class=\"wp-image-763\" srcset=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-39.png 679w, https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/image-39-300x71.png 300w\" sizes=\"auto, (max-width: 679px) 100vw, 679px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Known_Certificate_Issue\"><\/span>Known Certificate Issue<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Symptom\"><\/span>Symptom<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>As of Apr-2026, the APEX application failed during Microsoft SSO authentication with the following error:<\/p>\n\n\n\n<p>ORA-29024: Certificate validation failure<\/p>\n\n\n\n<p>The failure occurred when APEX attempted to access the Microsoft OpenID Connect (OIDC) metadata endpoint. As a result, users could not sign in using Azure AD SSO.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Root_Cause_Analysis\"><\/span>Root Cause Analysis<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The Oracle wallet used by APEX outbound HTTPS connections was originally created in September 2021.<\/p>\n\n\n\n<p>At that time, the wallet only contained older public CA certificates:<\/p>\n\n\n\n<p>GlobalSign Root CA<br>Baltimore CyberTrust Root<br>DigiCert Global Root CA<\/p>\n\n\n\n<p>After verification with openssl and browser certificate inspection, the current Microsoft Entra ID endpoint certificate chain was identified as:<\/p>\n\n\n\n<p>DigiCert Global Root G2<br>\u2514\u2500\u2500 Microsoft Azure RSA TLS Issuing CA 08<br>        \u2514\u2500\u2500 stamp2.login.microsoftonline.com<\/p>\n\n\n\n<p>The existing wallet did not include:<\/p>\n\n\n\n<p>DigiCert Global Root G2<br>Microsoft Azure RSA TLS Issuing CA 08<\/p>\n\n\n\n<p>Because of this missing trust chain, Oracle could not validate the HTTPS certificate presented by Microsoft, resulting in:<\/p>\n\n\n\n<p>ORA-29024: Certificate validation failure<\/p>\n\n\n\n<p>This issue is consistent with a certificate chain rotation on the Microsoft side, while the Oracle wallet remained unchanged since 2021.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Resolution\"><\/span>Resolution<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The latest Microsoft CA certificates were downloaded and imported into the Oracle wallet:<\/p>\n\n\n\n<p>DigiCert Global Root G2.crt<br>Microsoft Azure RSA TLS Issuing CA 08.crt<\/p>\n\n\n\n<p>The following commands were used:<\/p>\n\n\n\n<p><code>orapki wallet add -wallet \/home\/oracle\/wallet -trusted_cert -cert \"DigiCert Global Root G2.crt\"<br>orapki wallet add -wallet \/home\/oracle\/wallet -trusted_cert -cert \"Microsoft Azure RSA TLS Issuing CA 08.crt\"<\/code><\/p>\n\n\n\n<p>After import, wallet validation confirmed the new trusted certificates were present.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1512\" height=\"901\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/20260408063027909.png\" alt=\"\" class=\"wp-image-1289\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1491\" height=\"239\" src=\"https:\/\/www.linyinghao.cn\/wordpress\/wp-content\/uploads\/2021\/09\/20260408063157119.png\" alt=\"\" class=\"wp-image-1290\"\/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>This article describes the steps to configure Azure AD single sign on for OP Oracle Apex application.<\/p>\n","protected":false},"author":1,"featured_media":836,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[17,22,19],"class_list":["post-731","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-2","tag-apex","tag-azuread","tag-sso"],"_links":{"self":[{"href":"https:\/\/www.linyinghao.cn\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/731","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linyinghao.cn\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linyinghao.cn\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.linyinghao.cn\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linyinghao.cn\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=731"}],"version-history":[{"count":16,"href":"https:\/\/www.linyinghao.cn\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/731\/revisions"}],"predecessor-version":[{"id":1291,"href":"https:\/\/www.linyinghao.cn\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/731\/revisions\/1291"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.linyinghao.cn\/wordpress\/index.php?rest_route=\/wp\/v2\/media\/836"}],"wp:attachment":[{"href":"https:\/\/www.linyinghao.cn\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=731"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linyinghao.cn\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=731"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linyinghao.cn\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=731"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}