{"id":729,"date":"2023-06-27T12:50:00","date_gmt":"2023-06-27T12:50:00","guid":{"rendered":"https:\/\/fde.cat\/index.php\/2023\/06\/27\/simplifying-oauth-2-0-how-slacks-new-external-authentication-feature-boosts-developer-productivity\/"},"modified":"2023-06-27T12:50:00","modified_gmt":"2023-06-27T12:50:00","slug":"simplifying-oauth-2-0-how-slacks-new-external-authentication-feature-boosts-developer-productivity","status":"publish","type":"post","link":"https:\/\/fde.cat\/index.php\/2023\/06\/27\/simplifying-oauth-2-0-how-slacks-new-external-authentication-feature-boosts-developer-productivity\/","title":{"rendered":"Simplifying OAuth 2.0: How Slack\u2019s New External Authentication Feature Boosts Developer Productivity"},"content":{"rendered":"<p>In our \u201cEngineering Energizers\u201d Q&amp;A series, we examine the professional journeys that have shaped Salesforce Engineering leaders. Say hello to Nupur Goyal, Staff Software Engineer at Slack. Nupur\u2019s core platform team at Slack helps developers increase their productivity and efficiency \u2014 empowering them to create cutting-edge applications that integrate with a myriad online tools in <a href=\"https:\/\/slack.com\/blog\/developers\/next-gen-platform-launch\" target=\"_blank\" rel=\"noopener\">Slack\u2019s Next Generation Platform<\/a>.<\/p>\n<p>Join us as we explore how Nupur and her team tackle engineering challenges to innovate the future of work \u2014 and the future of <a href=\"https:\/\/slack.com\/trials?remote_promo=f4d95f0b&amp;d=7013y000002pzGQAAY&amp;nc=7013y000002q165AAA&amp;utm_source=google&amp;utm_medium=paid_search&amp;utm_campaign=ppc_google_amer_en_brand_selfserve_discount&amp;utm_content=slack-pg-ss-all-us-brand_7013y000002pzGQAAY&amp;utm_term=Slack_Exact_._slack_._e_._c_._611662283461&amp;gad=1&amp;gclid=CjwKCAjwv8qkBhAnEiwAkY-ahuqyWXaL8EGBxeJV7tUGmipX-qmYHl9w1vlTROKqtmSk5dKbwXc9mxoCmw4QAvD_BwE&amp;gclsrc=aw.ds\" target=\"_blank\" rel=\"noopener\">Slack<\/a>.<\/p>\n<p><strong>How would you describe your team\u2019s mission?<\/strong><\/p>\n<p>My team built <a href=\"https:\/\/api.slack.com\/automation\/external-auth\" target=\"_blank\" rel=\"noopener\">External Authentication<\/a>, a new Slack framework that enables developers to efficiently write functionality that intersects with powerful online services \u2014 including spreadsheets, bug tracking tools, and more.<\/p>\n<p>Many of these services support programmatic interaction with their features through APIs, which are authenticated with user tokens.<\/p>\n<p>Typically, developers had to learn the nuances of authentication protocols, such as <a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc6749\">OAuth 2.0<\/a>, to obtain, store, and maintain the lifecycle of these access tokens. This is burdensome for developers as it detracts them from focusing on their core functionality.<\/p>\n<p>In the spirit of making Slack as developer-friendly as possible and bringing in more functionality into Slack, my team built a managed authentication framework which facilitates and handles authentication for developers. Authentication is important to get right because at the core, it provides security, privacy, and access controls, all of which are extremely important to our customers. Intersecting that with the Slack product and the developer experience has been especially interesting.<\/p>\n<p><strong>What challenges do developers face when using OAuth 2.0?<\/strong><\/p>\n<div class=\"wp-block-group is-layout-constrained\">\n<div class=\"wp-block-group is-layout-constrained\">\n<div class=\"wp-block-group is-layout-constrained\">\n<div class=\"wp-block-group is-layout-constrained wp-container-1\">\n<p>Over the years, developers have shared with us the complexities they encounter when using OAuth 2.0. Some of their challenges include:<\/p>\n<p>Setting up their own redirect endpoint to receive access tokens from providers that they want to connect with<\/p>\n<p>Implementing the two-way handshake between their server and the provider<\/p>\n<p>Storing access tokens<\/p>\n<p>Maintaining token lifecycles, refreshing them as they expire<\/p>\n<p>Managing the right level of security, privacy, and access controls<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>How does your team simplify the OAuth 2.0 authentication process for developers?<\/strong><\/p>\n<div class=\"wp-block-group is-layout-constrained wp-container-5\">\n<p>External Authentication simplifies OAuth 2.0 by driving the entire authentication workflow for developers. This includes:<\/p>\n<p>Establishing a redirect endpoint<\/p>\n<p>Obtaining and storing access tokens<\/p>\n<p>Maintaining and refreshing token life cycles<\/p>\n<p>Securely providing tokens to developers as-needed<\/p>\n<\/div>\n<p>External Authentication removes the burden of authentication for developers. As they receive their secure tokens, they can easily connect with external providers \u2014 reducing initial setup time from hours to seconds.<\/p>\n<p><em>Slack\u2019s new External Authentication feature provides managed authentication, performing the OAuth 2.0 exchange instead of applications.<\/em><\/p>\n<p><strong>How does your team approach engineering challenges, such as scope creep?<\/strong><\/p>\n<p>It is a matter of prioritizing. For example, if my team receives a new requirement in the middle of a project, we must determine what we will achieve by solving that requirement. Additionally, we would make it clear to the stakeholders and the program managers that there may be tradeoffs for picking up that requirement. This means we may need to either drop another requirement that we were tasked with or, alternatively, the project timeline could be delayed.<\/p>\n<p>Sometimes we delay scope creep due to higher priorities. For example, we may learn that we need to adjust the architecture only after diving into the coding process. Luckily, these unexpected challenges are anticipated at the start of the project, when we perform cost estimations. So, if an issue arises, we already have the budget in place to tackle it.<\/p>\n<p><em>Nupur explains what keeps her at Salesforce.<\/em><\/p>\n<p><strong>Can you share something surprising about your team?<\/strong><\/p>\n<p>We completed External Authentication \u2014 a highly complex project \u2014 with a pretty small and agile six or seven person team, composed of three backend engineers, one to two frontend engineers, a product manager and a designer. I wore many hats, serving as one of the three backend engineers and also the tech lead of the project, charged with ensuring we satisfied all requirements. Additionally, I wrote code and reviewed others\u2019 code and managed interactions with our stakeholders.<\/p>\n<p>My team was successful because we smartly structured and organized the project from the beginning. Then, as the project progressed, we constantly gathered feedback from stakeholders \u2014 ranging from upper management to other Salesforce teams and platforms that would utilize our framework \u2014 and incorporated that into our development process which helped keep the project running smoothly.<\/p>\n<p><em>Nupur shares what makes Salesforce\u2019s engineering culture unique.<\/em><\/p>\n<p><strong>How has mentorship impacted your time at Slack?<\/strong><\/p>\n<p>Our company provides great opportunities for engineers to receive mentorship in areas they want to grow in. For example, if you are a backend developer and you seek to learn from experienced members across the backend organization, you can join the Backend Mentorship Program. Similarly, there is a frontend program. These programs allow engineers to make connections that help advance their careers.<\/p>\n<p>There are also initiatives such as the Elevate Sponsorship Program, which offers select engineers an exciting opportunity to meet senior engineering leaders and discuss engineering culture and career growth with them.<\/p>\n<p>Personally, I have mentored and guided talented engineers, which has furthered their career growth. In one instance, I mentored someone on another internal team for a while. After getting to know her and her skillset, she mentioned that she was interested in exploring other opportunities within Slack. Consequently, I referred her to the hiring manager for an open role that matched her capabilities and interests. She landed the job and her career has really benefited.<\/p>\n<h3 class=\"wp-block-heading\">Learn more<\/h3>\n<p>Hungry for more innovation stories? <a href=\"https:\/\/engineering.salesforce.com\/video-meet-5-salesforce-engineers-who-are-innovating-the-future\/\" target=\"_blank\" rel=\"noopener\">Read this blog<\/a> to learn how five of the best and brightest minds within Salesforce innovate the future at every turn.<\/p>\n<p><a href=\"https:\/\/www.salesforce.com\/company\/careers\/teams\/tech-and-product\/?d=cta-tms-tp-2\">C<\/a><a href=\"https:\/\/www.salesforce.com\/company\/careers\/teams\/tech-and-product\/?d=cta-tms-tp-2\" target=\"_blank\" rel=\"noopener\">heck out our Technology and Product teams<\/a> to learn how you can get involved.<\/p>\n<p>Stay connected \u2013 join our<a href=\"https:\/\/careers.mail.salesforce.com\/w2?cid=7017y00000CRDS7AAP\"> <\/a><a href=\"https:\/\/careers.mail.salesforce.com\/w2?cid=7017y00000CRDS7AAP\" target=\"_blank\" rel=\"noopener\">Talent Community<\/a>!<\/p>\n<p>The post <a href=\"https:\/\/engineering.salesforce.com\/simplifying-oauth-2-0-how-slacks-new-external-authentication-feature-boosts-developer-productivity\/\">Simplifying OAuth 2.0: How Slack\u2019s New External Authentication Feature Boosts Developer Productivity<\/a> appeared first on <a href=\"https:\/\/engineering.salesforce.com\/\">Salesforce Engineering Blog<\/a>.<\/p>\n<p><a href=\"https:\/\/engineering.salesforce.com\/simplifying-oauth-2-0-how-slacks-new-external-authentication-feature-boosts-developer-productivity\/\" target=\"_blank\" class=\"feedzy-rss-link-icon\" rel=\"noopener\">Read More<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>In our \u201cEngineering Energizers\u201d Q&amp;A series, we examine the professional journeys that have shaped Salesforce Engineering leaders. Say hello to Nupur Goyal, Staff Software Engineer at Slack. Nupur\u2019s core platform team at Slack helps developers increase their productivity and efficiency \u2014 empowering them to create cutting-edge applications that integrate with a myriad online tools in&hellip; <a class=\"more-link\" href=\"https:\/\/fde.cat\/index.php\/2023\/06\/27\/simplifying-oauth-2-0-how-slacks-new-external-authentication-feature-boosts-developer-productivity\/\">Continue reading <span class=\"screen-reader-text\">Simplifying OAuth 2.0: How Slack\u2019s New External Authentication Feature Boosts Developer Productivity<\/span><\/a><\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","footnotes":""},"categories":[7],"tags":[],"class_list":["post-729","post","type-post","status-publish","format-standard","hentry","category-technology","entry"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":793,"url":"https:\/\/fde.cat\/index.php\/2023\/11\/14\/future-driven-dev-empowerment-slack-svp-tackles-new-ai-and-automation-challenges-head-on\/","url_meta":{"origin":729,"position":0},"title":"Future-Driven Dev Empowerment: Slack SVP Tackles New AI and Automation Challenges Head-On","date":"November 14, 2023","format":false,"excerpt":"By Rukmini Reddy and Scott Nyberg In our \u201cEngineering Energizers\u201d Q&A series, we examine the professional journeys that have shaped Salesforce Engineering leaders. Meet Rukmini Reddy, Senior Vice President of Software Engineering for the Slack platform. Her team\u2019s goal is to empower developers, enhance productivity, and push the envelope of\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":738,"url":"https:\/\/fde.cat\/index.php\/2023\/07\/25\/iterating-towards-perfection-designing-slack-huddles-new-video-experience\/","url_meta":{"origin":729,"position":1},"title":"Iterating Towards Perfection: Designing Slack Huddles\u2019 New Video Experience","date":"July 25, 2023","format":false,"excerpt":"By Genevieve Cuevas and Scott Nyberg In our \u201cEngineering Energizers\u201d Q&A series, we examine the professional life experiences that have shaped Salesforce Engineering leaders. Meet Genevieve Cuevas, a Senior Director of Mobile Software Engineering for Slack at Salesforce. In her role, Genevieve leads Slack\u2019s Virtual HQ team, where she innovates\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":762,"url":"https:\/\/fde.cat\/index.php\/2023\/09\/12\/slack-behind-the-scenes-overcoming-key-challenges-to-craft-a-seamless-mobile-app\/","url_meta":{"origin":729,"position":2},"title":"Slack Behind the Scenes: Overcoming Key Challenges to Craft a Seamless Mobile App","date":"September 12, 2023","format":false,"excerpt":"By Tracy Stampfli and Scott Nyberg In our \u201cEngineering Energizers\u201d Q&A series, we examine the professional life experiences that have shaped Salesforce Engineering leaders. Meet Tracy Stampfli, a Principal Software Engineer for Slack at Salesforce. Tracy works behind the scenes on Slack\u2019s mobile infrastructure team \u2014 an elite group of\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":745,"url":"https:\/\/fde.cat\/index.php\/2023\/08\/08\/what-is-slacks-secret-for-enhancing-accessibility-to-empower-people-with-disabilities\/","url_meta":{"origin":729,"position":3},"title":"What is Slack\u2019s Secret for Enhancing Accessibility to Empower People with Disabilities?","date":"August 8, 2023","format":false,"excerpt":"By Sommer Panage and Scott Nyberg. In our \u201cEngineering Energizers\u201d Q&A series, we examine the professional life experiences that have shaped Salesforce Engineering leaders. Meet Sommer Panage, a Senior Manager of Software Engineering for Slack at Salesforce, where she focuses on accessibility initiatives. Sommer and her team maximize the accessibility\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":792,"url":"https:\/\/fde.cat\/index.php\/2023\/08\/08\/what-is-slacks-secret-for-enhancing-accessibility-to-empower-people-with-disabilities-2\/","url_meta":{"origin":729,"position":4},"title":"What is Slack\u2019s Secret for Enhancing Accessibility to Empower People with Disabilities?","date":"August 8, 2023","format":false,"excerpt":"By Sommer Panage and Scott Nyberg. In our \u201cEngineering Energizers\u201d Q&A series, we examine the professional life experiences that have shaped Salesforce Engineering leaders. Meet Sommer Panage, a Senior Manager of Software Engineering for Slack at Salesforce, where she focuses on accessibility initiatives. Sommer and her team maximize the accessibility\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":679,"url":"https:\/\/fde.cat\/index.php\/2023\/02\/14\/3-ways-salesforce-boosts-developer-productivity-on-hyperforce\/","url_meta":{"origin":729,"position":5},"title":"3 Ways Salesforce Boosts Developer Productivity on Hyperforce","date":"February 14, 2023","format":false,"excerpt":"In 2018, Salesforce began development of Hyperforce \u2014 a next-gen infrastructure platform that leverages public cloud to securely and swiftly deliver Salesforce software to customers worldwide. The platform development\u2019s team priorities were focused: build Hyperforce, get it sentient, and provide cloud-native tools that drive internal product developers\u2019 innovations, empowering them\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/posts\/729","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/comments?post=729"}],"version-history":[{"count":0,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/posts\/729\/revisions"}],"wp:attachment":[{"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/media?parent=729"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/categories?post=729"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/tags?post=729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}