CINXE.COM
Blog | Okta Developer
<!doctype html> <!--[if lt IE 7 ]> <html class="ie6 no-flexbox"> <![endif]--> <!--[if IE 7 ]> <html class="ie7 no-flexbox"> <![endif]--> <!--[if IE 8 ]> <html class="ie8 no-flexbox"> <![endif]--> <!--[if IE 9 ]> <html class="ie9 no-flexbox"> <![endif]--> <!--[if IE 10 ]> <html class="ie10 no-flexbox"> <![endif]--> <!--[if (gt IE 10)|!(IE)]><!--> <html class="modern wf-loading" lang="en"> <!--<![endif]--> <head> <link rel="preload" href="https://use.typekit.net/osg6paw.css" as="style" crossorigin /> <link rel="stylesheet" href="https://use.typekit.net/osg6paw.css" crossorigin /> <script> var searchDomain = 'https://developer.okta.com'; var isProduction = window.location.hostname === 'developer.okta.com'; if (isProduction) { // START Google Tag Manager (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-KXMLV58'); // END Google Tag Manager } </script> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="IE=edge,chrome=1"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://static.cloud.coveo.com/searchui/v2.10081/5/css/CoveoFullSearch.min.css" integrity="sha512-c6ZA0d3XVIG36GHJHX+TRBINlF4+k4cDAngeqQmWzEcPys5FWvLCD/IVaUJsdmNchM+4YuCcYpaXsNsb2B8bWQ==" crossorigin="anonymous"> <link type="text/css" rel="stylesheet" href="/assets-jekyll/animate-ec43d72c3ed45e08a460b8a2966d8dba6006aebfa0530935c3973fa493a8771f.css"> <link type="text/css" rel="stylesheet" href="/assets-jekyll/okta-8827cefe7b31addfe7cb0b9378ecdbcb6b14ff95905fcf3872e1c17384a55cf1.css"> <title>Blog | Okta Developer</title> <meta name="description" content="Secure, scalable, and highly available authentication and user management for any app. "> <link rel="alternate" type="application/rss+xml" title="Okta Developer" href="https://developer.okta.com/feed.xml"><!-- GA --> <link rel="apple-touch-icon" sizes="180x180" href="/assets-jekyll/favicon/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="/assets-jekyll/favicon/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/assets-jekyll/favicon/favicon-16x16.png"> <link rel="manifest" href="/assets-jekyll/favicon/manifest.json"> <link rel="mask-icon" href="/assets-jekyll/favicon/safari-pinned-tab.svg" color="#21313a"> <meta name="msapplication-config" content="/assets-jekyll/favicon/browserconfig.xml"> <meta name="theme-color" content="#ffffff"> <link rel="canonical" href="https://developer.okta.com/blog/" /> <!-- START VWO Tracking --> <script type='text/javascript'> var _vwo_code=(function(){ var account_id=342490, settings_tolerance=2000, library_tolerance=2500, use_existing_jquery=false, /* DO NOT EDIT BELOW THIS LINE */ f=false,d=document;return{use_existing_jquery:function(){return use_existing_jquery;},library_tolerance:function(){return library_tolerance;},finish:function(){if(!f){f=true;var a=d.getElementById('_vis_opt_path_hides');if(a)a.parentNode.removeChild(a);}},finished:function(){return f;},load:function(a){var b=d.createElement('script');b.src=a;b.type='text/javascript';b.innerText;b.onerror=function(){_vwo_code.finish();};d.getElementsByTagName('head')[0].appendChild(b);},init:function(){settings_timer=setTimeout('_vwo_code.finish()',settings_tolerance);var a=d.createElement('style'),b='body{opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important;}',h=d.getElementsByTagName('head')[0];a.setAttribute('id','_vis_opt_path_hides');a.setAttribute('type','text/css');if(a.styleSheet)a.styleSheet.cssText=b;else a.appendChild(d.createTextNode(b));h.appendChild(a);this.load('//dev.visualwebsiteoptimizer.com/j.php?a='+account_id+'&u='+encodeURIComponent(d.URL)+'&r='+Math.random());return settings_timer;}};}());_vwo_settings_timer=_vwo_code.init(); </script> <!-- END VWO Tracking --> </head> <body id="blog" class=""> <nav class="navigation is-fixed"> <div class="nav-wrapper flex-row align-center"> <a class="logo" href="https://developer.okta.com"> <svg viewBox="0 0 157 22" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M56.0156 0.407593H61.1882C65.9798 0.407593 69.0472 3.65742 69.0472 8.65403C69.0472 13.7725 66.1802 16.9817 61.0879 16.9817H56.0357V0.407593H56.0156ZM60.727 15.4177C65.1177 15.4177 67.303 13.0007 67.303 8.65403C67.303 4.59174 65.1578 1.97157 60.8473 1.97157H57.6396V15.4177H60.727Z" fill="white"></path> <path d="M71.25 11.0711C71.25 7.25254 73.4554 4.97766 76.2421 4.97766C79.4499 4.97766 81.4948 7.69939 81.134 11.4367H72.7937C72.894 14.8287 74.6182 15.9052 76.4025 15.9052C78.4074 15.9052 79.4098 14.3818 79.7506 13.4475L81.1941 13.9959C80.4724 16.0068 78.668 17.2864 76.3624 17.2864C73.2749 17.2864 71.25 15.174 71.25 11.0711ZM79.5702 10.1164C79.5702 7.55721 77.9863 6.2979 76.2421 6.2979C74.3776 6.2979 72.9541 7.86188 72.8138 10.1164H79.5702Z" fill="white"></path> <path d="M82.6992 5.30261H84.3432L86.6087 11.9851L87.8316 15.5396L89.0346 12.0054L91.1998 5.30261H92.8037L88.794 16.9817H86.8292L82.6992 5.30261Z" fill="white"></path> <path d="M94.3281 11.0711C94.3281 7.25254 96.5335 4.97766 99.3202 4.97766C102.528 4.97766 104.573 7.69939 104.212 11.4367H95.8719C95.9721 14.8287 97.6963 15.9052 99.4606 15.9052C101.465 15.9052 102.468 14.3818 102.809 13.4475L104.252 13.9959C103.53 16.0068 101.726 17.2864 99.4205 17.2864C96.3731 17.2864 94.3281 15.174 94.3281 11.0711ZM102.648 10.1164C102.648 7.55721 101.064 6.2979 99.3202 6.2979C97.4557 6.2979 96.0323 7.86188 95.8919 10.1164H102.648Z" fill="white"></path> <path d="M108.802 0.407593H107.238V16.9817H108.802V0.407593Z" fill="white"></path> <path d="M111.688 11.1523C111.688 7.41503 114.093 4.97766 117.02 4.97766C119.947 4.97766 122.353 7.41503 122.353 11.1523C122.353 14.8896 119.867 17.2864 117.02 17.2864C114.174 17.2864 111.688 14.8896 111.688 11.1523ZM120.729 11.1726C120.729 8.00406 119.065 6.39946 117.02 6.39946C114.955 6.39946 113.311 8.00406 113.311 11.1726C113.311 14.3412 114.975 15.8849 117.02 15.8849C119.085 15.8849 120.729 14.3615 120.729 11.1726Z" fill="white"></path> <path d="M125.242 5.30269H126.766V7.33383C127.327 6.19639 128.57 4.9574 130.595 4.9574C133.141 4.9574 135.307 7.0901 135.307 11.1118C135.307 15.1334 133.141 17.2661 130.595 17.2661C128.49 17.2661 127.327 16.0068 126.806 14.9303V17.2052V21.5924H125.242V5.30269ZM133.743 11.1118C133.743 7.69944 132.199 6.39951 130.294 6.39951C128.29 6.39951 126.746 7.88224 126.746 11.1118C126.746 14.3413 128.29 15.8849 130.294 15.8849C132.199 15.8849 133.743 14.5444 133.743 11.1118Z" fill="white"></path> <path d="M137.395 11.0711C137.395 7.25254 139.6 4.97766 142.387 4.97766C145.594 4.97766 147.639 7.69939 147.278 11.4367H138.938C139.039 14.8287 140.763 15.9052 142.547 15.9052C144.552 15.9052 145.554 14.3818 145.895 13.4475L147.339 13.9959C146.617 16.0068 144.813 17.2864 142.507 17.2864C139.439 17.2864 137.395 15.174 137.395 11.0711ZM145.715 10.1164C145.715 7.55721 144.131 6.2979 142.387 6.2979C140.522 6.2979 139.099 7.86188 138.958 10.1164H145.715Z" fill="white"></path> <path d="M150.305 5.30263H151.848V7.88218C152.189 6.78536 153.432 5.14014 155.618 5.14014C156.279 5.14014 156.7 5.24169 157.001 5.30263V6.90723C156.66 6.82598 156.179 6.76505 155.598 6.76505C152.931 6.76505 151.868 8.75557 151.868 11.6195V16.9614H150.325V5.30263H150.305Z" fill="white"></path> <path d="M6.0341 4.83545C2.70604 4.83545 0.0195312 7.55718 0.0195312 10.9289C0.0195312 14.3006 2.70604 17.0223 6.0341 17.0223C9.36216 17.0223 12.0487 14.3006 12.0487 10.9289C12.0487 7.57749 9.36216 4.83545 6.0341 4.83545ZM6.0341 13.9756C4.37007 13.9756 3.02681 12.6147 3.02681 10.9289C3.02681 9.24303 4.37007 7.88216 6.0341 7.88216C7.69813 7.88216 9.04138 9.24303 9.04138 10.9289C9.04138 12.6147 7.69813 13.9756 6.0341 13.9756Z" fill="white"></path> <path d="M16.5987 12.9804C16.5987 12.4929 17.1801 12.2695 17.5009 12.5945C19.0045 14.1585 21.4905 16.7989 21.5106 16.8193C21.5507 16.8599 21.5707 16.9208 21.7311 16.9614C21.7913 16.9818 21.8915 16.9818 21.9917 16.9818H24.6983C25.1795 16.9818 25.3399 16.413 25.0993 16.1287L20.6084 11.457L20.3678 11.2133C19.8666 10.604 19.9067 10.3602 20.4881 9.73058L24.0768 5.70891C24.3174 5.42456 24.157 4.85584 23.6558 4.85584H21.1898C21.0896 4.85584 21.0094 4.85584 20.9492 4.87615C20.8089 4.91677 20.7487 4.9777 20.7086 5.01833C20.6886 5.03864 18.7238 7.19165 17.5009 8.51189C17.16 8.8775 16.5786 8.63376 16.5786 8.14628V1.2404C16.5786 0.89511 16.298 0.75293 16.0574 0.75293H14.0525C13.7117 0.75293 13.5312 0.996667 13.5312 1.19978V16.5349C13.5312 16.8802 13.832 16.9818 14.0525 16.9818H16.0574C16.3781 16.9818 16.5786 16.7583 16.5786 16.5146V16.3521V12.9804H16.5987Z" fill="white"></path> <path d="M32.9993 16.4537L32.7787 14.4225C32.7587 14.1382 32.498 13.9553 32.2174 13.996C32.057 14.0163 31.9166 14.0366 31.7562 14.0366C30.1524 14.0366 28.8492 12.757 28.769 11.1524C28.769 11.0914 28.769 11.0508 28.769 10.9899V8.49158C28.769 8.1666 29.0096 7.90255 29.3304 7.90255H32.0169C32.2174 7.90255 32.498 7.74006 32.498 7.37445V5.44487C32.498 5.07926 32.2575 4.87615 32.057 4.87615H29.3504C29.0296 4.87615 28.7891 4.65272 28.7891 4.32774V1.2404C28.7891 1.0576 28.6487 0.75293 28.2678 0.75293H26.2629C26.0023 0.75293 25.7617 0.915421 25.7617 1.22009C25.7617 1.22009 25.7617 11.0914 25.7617 11.1321C25.8419 14.4225 28.5084 17.063 31.7763 17.063C32.057 17.063 32.3176 17.0427 32.5782 17.0021C32.8389 16.9817 33.0393 16.7177 32.9993 16.4537Z" fill="white"></path> <path d="M47.4939 13.8944C45.7898 13.8944 45.5291 13.285 45.5291 10.9695V10.9492V5.4042C45.5291 5.22139 45.3888 4.89641 45.0079 4.89641H43.003C42.7424 4.89641 42.4818 5.09952 42.4818 5.4042V5.66824C41.5996 5.16046 40.5972 4.8761 39.5146 4.8761C36.1865 4.8761 33.5 7.59783 33.5 10.9695C33.5 14.3412 36.1865 17.0629 39.5146 17.0629C40.9982 17.0629 42.3615 16.5145 43.424 15.6005C43.9854 16.4739 44.9076 17.0426 46.311 17.0629C46.5516 17.0629 47.8347 17.1036 47.8347 16.4942V14.3006C47.8347 14.0975 47.6944 13.8944 47.4939 13.8944ZM39.5146 13.9756C37.8505 13.9756 36.5073 12.6147 36.5073 10.9289C36.5073 9.24305 37.8505 7.88219 39.5146 7.88219C41.1786 7.88219 42.5218 9.24305 42.5218 10.9289C42.5218 12.6147 41.1786 13.9756 39.5146 13.9756Z" fill="white"></path> </svg> </a> <div class="menu--slideout"> <div class="search-wrapper" data-search-bar> <!-- Search box --> <div class="SearchBox search-box flex" data-pipeline="developer-okta-com"> <div class="search--form"> <div class="CoveoOmnibox"></div> <div class="CoveoSearchButton hide-for-medium">Search</div> </div> <div class="CoveoAnalytics"></div> <svg class="search-icon " width="15" height="15" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M7.47328 8.65339C6.81369 9.09025 6.02272 9.34466 5.17233 9.34466C2.86802 9.34466 1 7.47665 1 5.17233C1 2.86802 2.86802 1 5.17233 1C7.47665 1 9.34466 2.86802 9.34466 5.17233C9.34466 6.02272 9.09025 6.81369 8.65339 7.47328L10.7556 9.57548C11.0815 9.90136 11.0815 10.4297 10.7556 10.7556C10.4297 11.0815 9.90136 11.0815 9.57548 10.7556L7.47328 8.65339ZM7.67573 5.17233C7.67573 6.55492 6.55492 7.67573 5.17233 7.67573C3.78974 7.67573 2.66893 6.55492 2.66893 5.17233C2.66893 3.78974 3.78974 2.66893 5.17233 2.66893C6.55492 2.66893 7.67573 3.78974 7.67573 5.17233Z" fill="#14222A" stroke="white" stroke-width="0.25"/> </svg> </div> <!-- end Search box --> </div> <div class="flex-row space-between align-center full-width"> <ul class="menu flex-row align-center flex-auto"> <li class="menu-item has-children"> <span class="nav-link">Community <i class="fa fa-angle-down"></i></span> <ul class="sub-menu"> <li class="menu-item"> <a href="https://devforum.okta.com/" class="nav-link">Forum</a> </li> <li class="menu-item"> <a href="https://toolkit.okta.com/" class="nav-link">Toolkit</a> </li> <li class="menu-item"> <div class="social-links flex-row space-between align-center"> <a href="http://github.com/oktadev" class="social"> <!-- Github icon --> <svg class="" width="23" height="23" viewBox="0 0 23 23" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M20.9406 6.21364C19.937 4.45098 18.5757 3.05547 16.8563 2.02682C15.1367 0.99811 13.2593 0.483887 11.2229 0.483887C9.18683 0.483887 7.30888 0.998267 5.58959 2.02682C3.87005 3.05542 2.50879 4.45098 1.50519 6.21364C0.501747 7.97625 0 9.90103 0 11.9879C0 14.4948 0.713491 16.749 2.14083 18.7512C3.56802 20.7535 5.41173 22.139 7.67182 22.9079C7.9349 22.958 8.12965 22.9228 8.25628 22.8032C8.38295 22.6835 8.44622 22.5335 8.44622 22.354C8.44622 22.324 8.44371 22.0545 8.43885 21.5451C8.43383 21.0357 8.43148 20.5913 8.43148 20.2121L8.09536 20.2717C7.88105 20.312 7.61071 20.329 7.28431 20.3242C6.95807 20.3195 6.61939 20.2845 6.26874 20.2193C5.91793 20.1547 5.59164 20.005 5.28961 19.7703C4.98773 19.5356 4.77343 19.2284 4.64675 18.8492L4.50062 18.5045C4.40322 18.275 4.24988 18.02 4.04039 17.7406C3.83089 17.4609 3.61905 17.2713 3.40474 17.1715L3.30243 17.0964C3.23425 17.0465 3.17099 16.9863 3.11249 16.9165C3.05404 16.8466 3.01028 16.7767 2.98105 16.7068C2.95177 16.6367 2.97603 16.5793 3.05409 16.5342C3.13214 16.4891 3.2732 16.4673 3.47788 16.4673L3.77004 16.512C3.96489 16.552 4.20591 16.6716 4.49341 16.8715C4.78075 17.0711 5.01696 17.3307 5.20209 17.6502C5.42627 18.0597 5.69636 18.3718 6.01313 18.5865C6.32965 18.8013 6.64877 18.9085 6.9702 18.9085C7.29163 18.9085 7.56925 18.8835 7.80315 18.8338C8.0368 18.7839 8.25602 18.7088 8.4607 18.609C8.54838 17.9396 8.7871 17.4254 9.17665 17.0659C8.62142 17.0061 8.12223 16.916 7.67883 16.7963C7.23569 16.6763 6.77775 16.4817 6.30533 16.2118C5.83266 15.9423 5.44055 15.6076 5.12889 15.2083C4.81719 14.8088 4.56138 14.2844 4.36181 13.6354C4.16215 12.9862 4.06229 12.2373 4.06229 11.3885C4.06229 10.1799 4.44719 9.15149 5.21683 8.30259C4.85629 7.39397 4.89033 6.37539 5.31904 5.24694C5.60157 5.15696 6.02055 5.22449 6.57579 5.4491C7.13112 5.67381 7.53772 5.86631 7.79599 6.02591C8.05426 6.18546 8.26119 6.32067 8.41709 6.43032C9.32329 6.17077 10.2585 6.04097 11.2228 6.04097C12.1872 6.04097 13.1226 6.17077 14.0288 6.43032L14.5841 6.07098C14.9639 5.83121 15.4123 5.61148 15.9283 5.41174C16.4446 5.21211 16.8395 5.15712 17.1124 5.2471C17.5506 6.3756 17.5896 7.39413 17.229 8.30274C17.9986 9.15165 18.3836 10.1804 18.3836 11.3887C18.3836 12.2375 18.2834 12.9887 18.0841 13.6429C17.8845 14.2972 17.6264 14.8212 17.3099 15.2158C16.9931 15.6104 16.5984 15.9425 16.126 16.2119C15.6535 16.4816 15.1954 16.6763 14.7523 16.7962C14.3089 16.9162 13.8097 17.0063 13.2545 17.0662C13.7609 17.5154 14.0142 18.2245 14.0142 19.1931V22.3536C14.0142 22.5331 14.0751 22.683 14.197 22.8028C14.3187 22.9223 14.511 22.9576 14.7741 22.9074C17.0345 22.1387 18.8782 20.7531 20.3054 18.7507C21.7323 16.7486 22.4461 14.4944 22.4461 11.9875C22.4456 9.90087 21.9436 7.97625 20.9406 6.21364Z" fill="#DD2864"/> </svg> </a> <a href="http://twitter.com/OktaDev" class="social"> <!-- Twitter icon --> <svg class="" width="23" height="23" viewBox="0 0 23 23" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M11.223 0.483887C5.02568 0.483887 0 5.50956 0 11.7069C0 17.9043 5.02568 22.93 11.223 22.93C17.4204 22.93 22.4461 17.9043 22.4461 11.7069C22.4461 5.50956 17.4204 0.483887 11.223 0.483887ZM16.3474 9.23442C16.3523 9.34488 16.3547 9.45585 16.3547 9.56734C16.3547 12.9713 13.7637 16.8965 9.02539 16.8967C7.57062 16.8967 6.21689 16.4703 5.07688 15.7395C5.27844 15.7633 5.4836 15.7752 5.69133 15.7752C6.8983 15.7752 8.00902 15.3635 8.89079 14.6725C7.76311 14.6516 6.81233 13.9068 6.48421 12.8833C6.64125 12.9134 6.80274 12.9298 6.96834 12.9298C7.20346 12.9298 7.43123 12.8981 7.64769 12.8391C6.46897 12.6031 5.58104 11.5614 5.58104 10.314C5.58104 10.3023 5.58104 10.2919 5.58138 10.2811C5.92851 10.4741 6.32547 10.5902 6.74811 10.6032C6.05643 10.1417 5.60176 9.35276 5.60176 8.459C5.60176 7.98704 5.72934 7.54487 5.9506 7.16418C7.22093 8.7229 9.11941 9.748 11.2604 9.85572C11.2162 9.667 11.1934 9.47041 11.1934 9.26833C11.1934 7.84627 12.3471 6.69256 13.7697 6.69256C14.5107 6.69256 15.18 7.00578 15.65 7.50651C16.2369 7.39075 16.788 7.17634 17.2858 6.88128C17.0932 7.48254 16.6849 7.98704 16.153 8.30608C16.6741 8.24374 17.1707 8.10554 17.6323 7.90039C17.2875 8.41705 16.8503 8.87086 16.3474 9.23442Z" fill="#DD2864"/> </svg> </a> <a href="https://www.youtube.com/channel/UC5AMiWqFVFxF1q9Ya1FuZ_Q/featured" class="social"> <!-- Youtube icon --> <svg class="" width="23" height="23" viewBox="0 0 23 23" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M9.35156 13.8143L13.0376 11.6913L9.35156 9.56836V13.8143Z" fill="#DD2864"/> <path d="M11.223 0.484375C5.02568 0.484375 0 5.51005 0 11.7074C0 17.9048 5.02568 22.9305 11.223 22.9305C17.4204 22.9305 22.4461 17.9048 22.4461 11.7074C22.4461 5.51005 17.4204 0.484375 11.223 0.484375ZM18.2357 11.7189C18.2357 11.7189 18.2357 13.995 17.947 15.0925C17.7852 15.6933 17.3115 16.1669 16.7108 16.3286C15.6132 16.6175 11.223 16.6175 11.223 16.6175C11.223 16.6175 6.84435 16.6175 5.73534 16.3171C5.13459 16.1555 4.66091 15.6816 4.49908 15.0809C4.21018 13.995 4.21018 11.7074 4.21018 11.7074C4.21018 11.7074 4.21018 9.43151 4.49908 8.33397C4.66074 7.73322 5.14607 7.2479 5.73534 7.08624C6.83288 6.79734 11.223 6.79734 11.223 6.79734C11.223 6.79734 15.6132 6.79734 16.7108 7.09771C17.3115 7.25937 17.7852 7.73322 17.947 8.33397C18.2474 9.43151 18.2357 11.7189 18.2357 11.7189Z" fill="#DD2864"/> </svg> </a> </div> </li> </ul> </li> <li class="menu-item active"> <a href="/blog/" class="nav-link">Blog</a> </li> <li class="menu-item "> <a href="https://developer.okta.com/pricing/" class="nav-link external-link"> Pricing <!-- External link icon --> <svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="http://www.w3.org/2000/svg"> <g fill="#fff" opacity=".3"> <path d="m9.38307.75h-3.3122c-.33988 0-.71428.37444-.71428.71429 0 .33984.3744.71428.71428.71428h1.78572l-3.21507 3.05766c-.11648.11641-.18058.27117-.18058.43586 0 .1647.06406.31942.18051.43572.11644.11655.27116.18069.43585.18069.16463 0 .31942-.06411.4359-.18058l3.05767-3.21506v1.78571c0 .33985.37444.71429.71429.71429s.71428-.37444.71428-.71429v-3.3122c0-.33985-.27652-.61637-.61637-.61637z"/><path d="m7.14289 9.32144h-5.71432v-5.71428h2.14286l1.42857-1.42857h-4.285714c-.29177 0-.714286.42251-.714286.71429v7.14282c0 .3572.357143.7143.714286.7143h7.142894c.35714 0 .71429-.3571.71429-.7143l-.00004-4.28568-1.42854 1.42857z"/> </g> </svg> </a> </li> </ul> <ul class="menu external-links flex-row align-center"> <li class="menu-item"> <a href="https://www.okta.com/" class="nav-link" target="_blank" rel="noopener noreferrer"> Okta.com <!-- External link icon --> <svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="http://www.w3.org/2000/svg"> <g fill="#fff" opacity=".3"> <path d="m9.38307.75h-3.3122c-.33988 0-.71428.37444-.71428.71429 0 .33984.3744.71428.71428.71428h1.78572l-3.21507 3.05766c-.11648.11641-.18058.27117-.18058.43586 0 .1647.06406.31942.18051.43572.11644.11655.27116.18069.43585.18069.16463 0 .31942-.06411.4359-.18058l3.05767-3.21506v1.78571c0 .33985.37444.71429.71429.71429s.71428-.37444.71428-.71429v-3.3122c0-.33985-.27652-.61637-.61637-.61637z"/><path d="m7.14289 9.32144h-5.71432v-5.71428h2.14286l1.42857-1.42857h-4.285714c-.29177 0-.714286.42251-.714286.71429v7.14282c0 .3572.357143.7143.714286.7143h7.142894c.35714 0 .71429-.3571.71429-.7143l-.00004-4.28568-1.42854 1.42857z"/> </g> </svg> </a> </li> <li class="menu-item"> <a href="https://login.okta.com/" class="nav-link" target="_blank" rel="noopener noreferrer"> Admin Console <!-- External link icon --> <svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="http://www.w3.org/2000/svg"> <g fill="#fff" opacity=".3"> <path d="m9.38307.75h-3.3122c-.33988 0-.71428.37444-.71428.71429 0 .33984.3744.71428.71428.71428h1.78572l-3.21507 3.05766c-.11648.11641-.18058.27117-.18058.43586 0 .1647.06406.31942.18051.43572.11644.11655.27116.18069.43585.18069.16463 0 .31942-.06411.4359-.18058l3.05767-3.21506v1.78571c0 .33985.37444.71429.71429.71429s.71428-.37444.71428-.71429v-3.3122c0-.33985-.27652-.61637-.61637-.61637z"/><path d="m7.14289 9.32144h-5.71432v-5.71428h2.14286l1.42857-1.42857h-4.285714c-.29177 0-.714286.42251-.714286.71429v7.14282c0 .3572.357143.7143.714286.7143h7.142894c.35714 0 .71429-.3571.71429-.7143l-.00004-4.28568-1.42854 1.42857z"/> </g> </svg> </a> </li> <li class="menu-item signup-btn"> <a href="https://developer.okta.com/signup/" class="cta flex align-center justify-center"> Sign Up </a> </li> </ul> <ul class="menu show-for-medium"> <li class="menu-item"> <a href="https://developer.okta.com/docs/guides/" class="nav-link" target="_blank" rel="noopener noreferrer">Guides</a> </li> <li class="menu-item"> <a href="https://developer.okta.com/docs/concepts/" class="nav-link" target="_blank" rel="noopener noreferrer">Concept</a> </li> <li class="menu-item"> <a href="https://developer.okta.com/docs/reference/" class="nav-link" target="_blank" rel="noopener noreferrer">Reference</a> </li> <li class="menu-item"> <a href="https://developer.okta.com/code/" class="nav-link" target="_blank" rel="noopener noreferrer">Languages & SDKs</a> </li> </ul> </div> </div> <div class="flex-row space-between align-center full-width show-for-medium"> <div class="mobile-controls flex-row align-center"> <a href="https://developer.okta.com/signup/" class="cta flex align-center justify-center"> Sign Up </a> <div class="hamburger"> <div class="lines"> <div class="lines_part"></div> <div class="lines_part"></div> <div class="lines_part"></div> </div> </div> </div> </div> </div> </nav> <!-- START Promo banner --> <!-- END Promo banner --> <div class="page-content"> <link rel="me" href="https://social.oktadev.dev/@oktadev"> <section class="Blog is-index"> <article class="BlogPost h-entry is-excerpt"> <header class="BlogPost-header"> <!-- post tags --> <!-- Post title --> <h1 class="BlogPost-title p-name"> <a href="/blog/2025/01/28/integrator-office-hours">Announcing Integrator Office Hours</a> </h1> <div class="BlogPost-metadata"> <div> <!-- author details --> <div class="BlogPost-attribution"> <a href="/blog/authors/edunham/"><img src="/assets-jekyll/avatar-edunham-6d4800017cae969b6e9e28afdf7de8a85c8bdaec7e6421dcd91cb4f586d8ede4.jpg" alt="avatar-edunham.jpg" class="BlogPost-avatar"></a> <span class="BlogPost-author "> <a href="/blog/authors/edunham/">E. Dunham</a> </span> </div> <span class="vertical-spacer"></span> <!-- post dates --> <div class="BlogPost-date-published"> <time class="BlogPost-date dt-published" datetime="2025-01-28">January 28, 2025</time> </div> <span class="vertical-spacer md-hide"></span> </div> <div class="BlogPost-extra-byline"> <!-- time to read --> <div class="BlogPost-readtime"> 1 MIN READ </div> <!-- social share --> <span class="vertical-spacer no-excerpt"></span> <div class="BlogPost-social-share no-excerpt"> <a href="https://twitter.com/intent/tweet?text=Blog by @oktadev &url=https://developer.okta.com/blog/" target="_blank" onclick="window.open(this.href, 'twitter-share', 'width=550,height=235');return false;" title="Share on Twitter"><i class="fa fa-twitter"></i></a> <a target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&url=https://developer.okta.com/blog/" onclick="window.open(this.href, 'linkedin-share', 'width=550,height=435');return false;" title="Share on Linkedin"><i class="fa fa-linkedin"></i></a> </div> </div> </div> <div class="BlogPost-canonical-container"> <!-- canonical info --> </div> </header> <div class="BlogPost-content"> <img src="/assets-jekyll/blog/introduction-to-okta-integration-network/building-integrations-f03a529fd4bc019865f3916f2e62194a0c550952faf8aead44adc601e84c53d4.jpg" alt="Announcing Integrator Office Hours" class="BlogPost-cover"><div class="e-content"> <p>Are you working on an integration for the Okta Integration Network(OIN)? Would you like assistance designing, implementing, or submitting your integration? Our Integrator Office Hours program is now open to all builders at all stages of integration development! To attend, simply sign up on Calendly. If you share more details about your integration when you sign up, we’ll make sure to have the right experts at your session! Office hours are currently on Tuesdays at...</p> <p><a class="BlogPost-more" href="/blog/2025/01/28/integrator-office-hours">Read more</a></p> </div></div> <a href="/blog/2025/01/28/integrator-office-hours" class="u-url" aria-hidden="true"></a> </article> <article class="BlogPost h-entry is-excerpt"> <header class="BlogPost-header"> <!-- post tags --> <!-- Post title --> <h1 class="BlogPost-title p-name"> <a href="/blog/2024/12/30/scim-okta-integration-network">How to Submit Your System for Cross-domain Identity Management (SCIM) Integration to the Okta Integration Network</a> </h1> <div class="BlogPost-metadata"> <div> <!-- author details --> <div class="BlogPost-attribution"> <a href="/blog/authors/semona-igama/"><img src="/assets-jekyll/avatar-semona-igama-03eb4c28aca3765f862b574e032d32f6f8186d04ae9f0db75bed9c74f48a9a3f.jpg" alt="avatar-semona-igama.jpeg" class="BlogPost-avatar"></a> <span class="BlogPost-author "> <a href="/blog/authors/semona-igama/">Semona Igama</a> </span> </div> <span class="vertical-spacer"></span> <!-- post dates --> <div class="BlogPost-date-published"> <time class="BlogPost-date dt-published" datetime="2024-12-30">December 30, 2024</time> </div> <span class="vertical-spacer md-hide"></span> </div> <div class="BlogPost-extra-byline"> <!-- time to read --> <div class="BlogPost-readtime"> 2 MIN READ </div> <!-- social share --> <span class="vertical-spacer no-excerpt"></span> <div class="BlogPost-social-share no-excerpt"> <a href="https://twitter.com/intent/tweet?text=Blog by @oktadev &url=https://developer.okta.com/blog/" target="_blank" onclick="window.open(this.href, 'twitter-share', 'width=550,height=235');return false;" title="Share on Twitter"><i class="fa fa-twitter"></i></a> <a target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&url=https://developer.okta.com/blog/" onclick="window.open(this.href, 'linkedin-share', 'width=550,height=435');return false;" title="Share on Linkedin"><i class="fa fa-linkedin"></i></a> </div> </div> </div> <div class="BlogPost-canonical-container"> <!-- canonical info --> </div> </header> <div class="BlogPost-content"> <img src="/assets-jekyll/blog/scim-okta-integration-network/scim-okta-integration-network-04d47c334676ddd0374a02027066dab41a46f2c2d2c45af6ce9fca8cd33c7dd5.jpg" alt="How to Submit Your System for Cross-domain Identity Management (SCIM) Integration to the Okta Integration Network" class="BlogPost-cover"><div class="e-content"> <p>You have an app with SSO capabilities. What else can you do with Okta to transform it into an enterprise-ready powerhouse? Today’s enterprises face critical identity management challenges that directly impact their operations; this includes: Rapid business growth outpacing their current user management capabilities Scattered user accounts creating administrative chaos User management that doesn’t scale with company growth (access free-for-all to resources) Bottlenecks in user provisioning slowing down productivity (i.e., manual provisioning) and more critically,...</p> <p><a class="BlogPost-more" href="/blog/2024/12/30/scim-okta-integration-network">Read more</a></p> </div></div> <a href="/blog/2024/12/30/scim-okta-integration-network" class="u-url" aria-hidden="true"></a> </article> <article class="BlogPost h-entry is-excerpt"> <header class="BlogPost-header"> <!-- post tags --> <!-- Post title --> <h1 class="BlogPost-title p-name"> <a href="/blog/2024/11/06/introduction-to-okta-integration-network">Introduction to the Okta Integration Network</a> </h1> <div class="BlogPost-metadata"> <div> <!-- author details --> <div class="BlogPost-attribution"> <a href="/blog/authors/edunham/"><img src="/assets-jekyll/avatar-edunham-6d4800017cae969b6e9e28afdf7de8a85c8bdaec7e6421dcd91cb4f586d8ede4.jpg" alt="avatar-edunham.jpg" class="BlogPost-avatar"></a> <span class="BlogPost-author "> <a href="/blog/authors/edunham/">E. Dunham</a> </span> </div> <span class="vertical-spacer"></span> <!-- post dates --> <div class="BlogPost-date-published"> <time class="BlogPost-date dt-published" datetime="2024-11-06">November 6, 2024</time> </div> <span class="vertical-spacer md-hide"></span> </div> <div class="BlogPost-extra-byline"> <!-- time to read --> <div class="BlogPost-readtime"> 1 MIN READ </div> <!-- social share --> <span class="vertical-spacer no-excerpt"></span> <div class="BlogPost-social-share no-excerpt"> <a href="https://twitter.com/intent/tweet?text=Blog by @oktadev &url=https://developer.okta.com/blog/" target="_blank" onclick="window.open(this.href, 'twitter-share', 'width=550,height=235');return false;" title="Share on Twitter"><i class="fa fa-twitter"></i></a> <a target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&url=https://developer.okta.com/blog/" onclick="window.open(this.href, 'linkedin-share', 'width=550,height=435');return false;" title="Share on Linkedin"><i class="fa fa-linkedin"></i></a> </div> </div> </div> <div class="BlogPost-canonical-container"> <!-- canonical info --> </div> </header> <div class="BlogPost-content"> <img src="/assets-jekyll/blog/introduction-to-okta-integration-network/building-integrations-f03a529fd4bc019865f3916f2e62194a0c550952faf8aead44adc601e84c53d4.jpg" alt="Introduction to the Okta Integration Network" class="BlogPost-cover"><div class="e-content"> <p>Whether or not you use Okta’s products, you may find yourself working on software whose target audience includes Okta customers. Adding your application to the Okta Integration Network creates a smoother and less error-prone user management experience for these shared customers, and can unlock the potential of additional features as well. For a high-level perspective on the benefits of building to the open standards supported by the OIN, which also lets you easily support any...</p> <p><a class="BlogPost-more" href="/blog/2024/11/06/introduction-to-okta-integration-network">Read more</a></p> </div></div> <a href="/blog/2024/11/06/introduction-to-okta-integration-network" class="u-url" aria-hidden="true"></a> </article> <article class="BlogPost h-entry is-excerpt"> <header class="BlogPost-header"> <!-- post tags --> <!-- Post title --> <h1 class="BlogPost-title p-name"> <a href="/blog/2024/10/23/dpop-oauth-node">How to Build Secure Okta Node.js Integrations with DPoP</a> </h1> <div class="BlogPost-metadata"> <div> <!-- author details --> <div class="BlogPost-attribution"> <a href="/blog/authors/ram-gandhi/"><img src="/assets-jekyll/avatar-ram-gandhi-ebc0690043e6cdea4f5cfa9fc736fa52e06ead9938d7f42e74d67be9d936ba9c.jpg" alt="avatar-ram-gandhi.jpg" class="BlogPost-avatar"></a> <span class="BlogPost-author "> <a href="/blog/authors/ram-gandhi/">Ram Gandhi</a> </span> </div> <span class="vertical-spacer"></span> <!-- post dates --> <div class="BlogPost-date-published"> <time class="BlogPost-date dt-published" datetime="2024-10-23">October 23, 2024</time> </div> <span class="vertical-spacer md-hide"></span> </div> <div class="BlogPost-extra-byline"> <!-- time to read --> <div class="BlogPost-readtime"> 9 MIN READ </div><!-- Sample repo --> <span class="vertical-spacer no-excerpt"></span> <div class="BlogPost-sample-repo no-excerpt"> <a href="https://github.com/oktadev/okta-node-dpop-example" target="_blank" title="Sample code on GitHub"><i class="fa fa-github"></i> CODE</a> </div> <!-- social share --> <span class="vertical-spacer no-excerpt"></span> <div class="BlogPost-social-share no-excerpt"> <a href="https://twitter.com/intent/tweet?text=Blog by @oktadev &url=https://developer.okta.com/blog/" target="_blank" onclick="window.open(this.href, 'twitter-share', 'width=550,height=235');return false;" title="Share on Twitter"><i class="fa fa-twitter"></i></a> <a target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&url=https://developer.okta.com/blog/" onclick="window.open(this.href, 'linkedin-share', 'width=550,height=435');return false;" title="Share on Linkedin"><i class="fa fa-linkedin"></i></a> </div> </div> </div> <div class="BlogPost-canonical-container"> <!-- canonical info --> </div> </header> <div class="BlogPost-content"> <img src="/assets-jekyll/blog/dpop-oauth-node/social-cae6d064536dfd2fb82a54ae62919f21bab34ce222af7f14bd6e5fc6d96d35a7.jpg" alt="How to Build Secure Okta Node.js Integrations with DPoP" class="BlogPost-cover"><div class="e-content"> <p>Integrating with Okta management API endpoints might be a good idea if you are trying to read or manage Okta resources programmatically. This blog demonstrates how to securely set up a node application to interact with Okta management API endpoints using a service app. Okta API management endpoints can be accessed using an access token issued by the Okta org authorization server with the appropriate scopes needed to make an API call. This can be...</p> <p><a class="BlogPost-more" href="/blog/2024/10/23/dpop-oauth-node">Read more</a></p> </div></div> <a href="/blog/2024/10/23/dpop-oauth-node" class="u-url" aria-hidden="true"></a> </article> <article class="BlogPost h-entry is-excerpt"> <header class="BlogPost-header"> <!-- post tags --> <!-- Post title --> <h1 class="BlogPost-title p-name"> <a href="/blog/2024/10/11/terraform-ci-cd">How to Create a Secure CI/CD Pipeline Using Okta Terraform</a> </h1> <div class="BlogPost-metadata"> <div> <!-- author details --> <div class="BlogPost-attribution"> <a href="/blog/authors/nick-connelly/"><img src="/assets-jekyll/avatar-nick-connelly-acbeb0156ae366699cf0690465b71b96e49a42bf50e929adfa4ea54af630f96a.jpg" alt="avatar-nick-connelly.jpg" class="BlogPost-avatar"></a> <span class="BlogPost-author "> <a href="/blog/authors/nick-connelly/">Nick Connelly</a> </span> </div> <span class="vertical-spacer"></span> <!-- post dates --> <div class="BlogPost-date-published"> <time class="BlogPost-date dt-published" datetime="2024-10-11">October 11, 2024</time> </div> <span class="vertical-spacer md-hide"></span> </div> <div class="BlogPost-extra-byline"> <!-- time to read --> <div class="BlogPost-readtime"> 18 MIN READ </div><!-- Sample repo --> <span class="vertical-spacer no-excerpt"></span> <div class="BlogPost-sample-repo no-excerpt"> <a href="https://github.com/oktadev/okta-terraform-devops-template-example" target="_blank" title="Sample code on GitHub"><i class="fa fa-github"></i> CODE</a> </div> <!-- social share --> <span class="vertical-spacer no-excerpt"></span> <div class="BlogPost-social-share no-excerpt"> <a href="https://twitter.com/intent/tweet?text=Blog by @oktadev &url=https://developer.okta.com/blog/" target="_blank" onclick="window.open(this.href, 'twitter-share', 'width=550,height=235');return false;" title="Share on Twitter"><i class="fa fa-twitter"></i></a> <a target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&url=https://developer.okta.com/blog/" onclick="window.open(this.href, 'linkedin-share', 'width=550,height=435');return false;" title="Share on Linkedin"><i class="fa fa-linkedin"></i></a> </div> </div> </div> <div class="BlogPost-canonical-container"> <!-- canonical info --> </div> </header> <div class="BlogPost-content"> <img src="/assets-jekyll/blog/terraform-ci-cd/social-0d973584778d61174ff583bde54aae211dd85d2e3fbedcfc929ffd62cfcac268.jpg" alt="How to Create a Secure CI/CD Pipeline Using Okta Terraform" class="BlogPost-cover"><div class="e-content"> <p>Embarking on a DevOps journey can be exciting and daunting, especially for beginners. The landscape is vast, and the learning curve can feel steep. One of the most common challenges is setting up and managing a robust Continuous Integration/Continuous Deployment (CI/CD) pipeline that ensures seamless integration and delivery of code changes. This guide aims to simplify that process by walking you through setting up a CI/CD pipeline for Okta using Terraform, AWS, and GitHub Actions....</p> <p><a class="BlogPost-more" href="/blog/2024/10/11/terraform-ci-cd">Read more</a></p> </div></div> <a href="/blog/2024/10/11/terraform-ci-cd" class="u-url" aria-hidden="true"></a> </article> <article class="BlogPost h-entry is-excerpt"> <header class="BlogPost-header"> <!-- post tags --> <!-- Post title --> <h1 class="BlogPost-title p-name"> <a href="/blog/2024/09/26/oktane-saas-developers">Propel Your SaaS Apps Into the Future at Oktane</a> </h1> <div class="BlogPost-metadata"> <div> <!-- author details --> <div class="BlogPost-attribution"> <a href="/blog/authors/michael-palermo/"><img src="/assets-jekyll/avatar-mpalermo-d69690e1c6d2caae517295c4c4e77b51fad25fbcb027828023750d37e1d5669c.jpg" alt="avatar-mpalermo.jpeg" class="BlogPost-avatar"></a> <span class="BlogPost-author pad-right"> <a href="/blog/authors/michael-palermo/">Michael Palermo</a> </span> <a href="/blog/authors/jeff-taylor/"><img src="/assets-jekyll/avatar-jeff-taylor-1fbe7e717fff09ab9d30aa0a14f28e81b34618336aed9d5b79d0c308ed93127e.jpg" alt="avatar-jeff-taylor.jpg" class="BlogPost-avatar"></a> <span class="BlogPost-author "> <a href="/blog/authors/jeff-taylor/">Jeff Taylor</a> </span> </div> <span class="vertical-spacer"></span> <!-- post dates --> <div class="BlogPost-date-published"> <time class="BlogPost-date dt-published" datetime="2024-09-26">September 26, 2024</time> </div> <span class="vertical-spacer md-hide"></span> </div> <div class="BlogPost-extra-byline"> <!-- time to read --> <div class="BlogPost-readtime"> 2 MIN READ </div> <!-- social share --> <span class="vertical-spacer no-excerpt"></span> <div class="BlogPost-social-share no-excerpt"> <a href="https://twitter.com/intent/tweet?text=Blog by @oktadev &url=https://developer.okta.com/blog/" target="_blank" onclick="window.open(this.href, 'twitter-share', 'width=550,height=235');return false;" title="Share on Twitter"><i class="fa fa-twitter"></i></a> <a target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&url=https://developer.okta.com/blog/" onclick="window.open(this.href, 'linkedin-share', 'width=550,height=435');return false;" title="Share on Linkedin"><i class="fa fa-linkedin"></i></a> </div> </div> </div> <div class="BlogPost-canonical-container"> <!-- canonical info --> </div> </header> <div class="BlogPost-content"> <img src="/assets-jekyll/blog/oktane-saas-developers/social-b8f14638a4eb039942b4e357bd8edbef7484e7dcc70f11c7b1b017746b81585f.jpg" alt="Propel Your SaaS Apps Into the Future at Oktane" class="BlogPost-cover"><div class="e-content"> <p>We’ve been discussing and reflecting on the Future of Identity over the last couple of months. It’s apparent to us that Identity is rapidly growing in its complexity. The surface area that our customers need to protect is growing, like a sunrise revealing a hidden terrain in the morning twilight. We realize that in a short time, the growing demands of customers will start to influence the roadmaps of SaaS companies and their developers to...</p> <p><a class="BlogPost-more" href="/blog/2024/09/26/oktane-saas-developers">Read more</a></p> </div></div> <a href="/blog/2024/09/26/oktane-saas-developers" class="u-url" aria-hidden="true"></a> </article> <article class="BlogPost h-entry is-excerpt"> <header class="BlogPost-header"> <!-- post tags --> <!-- Post title --> <h1 class="BlogPost-title p-name"> <a href="/blog/2024/09/10/angular-dpop-jwt">Secure OAuth 2.0 Access Tokens with Proofs of Possession</a> </h1> <div class="BlogPost-metadata"> <div> <!-- author details --> <div class="BlogPost-attribution"> <a href="/blog/authors/alisa-duncan/"><img src="/assets-jekyll/avatar-alisa_duncan-b29fa4df50f5c99f536307c6bc0e5cb3434a922bdada7fe4f4b3cf8488299465.jpg" alt="avatar-alisa_duncan.jpeg" class="BlogPost-avatar"></a> <span class="BlogPost-author "> <a href="/blog/authors/alisa-duncan/">Alisa Duncan</a> </span> </div> <span class="vertical-spacer"></span> <!-- post dates --> <div class="BlogPost-date-published"> <time class="BlogPost-date dt-published" datetime="2024-09-10">September 10, 2024</time> </div> <span class="vertical-spacer md-hide"></span> </div> <div class="BlogPost-extra-byline"> <!-- time to read --> <div class="BlogPost-readtime"> 15 MIN READ </div><!-- Sample repo --> <span class="vertical-spacer no-excerpt"></span> <div class="BlogPost-sample-repo no-excerpt"> <a href="https://github.com/oktadev/okta-angular-dpop-example" target="_blank" title="Sample code on GitHub"><i class="fa fa-github"></i> CODE</a> </div> <!-- social share --> <span class="vertical-spacer no-excerpt"></span> <div class="BlogPost-social-share no-excerpt"> <a href="https://twitter.com/intent/tweet?text=Blog by @oktadev &url=https://developer.okta.com/blog/" target="_blank" onclick="window.open(this.href, 'twitter-share', 'width=550,height=235');return false;" title="Share on Twitter"><i class="fa fa-twitter"></i></a> <a target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&url=https://developer.okta.com/blog/" onclick="window.open(this.href, 'linkedin-share', 'width=550,height=435');return false;" title="Share on Linkedin"><i class="fa fa-linkedin"></i></a> </div> </div> </div> <div class="BlogPost-canonical-container"> <!-- canonical info --> </div> </header> <div class="BlogPost-content"> <img src="/assets-jekyll/blog/angular-dpop-jwt/social-10859f7138546839fbfe18b9a889009a0b5efeb1742782c5d7f67111edc43eb5.jpg" alt="Secure OAuth 2.0 Access Tokens with Proofs of Possession" class="BlogPost-cover"><div class="e-content"> <p>In OAuth, a valid access token grants the caller access to resources and the ability to perform actions on the resources. This means the access token is powerful and dangerous if it falls into malicious hands. The traditional bearer token scheme means the token grants anyone who possesses it access. A new OAuth 2.0 extension specification, Demonstrating Proof of Possession (DPoP), defines a standard way that binds the access token to the OAuth client sending...</p> <p><a class="BlogPost-more" href="/blog/2024/09/10/angular-dpop-jwt">Read more</a></p> </div></div> <a href="/blog/2024/09/10/angular-dpop-jwt" class="u-url" aria-hidden="true"></a> </article> <article class="BlogPost h-entry is-excerpt"> <header class="BlogPost-header"> <!-- post tags --> <!-- Post title --> <h1 class="BlogPost-title p-name"> <a href="/blog/2024/09/05/dpop-oauth">Elevate Access Token Security by Demonstrating Proof-of-Possession</a> </h1> <div class="BlogPost-metadata"> <div> <!-- author details --> <div class="BlogPost-attribution"> <a href="/blog/authors/alisa-duncan/"><img src="/assets-jekyll/avatar-alisa_duncan-b29fa4df50f5c99f536307c6bc0e5cb3434a922bdada7fe4f4b3cf8488299465.jpg" alt="avatar-alisa_duncan.jpeg" class="BlogPost-avatar"></a> <span class="BlogPost-author "> <a href="/blog/authors/alisa-duncan/">Alisa Duncan</a> </span> </div> <span class="vertical-spacer"></span> <!-- post dates --> <div class="BlogPost-date-published"> <time class="BlogPost-date dt-published" datetime="2024-09-05">September 5, 2024</time> </div> <span class="vertical-spacer md-hide"></span> </div> <div class="BlogPost-extra-byline"> <!-- time to read --> <div class="BlogPost-readtime"> 8 MIN READ </div> <!-- social share --> <span class="vertical-spacer no-excerpt"></span> <div class="BlogPost-social-share no-excerpt"> <a href="https://twitter.com/intent/tweet?text=Blog by @oktadev &url=https://developer.okta.com/blog/" target="_blank" onclick="window.open(this.href, 'twitter-share', 'width=550,height=235');return false;" title="Share on Twitter"><i class="fa fa-twitter"></i></a> <a target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&url=https://developer.okta.com/blog/" onclick="window.open(this.href, 'linkedin-share', 'width=550,height=435');return false;" title="Share on Linkedin"><i class="fa fa-linkedin"></i></a> </div> </div> </div> <div class="BlogPost-canonical-container"> <!-- canonical info --> </div> </header> <div class="BlogPost-content"> <img src="/assets-jekyll/blog/dpop-oauth/social-e2849d8da9751d56b97960d3dcd97ee8f3ff75e12fca71dec88c29ef76fddd88.jpg" alt="Elevate Access Token Security by Demonstrating Proof-of-Possession" class="BlogPost-cover"><div class="e-content"> <p>We use access tokens to request data and perform actions within our software systems. The client application sends a bearer token to the resource server. The resource server checks the validity of the access token before acting upon the HTTP request. What happens if the requesting party is malicious, steals your token, and makes a fraudulent API call? Would the resource server honor the HTTP request? If you use a bearer token, the answer is...</p> <p><a class="BlogPost-more" href="/blog/2024/09/05/dpop-oauth">Read more</a></p> </div></div> <a href="/blog/2024/09/05/dpop-oauth" class="u-url" aria-hidden="true"></a> </article> <article class="BlogPost h-entry is-excerpt"> <header class="BlogPost-header"> <!-- post tags --> <!-- Post title --> <h1 class="BlogPost-title p-name"> <a href="/blog/2024/08/15/otp-over-sms">Approaches to keep sending OTP over SMS... for now</a> </h1> <div class="BlogPost-metadata"> <div> <!-- author details --> <div class="BlogPost-attribution"> <a href="/blog/authors/maurice-sharp/"><img src="/assets-jekyll/avatar-maurice-sharp-1971ff92a8cd01c7bca98e0e09cd3447cbf85b56ba25ef3f9c5aa61119e9482e.jpg" alt="avatar-maurice-sharp.jpg" class="BlogPost-avatar"></a> <span class="BlogPost-author "> <a href="/blog/authors/maurice-sharp/">Maurice Sharp</a> </span> </div> <span class="vertical-spacer"></span> <!-- post dates --> <div class="BlogPost-date-published"> <time class="BlogPost-date dt-published" datetime="2024-08-15">August 15, 2024</time> </div> <span class="vertical-spacer md-hide"></span> </div> <div class="BlogPost-extra-byline"> <!-- time to read --> <div class="BlogPost-readtime"> 6 MIN READ </div> <!-- social share --> <span class="vertical-spacer no-excerpt"></span> <div class="BlogPost-social-share no-excerpt"> <a href="https://twitter.com/intent/tweet?text=Blog by @oktadev &url=https://developer.okta.com/blog/" target="_blank" onclick="window.open(this.href, 'twitter-share', 'width=550,height=235');return false;" title="Share on Twitter"><i class="fa fa-twitter"></i></a> <a target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&url=https://developer.okta.com/blog/" onclick="window.open(this.href, 'linkedin-share', 'width=550,height=435');return false;" title="Share on Linkedin"><i class="fa fa-linkedin"></i></a> </div> </div> </div> <div class="BlogPost-canonical-container"> <!-- canonical info --> </div> </header> <div class="BlogPost-content"> <img src="/assets-jekyll/blog/telephony/social-2bcb97513beb2173f9a492da22bc1e7f63ba13d82834ba7873376cd52938b7cd.jpg" alt="Approaches to keep sending OTP over SMS... for now" class="BlogPost-cover"><div class="e-content"> <p>SMS has long played an important role as a universally applicable method of verifying a user’s identity via one-time passcodes. And over the last decade, SMS and voice-based Multifactor Authentication has prevented untold attempts to compromise user accounts But it’s time to move on.” Ben King, VP Customer Trust: BYO Telephony and the future of SMS at Okta SMS/Voice is too SIMple The one-time passcode (OTP) you send using SMS or Voice may not go...</p> <p><a class="BlogPost-more" href="/blog/2024/08/15/otp-over-sms">Read more</a></p> </div></div> <a href="/blog/2024/08/15/otp-over-sms" class="u-url" aria-hidden="true"></a> </article> <article class="BlogPost h-entry is-excerpt"> <header class="BlogPost-header"> <!-- post tags --> <!-- Post title --> <h1 class="BlogPost-title p-name"> <a href="/blog/2024/05/07/okta-powershell-module">How to Use Okta's PowerShell Module to Manage Your Okta Org</a> </h1> <div class="BlogPost-metadata"> <div> <!-- author details --> <div class="BlogPost-attribution"> <a href="/blog/authors/louie-campagna/"><img src="/assets-jekyll/avatar-louie-campagna-5e26bd8154bed45fccecf6beda4782202abf32ada7548b984e31adbe56c81c3c.jpg" alt="avatar-louie-campagna.jpeg" class="BlogPost-avatar"></a> <span class="BlogPost-author "> <a href="/blog/authors/louie-campagna/">Louie Campagna</a> </span> </div> <span class="vertical-spacer"></span> <!-- post dates --> <div class="BlogPost-date-published"> <time class="BlogPost-date dt-published" datetime="2024-05-07">May 7, 2024</time> </div> <span class="vertical-spacer md-hide"></span> </div> <div class="BlogPost-extra-byline"> <!-- time to read --> <div class="BlogPost-readtime"> 6 MIN READ </div> <!-- social share --> <span class="vertical-spacer no-excerpt"></span> <div class="BlogPost-social-share no-excerpt"> <a href="https://twitter.com/intent/tweet?text=Blog by @oktadev &url=https://developer.okta.com/blog/" target="_blank" onclick="window.open(this.href, 'twitter-share', 'width=550,height=235');return false;" title="Share on Twitter"><i class="fa fa-twitter"></i></a> <a target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&url=https://developer.okta.com/blog/" onclick="window.open(this.href, 'linkedin-share', 'width=550,height=435');return false;" title="Share on Linkedin"><i class="fa fa-linkedin"></i></a> </div> </div> </div> <div class="BlogPost-canonical-container"> <!-- canonical info --> </div> </header> <div class="BlogPost-content"> <img src="/assets-jekyll/blog/okta-powershell-module/social-a231b32aff8d4e7799638e9bcdb7e4dd18f68a771e9f56904e2370b39794f834.jpg" alt="How to Use Okta's PowerShell Module to Manage Your Okta Org" class="BlogPost-cover"><div class="e-content"> <p>PowerShell is a powerful command-line interface for automating tasks, scripting, and managing systems. Okta offers an official PowerShell module, an extremely powerful tool for administering your Okta org. In this blog post, we’ll explore how to utilize this. You’ll need a PowerShell terminal for your OS and the Okta PowerShell module. Install it through the PS Gallery, Chocolatey Package Manager, or the GitHub repository. Follow the instructions in the GitHub repository’s ReadMe to install the...</p> <p><a class="BlogPost-more" href="/blog/2024/05/07/okta-powershell-module">Read more</a></p> </div></div> <a href="/blog/2024/05/07/okta-powershell-module" class="u-url" aria-hidden="true"></a> </article> <div class="Blog-pagination"> <span class="page-number"> Page: 1 of 75 </span> <a href="/blog/page/2/">Next »</a> </div> </section> </div> <footer class="footer"> <div class="columns row flex-justify"> <div class="column need-support"> <h4 class="column-header">Need Support?</h4> <p> You can reach us directly at developers@okta.com or you can also ask us on the <a href="https://devforum.okta.com/">forum</a>. </p> </div> <div class="column social-links"> <h4 class="column-header">Social</h4> <ul class="footer-links footer-links--social"> <li> <a class="footer-link github" target="_blank" rel="noopener noreferrer" href="http://github.com/oktadev"> <span class="link-text">GitHub</span> </a> </li> <li> <a class="footer-link twitter" target="_blank" rel="noopener noreferrer" href="http://twitter.com/OktaDev"> <span class="link-text">Twitter</span> </a> </li> <li> <a class="footer-link youtube" target="_blank" rel="noopener noreferrer" href="https://www.youtube.com/oktadev"> <span class="link-text">YouTube</span> </a> </li> <li> <a class="footer-link forum" target="_blank" rel="noopener noreferrer" href="https://devforum.okta.com/"> <span class="link-text">Forum</span> </a> </li> <li> <a class="footer-link rss" target="_blank" rel="noopener noreferrer" href="https://developer.okta.com/feed.xml"> <span class="link-text">Blog RSS</span> </a> </li> </ul> </div> <div class="column contact-links"> <h4 class="column-header">Contact & Legal</h4> <ul class="footer-links"> <li><a class="footer-link" href="https://www.okta.com/contact/">Contact our team</a></li> <li><a class="footer-link" href="https://www.okta.com/contact-sales/">Contact sales</a></li> <li><a class="footer-link" href="https://developer.okta.com/terms/">Terms & conditions</a></li> <li><a class="footer-link" href="https://www.okta.com/privacy-policy/">Privacy policy</a></li> </ul> </div> <div class="column info-links"> <h4 class="column-header">More Info</h4> <ul class="footer-links"> <li><a class="footer-link" href="/pricing/">Pricing</a></li> <li><a class="footer-link" target="_blank" rel="noopener noreferrer" href="https://developer.okta.com/okta-integration-network/">Integrate with Okta</a></li> <li><a class="footer-link" href="/docs/change-log/">Change Log</a></li> <li><a class="footer-link" href="/3rd_party_notices/">3rd-party notes</a></li> <li><a class="footer-link" target="_blank" rel="noopener noreferrer" href="https://auth0.com/developers/">Auth0 platform</a></li> </ul> </div> <div class="column external-links"> <div class="external-url"> <a class="anchor-highlight secondary-font small bold new-tab" href="http://www.okta.com/" target="_blank" rel="noopener noreferrer">OKTA.COM</a> <p>Products, case studies, resources</p> </div> <div class="external-url"> <a class="anchor-highlight secondary-font small bold new-tab" href="http://help.okta.com/" target="_blank" rel="noopener noreferrer">HELP CENTER</a> <p>Knowledgebase, roadmaps, and more</p> </div> <div class="external-url"> <a class="anchor-highlight secondary-font small bold new-tab" href="http://trust.okta.com/" target="_blank" rel="noopener noreferrer">TRUST</a> <p>System status, security, compliance</p> </div> </div> <div class="column copyright"><span>Copyright © 2025 Okta.</span></div> </div> </footer> <script type="text/javascript" src="/assets-jekyll/master-d89184dd2780ebbeacd00092fb900176edd5a8879b330c035b13638e869d0db9.js"></script> <script type="text/javascript" src="/assets-jekyll/navigation-0fd747a04adcb4dccb0dec8d3e36022029ed25cb3c38e5235df6b1aec813a83e.js"></script> <!-- Coveo --> <script src="https://www.okta.com/sites/all/modules/okta_coveo_search_developer/js/lib/CoveoJsSearch.Lazy.min.js"></script> <script src="https://www.okta.com/sites/all/modules/okta_coveo_search_developer/js/okta_coveo_search_developer.js"></script> <!-- Fix <details> for IE/Edge --> <script src="//cdn.jsdelivr.net/npm/details-polyfill@1/index.min.js" async></script> <!-- START Post Footer --> <!-- START Google Tag Manager --> <!-- https://support.google.com/tagmanager/answer/6103696?hl=en --> <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-KXMLV58" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- END Google Tag Manager --> <!-- END Post Footer --> </body> </html>