[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"sanity-Pu9VjxFfmwqxvZGEwMipUvImCXhIFJtwICfPFkjdLuk":3},{"data":4,"sourceMap":-1},{"info":5,"latest":13,"pinned":242},{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"descriptionText":10,"slug":11,"title":12},"2023-05-23T16:43:21Z","wp-tagcat-authorization","9HpbCsT2tq0xwozQfkc4ih","blogTag",null,{"current":12},"authorization",[14,57,104,141,171,210],{"_id":15,"author":16,"commentCount":27,"comments":28,"excerpt":29,"featureTag":10,"image":30,"publishedAt":34,"slug":35,"sponsored":10,"tags":38,"title":56},"9ca28259-0129-4b80-81a3-bca2d12dab0c",[17],{"_id":18,"avatar":19,"name":24,"role":10,"slug":25},"wp-author-cap-19861",{"_type":20,"asset":21},"image",{"_ref":22,"_type":23},"image-74ae88d47c8e7027aa12bdc96461f800ccf7828a-350x350-jpg","reference","Dan Moore",{"current":26},"dan-moore",2,true,"Learn how to protect MCP servers from unauthorized access and how authentication of MCP clients to MCP servers works.",{"_type":20,"asset":31,"attribution":33},{"_ref":32,"_type":23},"image-d58aa70297f6b0073c30d4cc86d239114b86a423-12000x6300-jpg","Alexandra Francis","2026-01-21T10:00:00.000-05:00",{"_type":36,"current":37},"slug","is-that-allowed-authentication-and-authorization-in-model-context-protocol",[39,41,48,52],{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":40,"title":12},{"current":12},{"_createdAt":6,"_id":42,"_rev":43,"_type":9,"_updatedAt":44,"slug":45,"title":47},"wp-tagcat-ai","fpDTFQqIDjNJIbHDKPBGpV","2025-01-30T16:19:01Z",{"current":46},"ai","AI",{"_createdAt":6,"_id":49,"_rev":8,"_type":9,"_updatedAt":6,"slug":50,"title":51},"wp-tagcat-se-tech",{"current":51},"se-tech",{"_createdAt":6,"_id":53,"_rev":8,"_type":9,"_updatedAt":6,"slug":54,"title":55},"wp-tagcat-se-stackoverflow",{"current":55},"se-stackoverflow","Is that allowed? Authentication and authorization in Model Context Protocol",{"_id":58,"author":59,"commentCount":69,"comments":28,"excerpt":70,"featureTag":10,"image":71,"publishedAt":74,"slug":75,"sponsored":10,"tags":77,"title":103},"wp-post-21695",[60],{"_id":61,"avatar":62,"name":65,"role":66,"slug":67},"wp-author-295",{"_type":20,"asset":63},{"_ref":64,"_type":23},"image-d670f8093b43e483a52ba692d929578633f70eb5-1024x1024-jpg","Eira May","B2B Editor",{"current":68},"emay",0,"Sam Scott, cofounder and CTO of Oso, joins the home team to talk about what makes authorization a challenge, the difference between authentication and authorization, and what zombies taught him about web development.",{"_type":20,"asset":72},{"_ref":73,"_type":23},"image-472725c034235a56301dc8caf0ed41b3d298c57a-1200x630-png","2023-02-21T05:40:00.000Z",{"current":76},"authorization-on-rails-ep-540",[78,82,84,89,93,98],{"_createdAt":6,"_id":79,"_rev":8,"_type":9,"_updatedAt":6,"slug":80,"title":81},"wp-tagcat-authentication",{"current":81},"authentication",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":83,"title":12},{"current":12},{"_createdAt":6,"_id":85,"_rev":8,"_type":9,"_updatedAt":6,"slug":86,"title":88},"wp-tagcat-oauth2",{"current":87},"oauth2","OAuth2",{"_createdAt":6,"_id":90,"_rev":8,"_type":9,"_updatedAt":6,"slug":91,"title":92},"wp-tagcat-oso",{"current":92},"oso",{"_createdAt":6,"_id":94,"_rev":8,"_type":9,"_updatedAt":6,"slug":95,"title":97},"wp-tagcat-podcast",{"current":96},"podcast","The Stack Overflow Podcast",{"_createdAt":6,"_id":99,"_rev":8,"_type":9,"_updatedAt":6,"slug":100,"title":102},"wp-tagcat-the-stack-overflow-podcast",{"current":101},"the-stack-overflow-podcast","the stack overflow podcast","Authorization on Rails (Ep. 540)",{"_id":105,"author":106,"commentCount":111,"comments":28,"excerpt":112,"featureTag":10,"image":113,"publishedAt":116,"slug":117,"sponsored":10,"tags":119,"title":140},"wp-post-19921",[107],{"_id":18,"avatar":108,"name":24,"role":10,"slug":110},{"_type":20,"asset":109},{"_ref":22,"_type":23},{"current":26},12,"OAuth2 is one of the most popular specifications for API authentication today, though wrapping your head around it can be a challenge. ",{"_type":20,"asset":114},{"_ref":115,"_type":23},"image-a1349e4f6b8193bcbc7034de176bd4cae9c4f370-2400x1260-jpg","2022-12-22T14:00:00.000Z",{"current":118},"the-complete-guide-to-protecting-your-apis-with-oauth2",[120,122,124,129,131,136],{"_createdAt":6,"_id":79,"_rev":8,"_type":9,"_updatedAt":6,"slug":121,"title":81},{"current":81},{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":123,"title":12},{"current":12},{"_createdAt":6,"_id":125,"_rev":8,"_type":9,"_updatedAt":6,"slug":126,"title":128},"wp-tagcat-code-for-a-living",{"current":127},"code-for-a-living","Code for a Living",{"_createdAt":6,"_id":85,"_rev":8,"_type":9,"_updatedAt":6,"slug":130,"title":88},{"current":87},{"_createdAt":6,"_id":132,"_rev":8,"_type":9,"_updatedAt":6,"slug":133,"title":135},"wp-tagcat-rest-api",{"current":134},"rest-api","rest api",{"_createdAt":6,"_id":137,"_rev":8,"_type":9,"_updatedAt":6,"slug":138,"title":139},"wp-tagcat-security",{"current":139},"security","The complete guide to protecting your APIs with OAuth2 (part 1)",{"_id":142,"author":143,"commentCount":148,"comments":28,"excerpt":149,"featureTag":10,"image":150,"publishedAt":153,"slug":154,"sponsored":10,"tags":156,"title":170},"wp-post-19945",[144],{"_id":18,"avatar":145,"name":24,"role":10,"slug":147},{"_type":20,"asset":146},{"_ref":22,"_type":23},{"current":26},3,"",{"_type":20,"asset":151},{"_ref":152,"_type":23},"image-223a23106216b957281b27f58063f4df5d16a780-2400x1260-jpg","2022-04-14T14:00:00.000Z",{"current":155},"the-authorization-code-grant-in-excruciating-detail",[157,162,164,166,168],{"_createdAt":6,"_id":158,"_rev":8,"_type":9,"_updatedAt":6,"slug":159,"title":161},"wp-tagcat-api",{"current":160},"api","API",{"_createdAt":6,"_id":79,"_rev":8,"_type":9,"_updatedAt":6,"slug":163,"title":81},{"current":81},{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":165,"title":12},{"current":12},{"_createdAt":6,"_id":125,"_rev":8,"_type":9,"_updatedAt":6,"slug":167,"title":128},{"current":127},{"_createdAt":6,"_id":85,"_rev":8,"_type":9,"_updatedAt":6,"slug":169,"title":88},{"current":87},"The Authorization Code grant (in excruciating detail) Part 2 of 2",{"_id":172,"author":173,"commentCount":190,"comments":28,"excerpt":191,"featureTag":10,"image":192,"publishedAt":195,"slug":196,"sponsored":10,"tags":198,"title":209},"wp-post-18885",[174,182],{"_id":175,"avatar":176,"name":179,"role":10,"slug":180},"wp-author-cap-18888",{"_type":20,"asset":177},{"_ref":178,"_type":23},"image-307de27391b1ad4ed8dbfc486af1264fa71234a3-40x40-jpg","Sam Scott",{"current":181},"sam-scott",{"_id":183,"avatar":184,"name":187,"role":10,"slug":188},"wp-author-cap-18890",{"_type":20,"asset":185},{"_ref":186,"_type":23},"image-6c2d29e8136405cb7d8a4a2bf6e8c4babc481c5b-40x40-jpg","Graham Neray",{"current":189},"graham-neray",20,"If you have a REST API accessible on the internet, you're going to need to secure it. Here's the best practices on how to do that. ",{"_type":20,"asset":193},{"_ref":194,"_type":23},"image-a559131b0f87f7dd3756059be29364f15eeefde2-2400x1260-jpg","2021-10-06T14:52:18.000Z",{"current":197},"best-practices-for-authentication-and-authorization-for-rest-apis",[199,201,203,205,207],{"_createdAt":6,"_id":158,"_rev":8,"_type":9,"_updatedAt":6,"slug":200,"title":161},{"current":160},{"_createdAt":6,"_id":79,"_rev":8,"_type":9,"_updatedAt":6,"slug":202,"title":81},{"current":81},{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":204,"title":12},{"current":12},{"_createdAt":6,"_id":125,"_rev":8,"_type":9,"_updatedAt":6,"slug":206,"title":128},{"current":127},{"_createdAt":6,"_id":132,"_rev":8,"_type":9,"_updatedAt":6,"slug":208,"title":135},{"current":134},"Best practices for REST API security: Authentication and authorization",{"_id":211,"author":212,"commentCount":69,"comments":28,"excerpt":221,"featureTag":10,"image":222,"publishedAt":225,"slug":226,"sponsored":10,"tags":228,"title":241},"wp-post-18745",[213],{"_id":214,"avatar":215,"name":218,"role":10,"slug":219},"wp-author-213",{"_type":20,"asset":216},{"_ref":217,"_type":23},"image-e81c84dcaeb58be1002795a6544b595bd6fc8071-1024x1024-jpg","Ben Popper",{"current":220},"benpopper","What if it was as easy to add authorization logic to your app as it was to add user authentication? ",{"_type":20,"asset":223},{"_ref":224,"_type":23},"image-6f6591e18674cee2e570564767f3f8ca14c19158-3000x1575-png","2021-09-08T04:40:00.000Z",{"current":227},"podcast-373-authorization-is-complex-oso-is-a-library-designed-to-help-you-structure-it",[229,233,235,237,239],{"_createdAt":6,"_id":230,"_rev":8,"_type":9,"_updatedAt":6,"slug":231,"title":232},"wp-tagcat-auth",{"current":232},"auth",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":234,"title":12},{"current":12},{"_createdAt":6,"_id":90,"_rev":8,"_type":9,"_updatedAt":6,"slug":236,"title":92},{"current":92},{"_createdAt":6,"_id":94,"_rev":8,"_type":9,"_updatedAt":6,"slug":238,"title":97},{"current":96},{"_createdAt":6,"_id":99,"_rev":8,"_type":9,"_updatedAt":6,"slug":240,"title":102},{"current":101},"Podcast 373: Authorization is complex. Oso is a library designed to help you structure it.",[]]