<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Disqus - Latest Comments for aaronpk</title><link>http://disqus.com/by/aaronpk/</link><description></description><atom:link href="http://disqus.com/aaronpk/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Thu, 03 Apr 2025 13:12:41 -0000</lastBuildDate><item><title>Re: The MCP Authorization Spec Is... a Mess for Enterprise</title><link>https://blog.christianposta.com/the-updated-mcp-oauth-spec-is-a-mess/#comment-6681811254</link><description>&lt;p&gt;I mostly agree with your assessment of the problem, but I have a different idea of how this should integrate with enterprise IdPs. I'd love to chat about this though.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Thu, 03 Apr 2025 13:12:41 -0000</pubDate></item><item><title>Re: Add Authentication to your PHP App in 5 Minutes</title><link>https://developer.okta.com/blog/2018/07/09/five-minute-php-app-auth#comment-5053999179</link><description>&lt;p&gt;You'll need to do two things. First, make sure you request the "profile" and "email" scopes in the request. Then when you get an access token, you can look up the user's profile info at the userinfo endpoint by making a POST request with the access token. Then you'll get back data like this:&lt;/p&gt;&lt;p&gt;&lt;code&gt;{&lt;br&gt;  sub: "00uqi4dbxSUVcAi2X356",&lt;br&gt;  name: "Aaron Parecki",&lt;br&gt;  locale: "en-US",&lt;br&gt;  preferred_username: "***@***.***",&lt;br&gt;  given_name: "Aaron",&lt;br&gt;  family_name: "Parecki",&lt;br&gt;  zoneinfo: "America/Los_Angeles",&lt;br&gt;  updated_at: 1594844338&lt;br&gt;}&lt;/code&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Tue, 01 Sep 2020 12:55:59 -0000</pubDate></item><item><title>Re: What is the OAuth 2.0 Authorization Code Grant Type?</title><link>https://developer.okta.com/blog/2018/04/10/oauth-authorization-code-grant-type#comment-5053953666</link><description>&lt;p&gt;Thanks! We didn't have any sort of organization of the blog posts when this was first posted, but we have tags and author pages now! I made a tag for the posts in this series, but it sounds like you already found the others:&lt;/p&gt;&lt;p&gt;&lt;a href="https://developer.okta.com/blog/tags/what-is-oauth" rel="nofollow noopener" target="_blank" title="https://developer.okta.com/blog/tags/what-is-oauth"&gt;https://developer.okta.com/...&lt;/a&gt;&lt;/p&gt;&lt;p&gt;You can also find my other posts here:&lt;/p&gt;&lt;p&gt;&lt;a href="https://developer.okta.com/blog/authors/aaron-parecki/" rel="nofollow noopener" target="_blank" title="https://developer.okta.com/blog/authors/aaron-parecki/"&gt;https://developer.okta.com/...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Tue, 01 Sep 2020 12:22:30 -0000</pubDate></item><item><title>Re: Add Secure Authentication to your WordPress Site in 15 Minutes</title><link>https://developer.okta.com/blog/2018/10/30/wordpress-authentication-with-okta#comment-5052850548</link><description>&lt;p&gt;Yeah we've made quite a few improvements to the plugin since this article was written! The good news is it should be a lot easier to set up now. We don't have an updated guide, but installing the plugin should give you a settings screen in Wordpress which walks you through the required steps! &lt;a href="https://github.com/oktadeveloper/okta-wordpress-sign-in-widget" rel="nofollow noopener" target="_blank" title="https://github.com/oktadeveloper/okta-wordpress-sign-in-widget"&gt;https://github.com/oktadeve...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Mon, 31 Aug 2020 15:45:50 -0000</pubDate></item><item><title>Re: Use nginx to add Authentication to any Application</title><link>https://developer.okta.com/blog/2018/08/28/nginx-auth-request#comment-5016627748</link><description>&lt;p&gt;Yes, if you need to handle URLs with a query string then you'll have to URL encode that parameter using something like &lt;a href="https://github.com/openresty/set-misc-nginx-module#set_escape_uri" rel="nofollow noopener" target="_blank" title="https://github.com/openresty/set-misc-nginx-module#set_escape_uri"&gt;https://github.com/openrest...&lt;/a&gt;. This isn't an issue for majority of my deployments.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Mon, 03 Aug 2020 14:16:25 -0000</pubDate></item><item><title>Re: Use nginx to add Authentication to any Application</title><link>https://developer.okta.com/blog/2018/08/28/nginx-auth-request#comment-5016620926</link><description>&lt;p&gt;The config file format has changed from what is described in this post, so make sure you're following the instructions in the project's readme!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Mon, 03 Aug 2020 14:10:59 -0000</pubDate></item><item><title>Re: Use PKCE with OAuth 2.0 and Spring Boot for Better Security</title><link>https://developer.okta.com/blog/2020/01/23/pkce-oauth2-spring-boot#comment-4921108476</link><description>&lt;p&gt;Even though you don't see the PKCE option for "web" apps, you can still actually do PKCE with web apps. It's in the UI for SPA apps because you can choose whether to use PKCE or the deprecated implicit flow for SPA apps.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Wed, 20 May 2020 12:45:49 -0000</pubDate></item><item><title>Re: What is the OAuth 2.0 Authorization Code Grant Type?</title><link>https://developer.okta.com/blog/2018/04/10/oauth-authorization-code-grant-type#comment-4889539386</link><description>&lt;p&gt;I should clarify. This problem doesn't exist when the client can use a client secret. It's only a problem for public clients that don't have a secret. In that case, PKCE solves the problem, and the Implicit flow has that problem and can't be solved.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Sat, 25 Apr 2020 11:55:52 -0000</pubDate></item><item><title>Re: What is the OAuth 2.0 Authorization Code Grant Type?</title><link>https://developer.okta.com/blog/2018/04/10/oauth-authorization-code-grant-type#comment-4889400435</link><description>&lt;p&gt;Yes you're right, that exact attack is why PKCE exists! PKCE prevents that by requiring the use of an additional secret that the app generates on each request.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Sat, 25 Apr 2020 09:38:22 -0000</pubDate></item><item><title>Re: Is the OAuth 2.0 Implicit Flow Dead?</title><link>https://developer.okta.com/blog/2019/05/01/is-the-oauth-implicit-flow-dead#comment-4851396206</link><description>&lt;p&gt;The storage problem with JS apps has nothing to do with PKCE. PKCE protects the data sent in the redirect, which is a different attack surface than stored tokens.&lt;/p&gt;&lt;p&gt;Put yourself in the shoes of the authorization server issuing the access token. If you send an access token to the application by sending it in an HTTP redirect, you have no idea whether the application has actually received that access token, or what may have stolen it via the redirect in the process. For example, this browser extension will show you any sites that you log in to that are using the Implicit flow: &lt;a href="https://github.com/oktadeveloper/okta-implicit-flow-detector" rel="nofollow noopener" target="_blank" title="https://github.com/oktadeveloper/okta-implicit-flow-detector"&gt;https://github.com/oktadeve...&lt;/a&gt; It turns out that any extensions you have installed could already be siphoning off access tokens without your knowledge.&lt;/p&gt;&lt;p&gt;By using PKCE, the authorization server issues a one-time code in the redirect, and the application has to confirm receipt of it by making the separate POST request for an access token. If someone were able to steal the code from the redirect, they wouldn't be able to use it to get an access token thanks to the PKCE mechanism.&lt;/p&gt;&lt;p&gt;Now, once the app has the access token, whether it got it from the implicit flow or using PKCE, the problem is now how it can store it in a secure way. This problem exists both with the implicit flow and with PKCE, and you're right that it is mostly an unsolved problem with browsers. But, PKCE solves a different, more important problem, so it is useful.&lt;/p&gt;&lt;p&gt;I explain this more in this video: &lt;a href="https://www.youtube.com/watch?v=5cQNwifDq1U" rel="nofollow noopener" target="_blank" title="https://www.youtube.com/watch?v=5cQNwifDq1U"&gt;https://www.youtube.com/wat...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Sat, 28 Mar 2020 11:59:41 -0000</pubDate></item><item><title>Re: Create and Verify JWTs in PHP with OAuth 2.0</title><link>https://developer.okta.com/blog/2019/02/04/create-and-verify-jwts-in-php#comment-4835314171</link><description>&lt;p&gt;I just ran through the code from scratch and it worked fine. Double check that you've defined a secret in the .env file, and that you've copied the code exactly as it is in this post.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Mon, 16 Mar 2020 13:08:35 -0000</pubDate></item><item><title>Re: Add Authentication to your PHP App in 5 Minutes</title><link>https://developer.okta.com/blog/2018/07/09/five-minute-php-app-auth#comment-4829689346</link><description>&lt;p&gt;Double check that you're starting at localhost and not 127.0.0.1, because while both will run your app, they are considered different domains when the cookie is set so you'll get the state error when you get redirected back to the other. Also make sure your browser isn't blocking cookies.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Wed, 11 Mar 2020 23:55:59 -0000</pubDate></item><item><title>Re: Add Secure Authentication to your WordPress Site in 15 Minutes</title><link>https://developer.okta.com/blog/2018/10/30/wordpress-authentication-with-okta#comment-4812610318</link><description>&lt;p&gt;Yes you’re correct on both counts. It’s generally better to redirect users over to the authorization server so they’re only entering their password in one place. This demo is what you could do if you want to just swap out the Wordpress user management with Okta’s, not necessarily using it for single-sign-on, just changing how login works for the one Wordpress site.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Thu, 27 Feb 2020 10:19:35 -0000</pubDate></item><item><title>Re: Build a Simple REST API in PHP</title><link>https://developer.okta.com/blog/2019/03/08/simple-rest-api-php#comment-4789020137</link><description>&lt;p&gt;I don't know what a .env.app file is, but the .env.example file is just a text file, and it has to be copied to .env once you fill out the values.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Sat, 08 Feb 2020 19:25:00 -0000</pubDate></item><item><title>Re: Build a Simple Laravel App with Authentication</title><link>https://developer.okta.com/blog/2019/09/05/laravel-authentication#comment-4768441167</link><description>&lt;p&gt;It's not scheduled on our calendar yet so I would say you shouldn't wait for us. If you do figure it out, please post any notes as a new comment here so others can find it too!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Thu, 23 Jan 2020 17:18:40 -0000</pubDate></item><item><title>Re: Build a Simple Laravel App with Authentication</title><link>https://developer.okta.com/blog/2019/09/05/laravel-authentication#comment-4768437646</link><description>&lt;p&gt;This blog post is written for Laravel 5. We will hopefully be able to publish an updated tutorial for Laravel 6 in the future.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Thu, 23 Jan 2020 17:15:34 -0000</pubDate></item><item><title>Re: Add Authentication to your PHP App in 5 Minutes</title><link>https://developer.okta.com/blog/2018/07/09/five-minute-php-app-auth#comment-4764036385</link><description>&lt;p&gt;It sounds like a root certificate issue so double check your list of roots is up to date, and make sure the system isn't treating the certificate as untrusted. You should be able to visit the metadata URL in a browser on that machine to verify the root certificate is trusted. If that works then you'll need to make sure PHP is configured to use the system's root cert list too.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Mon, 20 Jan 2020 10:02:34 -0000</pubDate></item><item><title>Re: Add Authentication to your PHP App in 5 Minutes</title><link>https://developer.okta.com/blog/2018/07/09/five-minute-php-app-auth#comment-4763004772</link><description>&lt;p&gt;Glad you found a more specific error! Okta has SSL configured properly, so it's likely that your system doesn't have the expected root certificate. Given that you mentioned this is running PHP 5.6 I'm guessing the entire system is pretty out of date. Try to see if you can update the system's root certificate list or just run system updates in general.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Sun, 19 Jan 2020 10:48:18 -0000</pubDate></item><item><title>Re: Add Authentication to your PHP App in 5 Minutes</title><link>https://developer.okta.com/blog/2018/07/09/five-minute-php-app-auth#comment-4759851477</link><description>&lt;p&gt;PHP 5.6 has been officially at end-of-life for over a year now, so it's really not a good idea to be running that version anymore. &lt;a href="https://www.php.net/supported-versions.php" rel="nofollow noopener" target="_blank" title="https://www.php.net/supported-versions.php"&gt;https://www.php.net/support...&lt;/a&gt;&lt;/p&gt;&lt;p&gt;In any case, it sounds like what's happening is it's failing to fetch the metadata, so $metadata is not an object. Double check that you've got the correct metadata URL in your code. You can visit the URL in your browser and you should see a bunch of JSON data. If that's correct, then check why the curl call to fetch that might be failing.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Thu, 16 Jan 2020 16:20:25 -0000</pubDate></item><item><title>Re: What the Heck is OAuth?</title><link>https://developer.okta.com/blog/2017/06/21/what-the-heck-is-oauth#comment-4759846283</link><description>&lt;p&gt;Access tokens can be revoked at the authorization server, but if your APIs are only doing local token validation then they won't ever know that the token has been revoked. One of our recent blog posts has a demo of this: &lt;a href="https://developer.okta.com/blog/2020/01/15/protecting-a-php-api-with-oauth" rel="nofollow noopener" target="_blank" title="https://developer.okta.com/blog/2020/01/15/protecting-a-php-api-with-oauth"&gt;https://developer.okta.com/...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Thu, 16 Jan 2020 16:16:12 -0000</pubDate></item><item><title>Re: Add Secure Authentication to your WordPress Site in 15 Minutes</title><link>https://developer.okta.com/blog/2018/10/30/wordpress-authentication-with-okta#comment-4748665227</link><description>&lt;p&gt;Our team doesn't have the resources to support a production-ready product, but that said, the plugin should still work in an Okta production environment. Depending on your Okta account you might need to change the authorization server URL and such, but it should still work. If that's not the case, please file an issue on the GitHub repo with more details and we'll see what we can do.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Tue, 07 Jan 2020 14:50:32 -0000</pubDate></item><item><title>Re: Implement the OAuth 2.0 Authorization Code with PKCE Flow</title><link>https://developer.okta.com/blog/2019/08/22/okta-authjs-pkce#comment-4747675037</link><description>&lt;p&gt;oops I mean &lt;code&gt;code_challenge&lt;/code&gt; and &lt;code&gt;code_verifier&lt;/code&gt;! Maybe they should have called them &lt;code&gt;pkce_*&lt;/code&gt; instead tho cause I keep mistyping that!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Mon, 06 Jan 2020 18:52:06 -0000</pubDate></item><item><title>Re: Implement the OAuth 2.0 Authorization Code with PKCE Flow</title><link>https://developer.okta.com/blog/2019/08/22/okta-authjs-pkce#comment-4711156069</link><description>&lt;p&gt;I don't know if the libraries support it, but the server supports it directly anyway.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Tue, 03 Dec 2019 18:27:14 -0000</pubDate></item><item><title>Re: Implement the OAuth 2.0 Authorization Code with PKCE Flow</title><link>https://developer.okta.com/blog/2019/08/22/okta-authjs-pkce#comment-4711109679</link><description>&lt;p&gt;You &lt;i&gt;can&lt;/i&gt; do PKCE with a regular web app too in Okta, it just doesn't show up as an option to require it in the admin UI. Try starting an OAuth flow with a pkce_challenge in the authorization request, and you'll see that the pkce_verifier parameter is needed on the token request.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Tue, 03 Dec 2019 17:37:44 -0000</pubDate></item><item><title>Re: Implement the OAuth 2.0 Authorization Code with PKCE Flow</title><link>https://developer.okta.com/blog/2019/08/22/okta-authjs-pkce#comment-4681074169</link><description>&lt;p&gt;Yes! Here's a post that describes how to do it in plain Javascript, no libraries required. &lt;a href="https://developer.okta.com/blog/2019/05/01/is-the-oauth-implicit-flow-dead" rel="nofollow noopener" target="_blank" title="https://developer.okta.com/blog/2019/05/01/is-the-oauth-implicit-flow-dead"&gt;https://developer.okta.com/...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aaronpk</dc:creator><pubDate>Thu, 07 Nov 2019 12:02:13 -0000</pubDate></item></channel></rss>