{"id":3519,"date":"2017-01-09T01:05:19","date_gmt":"2017-01-09T09:05:19","guid":{"rendered":"http:\/\/www.cloudidentity.com\/blog\/?p=3519"},"modified":"2017-01-09T01:06:31","modified_gmt":"2017-01-09T09:06:31","slug":"one-year-since-modern-authentication-with-azure-active-directory-for-web-applications-came-out","status":"publish","type":"post","link":"https:\/\/www.cloudidentity.com\/blog\/2017\/01\/09\/one-year-since-modern-authentication-with-azure-active-directory-for-web-applications-came-out\/","title":{"rendered":"One year since &ldquo;Modern Authentication with Azure Active Directory for Web Applications&rdquo; came out"},"content":{"rendered":"<p><a href=\"https:\/\/www.cloudidentity.com\/blog\/wp-content\/uploads\/2017\/01\/image.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"image\" src=\"https:\/\/www.cloudidentity.com\/blog\/wp-content\/uploads\/2017\/01\/image_thumb.png\" alt=\"image\" width=\"975\" height=\"474\" border=\"0\" \/><\/a><\/p>\n<p>About one year ago, I was all excited to finally hold in my hands the thing that swallowed most of the weekends and vacation days of 2015: a paper copy of <a href=\"https:\/\/www.amazon.com\/Authentication-Directory-Applications-Developer-Reference\/dp\/0735696942\/ref=as_sl_pc_tf_til?tag=wwwcloudident-20&amp;linkCode=w00&amp;linkId=PPVHCRCDWQ4K4EJO&amp;creativeASIN=0735696942\">my latest book, \u201cModern Authentication with Azure Active Directory for web Applications\u201d<\/a>. And I just realized I never wrote an \u201cannouncement\u201d post, so here it is!<\/p>\n<h2>What is the book about, and why I wrote it<\/h2>\n<p>The TL;DR is that I wanted to fill a gap in the Azure AD content. Most of our docs were either aimed at helping you to quickly accomplish a task, without worrying too much about the general concepts behind it, or bite-size topic focusing on a individual topics. We had nothing meant to help a motivated developer to become an expert in the use of Azure AD, regardless of how much or how little he or she knew about identity already. So I wrote a book about it <img decoding=\"async\" class=\"wlEmoticon wlEmoticon-smile\" src=\"https:\/\/www.cloudidentity.com\/blog\/wp-content\/uploads\/2017\/01\/wlEmoticon-smile.png\" alt=\"Smile\" \/><\/p>\n<p>Things worked out pretty well; lots of people claim that the <a href=\"https:\/\/www.amazon.com\/Authentication-Directory-Applications-Developer-Reference\/dp\/0735696942\/ref=as_sl_pc_tf_til?tag=wwwcloudident-20&amp;linkCode=w00&amp;linkId=PPVHCRCDWQ4K4EJO&amp;creativeASIN=0735696942\">book<\/a> helped them, which is really the best reward an author can hope for. Icing on the cake, my bosses liked it \u2013 to the point that they got a paper copy for each and everyone in our team (that\u2019s several hundreds people), and it is now part of the new hire package (BTW, did you know we are hiring? hit me if you are interested!).<\/p>\n<p>Want more details? Here there\u2019s the introduction, pasted verbatim from the <a href=\"https:\/\/www.amazon.com\/Authentication-Directory-Applications-Developer-Reference\/dp\/0735696942\/ref=as_sl_pc_tf_til?tag=wwwcloudident-20&amp;linkCode=w00&amp;linkId=PPVHCRCDWQ4K4EJO&amp;creativeASIN=0735696942\">book\u2019s<\/a> manuscript.<\/p>\n<h3><strong>Introduction<\/strong><\/h3>\n<p>It\u2019s never a good idea to use the word \u201cmodern\u201d in the title of a book.<br \/>\nGrowing up, one of the centerpieces of my family\u2019s bookshelf was a 15-tomes-strong encyclopedia titled Nuovissima Enciclopedia (Very new encyclopedia), and I always had a hard time reconciling the title with the fact that it was 10 years older than me.<br \/>\nI guarantee that the content in this book will get old faster than those old volumes\u2014cloud and development technologies evolve at a crazy pace\u2014and yet I could not resist referring to the main subject of the book as \u201cmodern authentication.\u201d<br \/>\nThe practices and technologies used to take care of authentication in business solutions have changed radically nearly overnight, by a perfect storm of companies moving their assets to the cloud, software vendors starting to sell their products via subscriptions, the explosive growth of social networks with the nascent awareness of consumers of their own digital identity, ubiquitous APIs offering programmatic access to everything, and the astonishing adoption rate of Internet-connected smartphones.<br \/>\n\u201cModern authentication\u201d is a catch-all term meant to capture how today\u2019s practices address challenges differently from their recent ancestors: JSON instead of XML, REST instead of SOAP, user consent and individual freedom alongside traditional admin-only processes, an emphasis on APIs and delegated access, explicit representation of clients, and so on. And if it is true that those practices will eventually stop appearing to be new\u2014they are already mainstream at this point\u2014the break with traditional approaches is so significant that I feel it\u2019s important to signal it with a strong title, even if your kids make fun of it a few years from now.<br \/>\nAs the landscape evolves, Active Directory evolves with it. When Microsoft itself introduced one of the most important SaaS products on the planet, Office 365, it felt firsthand how cloud-based workloads call for new ways of managing user access and application portfolios. To confront that challenge Microsoft developed Azure Active Directory (Azure AD), a reimagined Active Directory that takes advantage of all the new protocols, artifacts, and practices that I\u2019ve grouped under the modern authentication umbrella. Once it was clear that Azure AD was a Good Thing, it went on to become the main authentication service for all of Microsoft\u2019s cloud services, including Intune, Power BI, and Azure itself. But the real raison d\u2019etre of this book is that Microsoft opened Azure AD to every developer and organization so that it could be used for obtaining tokens to invoke Microsoft APIs and to handle authentication for your own web applications and web APIs.<\/p>\n<p>Modern Authentication with Azure Active Directory for Web Applications is an in-depth exploration of modern authentication protocols and techniques used to implement sign-on for web applications and to protect web API calls. Although the protocols and pattern descriptions are applicable to any platform, my focus is on how Azure AD, the latest version of Active Directory Federation Services (ADFS), and the OpenID Connect and OAuth2 components in ASP.NET implement those approaches to handle authentication in real applications.<br \/>\nThe text is meant to help you achieve expert-level understanding of the protocols and technologies involved in implementing modern authentication for a web app. Substantial space is reserved for architectural pattern descriptions, protocol considerations, and other abstract concerns that are necessary for correctly contextualizing the more hands-on advice that follows.<br \/>\nMost of the practical content in this book is about cloud and hybrid scenarios addressed via Azure AD. At the time of writing, the version of ADFS supporting modern authentication for web apps is still in technical preview; however, on-premises-only scenarios are covered whenever the relevant features are already available in the preview.<\/p>\n<h4>Who should read this book<\/h4>\n<p>I wrote this book to fill a void of expert-level content for modern authentication, Azure AD, and ADFS. Microsoft offers great online quick starts, samples, and reference documentation\u2014check out <a href=\"http:\/\/aka.ms\/aaddev\u2014that\">http:\/\/aka.ms\/aaddev\u2014that<\/a> are perfect for helping you fulfil the most common tasks as easily as possible. That content covers many scenarios and addresses the needs of the vast majority of developers, who can be extremely successful with their apps without ever knowing what actually goes on the wire, or why. I like to think of that level of operation as the automatic mode for handheld and smartphone cameras\u2014their defaults work great for nearly everybody, nearly all the time. But what happens if you want to take a picture of a lunar eclipse or any other challenging subject? That\u2019s when the point-and-click facade is no longer sufficient and knowing about aperture and exposure times becomes important. You can think of this book as a handbook for when you want to switch from automatic to manual settings. Doing so is useful for developers who work on solutions for which authentication requirements depart from the norm and for the devops who run such solutions.<br \/>\nDevelopers who worked with Windows Identity Foundation will find the text useful for transferring their skills to the new platform, and they\u2019ll pick up some new tricks along the way. The coverage of how the OWIN middleware works is deeper than anything I\u2019ve found on the Internet at this time: if you are interested in an in-depth case study of ASP.NET\u2019s Katana libraries, you\u2019ll find one here.<br \/>\nThis book also comes in handy for security experts coming from a classic background and looking to understand modern protocols and approaches to authentication\u2014the principles and protocols I describe can be applied well beyond Active Directory and ASP.NET. Security architects considering Azure AD for their solutions can use this book to understand how Azure AD operates. Protocol experts who want to understand how Azure AD and ADFS use OpenID Connect and OAuth2 will find plenty to mull over as well.<\/p>\n<h4>Assumptions<\/h4>\n<p>This book is for senior professionals well versed in development, distributed architectures, and web-based solutions. You need to be familiar with HTTP trappings and have at least a basic understanding of networking concepts. All sample code is presented in C#, and all walk-throughs are based on Visual Studio. Azure AD and ADFS can be made use of from any programming stack and operating system; however, if you don\u2019t understand C# syntax and basic constructs (LINQ, etc.), it will be difficult for you to apply the coding advice in this book to your platform of choice. For good background, I\u2019d recommend John Sharp\u2019s Microsoft Visual C# Step by Step, Eighth Edition (Microsoft Press, 2015).<br \/>\nAbove all, this book assumes that you are strongly motivated to become an expert in modern authentication techniques and Azure AD development. The text does not take any shortcuts: you should not expect a light read; most chapters require significant focus and time investment.<\/p>\n<h4>This book might not be for you if\u2026<\/h4>\n<p>This book might not be for you if you just want to learn how to use Azure AD or ADFS for common development tasks. You don\u2019t have to buy a book for that: the documentation and the samples available at <a href=\"http:\/\/aka.ms\/aaddev\">http:\/\/aka.ms\/aaddev<\/a> will get you up and running in no time, thanks to crisp step-by-step instructions. If there are tasks you\u2019d like to see covered by the Azure AD docs, please use the feedback tools provided at that address: the Azure AD team is always looking for feedback for improving its documentation.<br \/>\nThis book is also not especially good as a lookup reference. The text covers a lot of ground, including information that isn\u2019t included in the documentation at this time, but the information is unveiled progressively, building on the reader\u2019s growing understanding of the topic. The book is optimized as a long lesson, not for looking things up.<br \/>\nFinally, this book won\u2019t be of much help if you are developing mobile, native, and rich-client applications. I originally intended to cover those types of applications, too, but the size of the book would have nearly doubled, so I had to cut them from this edition.<\/p>\n<h4>Organization of this book<\/h4>\n<p>This book is meant to be read cover to cover. That\u2019s not what most people like to do, I know: bite-size and independent modules is the way to go today. I believe there are media more conducive to that approach, like video courses or the online documentation at <a href=\"http:\/\/aka.ms\/aaddev\">http:\/\/aka.ms\/aaddev<\/a>. I chose to write a book because to achieve my goal\u2014helping you understand modern authentication principles and how to take advantage of them with Azure AD\u2014I cannot feed you only factlets and recipes. I have to present you with a significant amount of information, highlight relationships and implications for you, and then often ask you to tuck that knowledge away for a chapter or two before you actually end up using it. That\u2019s where I believe a book can still deliver value: by giving me the chance to hold your attention for a significant amount of time, I can afford a depth and breadth that I cannot achieve in a blog post. (By the way, did I mention that I do blog a lot as well? See www.cloudidentity.com and www.twitter.com\/vibronet.)<br \/>\nIf this book has a natural fault line in its organization, it lies between the first four chapters and the last six. The first group provides context, and the later chapters dive deeply into the protocols, code, libraries, and features of Active Directory. Here\u2019s a quick description of each chapter\u2019s focus:<br \/>\n\u25a0\u25a0<br \/>\nChapter 1, \u201cYour first Active Directory app,\u201d is a soft introduction to the topic, giving you a brief glimpse of what you can achieve with Azure AD. It mostly provides instructions on how to use Visual Studio tools to create a web app that\u2019s integrated with Azure AD. Instant gratification.<br \/>\n\u25a0\u25a0<br \/>\nChapter 2, \u201cIdentity protocols and application types,\u201d is a detailed history of identity protocols. It introduces terminology, topologies, and relationships between standards and helps you understand how modern authentication<br \/>\ncame to be and why identity is managed the way it is today.<\/p>\n<p>Chapter 3, \u201cIntroducing Azure Active Directory and Active Directory Federation Services,\u201d presents basic concepts, terminology, and a list of developer-relevant features for Azure AD and ADFS. The hands-on chapters (Chapters 6-10) provide detailed descriptions of the features of both services that come into play in the scenarios of interest for the book.<br \/>\n\u25a0\u25a0<br \/>\nChapter 4, \u201cIntroducing the identity developer libraries,\u201d covers basic concepts, terminology, and the features of the Active Directory Authentication Library (ADAL) and ASP.NET OWIN middleware.<br \/>\n\u25a0\u25a0<br \/>\nChapter 5, \u201cGetting started with web sign-on and Active Directory,\u201d provides a walk-through of how to create from scratch a web app that can sign in with Azure AD. Starting with the vanilla MVC templates, you learn about the NuGets packages you need to add, what app provisioning steps you need to follow in the Azure portal, and what code you need to write to perform key authentication tasks.<br \/>\n\u25a0\u25a0<br \/>\nChapter 6, \u201cOpenID Connect and Azure AD web sign-on,\u201d provides a very detailed description of OpenID Connect and related standards, grounded on network traces of the actual traffic generated by the sample app. This is a very practical way of understanding the underlying protocol and why it operates the way it does. The descriptions of the constellation of ancillary specifications for OpenID Connect and OAuth2 will help you to navigate this rather crowded space, even if you are not planning to use Azure AD at the moment.<br \/>\n\u25a0\u25a0<br \/>\nChapter 7, \u201cThe OWIN OpenID Connect middleware,\u201d is a detailed analysis of how the authentication pipeline in ASP.NET works\u2014with an emphasis on the OpenID Connect middleware, its extensibility points, and what scenarios these are meant to address.<br \/>\n\u25a0\u25a0<br \/>\nChapter 8, \u201cAzure Active Directory application model,\u201d is a deep dive into the Azure AD application model: how Azure AD represents apps and handles consent, and how it deals with app provisioning, multitenancy, app roles, groups, app permissions, and the like.<br \/>\n\u25a0\u25a0<br \/>\nChapter 9, \u201cConsuming and exposing a web API protected by Azure Active Directory,\u201d does for web APIs what Chapters 6 and 7 do for web apps\u2014it explains the protocol flows used by web apps for gaining access to a protected API and describes how to use ADAL and the OAuth2 middleware for securely invoking and protecting a web API. This chapter also briefly introduces the Directory Graph API and discusses advanced scenarios such as exposing and securing both the user experience and an API from the same web project<\/p>\n<p>.\u25a0\u25a0<\/p>\n<p>Chapter 10, \u201cActive Directory Federation Services in Windows Server 2016 Technical Preview 3,\u201d discusses the new modern authentication features in ADFS, showing how to adapt web sign-on, web API invocation, and code protection covered in the earlier chapters to on-premises-only scenarios.<br \/>\n\u25a0\u25a0<br \/>\nThe appendix, \u201cFurther reading,\u201d provides you with pointers to online content describing ancillary topics and offerings that are still too new to be fully fleshed out in the book but are interesting and relevant to the subject of modern authentication.<\/p>\n<h2>Free chapters<\/h2>\n<p>As it is tradition for Microsoft Press titles, we put out two sample chapters that can be <a href=\"https:\/\/www.microsoftpressstore.com\/content\/images\/9780735696945\/samplepages\/9780735696945.pdf\">freely downloaded<\/a> or read online.<\/p>\n<p>I chose the chapter on the <a href=\"https:\/\/www.microsoftpressstore.com\/articles\/article.aspx?p=2473127\">Azure AD app model<\/a> and the <a href=\"https:\/\/www.microsoftpressstore.com\/articles\/article.aspx?p=2473126\">deep dive on the OpenId Connect middleware<\/a> \u2013 I thought those were the topics that could benefit the most from a deep, comprehensive coverage and that also happened to be mostly absent from our reference docs at the time.<\/p>\n<h2>Japanese translation<\/h2>\n<p><a href=\"https:\/\/www.cloudidentity.com\/blog\/wp-content\/uploads\/2017\/01\/image-1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"image\" src=\"https:\/\/www.cloudidentity.com\/blog\/wp-content\/uploads\/2017\/01\/image_thumb-1.png\" alt=\"image\" width=\"172\" height=\"222\" border=\"0\" \/><\/a><\/p>\n<p>There\u2019s an excellent Japanese version of the <a href=\"https:\/\/www.amazon.com\/Authentication-Directory-Applications-Developer-Reference\/dp\/0735696942\/ref=as_sl_pc_tf_til?tag=wwwcloudident-20&amp;linkCode=w00&amp;linkId=PPVHCRCDWQ4K4EJO&amp;creativeASIN=0735696942\">book<\/a>, available <a href=\"https:\/\/www.amazon.co.jp\/%E8%84%B1%E3%82%AA%E3%83%B3%E3%83%97%E3%83%AC%E3%83%9F%E3%82%B9-%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E6%99%82%E4%BB%A3%E3%81%AE%E8%AA%8D%E8%A8%BC%E5%9F%BA%E7%9B%A4-Active-Directory-%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%BD%E3%83%95%E3%83%88%E9%96%A2%E9%80%A3%E6%9B%B8-ebook\/dp\/B01IB6Q79W\/ref=sr_1_1?ie=UTF8&amp;qid=1483944950&amp;sr=8-1&amp;keywords=vittorio+bertocci\">here<\/a> \u2013 courtesy of the excellent translation efforts of mr. <a href=\"https:\/\/twitter.com\/junichia\"><s>@<\/s><b>junichia<\/b><\/a> and mr. <a href=\"https:\/\/twitter.com\/phr_eidentity\"><s>@<\/s><b>phr_eidentity<\/b><\/a>. I can\u2019t tell you how happy I was to get my hands on it, and how honored I am that they decided the text was worth their work \u2013 such a proud moment <img decoding=\"async\" class=\"wlEmoticon wlEmoticon-smile\" src=\"https:\/\/www.cloudidentity.com\/blog\/wp-content\/uploads\/2017\/01\/wlEmoticon-smile.png\" alt=\"Smile\" \/><\/p>\n<h2>What changed in a year<\/h2>\n<p>Despite my <a href=\"https:\/\/medium.com\/i-m-h-o\/how-to-make-my-bookshelf-sublimate-abe8599369fb#.3m7fs588h\">boundless love for paper books<\/a>, I have to acknowledge that they have shortcomings: for example, it\u2019s pretty hard to update them as their content slides in obsolescence <img decoding=\"async\" class=\"wlEmoticon wlEmoticon-smile\" src=\"https:\/\/www.cloudidentity.com\/blog\/wp-content\/uploads\/2017\/01\/wlEmoticon-smile.png\" alt=\"Smile\" \/> so, what changed since the book came out of the printers?<\/p>\n<ul>\n<li><a href=\"https:\/\/www.cloudidentity.com\/blog\/2016\/09\/16\/azure-ad-development-lands-on-portal-azure-com\/\">Azure AD showed up in the new portal<\/a>. I knew that it was coming, hence I avoided placing portal screenshots in the text. I do have some textual instructions, but unless you are a screenscraping script you should be able to map the instructions to the new portal UX. If enough people will have a hard time, I will blog an \u201cerrata\u201d to update things accordingly<\/li>\n<li>ADFS shipped! The text was referring to TP3 \u2013 there are some differences in the RTM version, but again, the instructions should still largely work if applied with a\u00a0 grain of salt<\/li>\n<\/ul>\n<h2>Thanks<\/h2>\n<p>I did have some fun writing the <a href=\"https:\/\/www.amazon.com\/Authentication-Directory-Applications-Developer-Reference\/dp\/0735696942\/ref=as_sl_pc_tf_til?tag=wwwcloudident-20&amp;linkCode=w00&amp;linkId=PPVHCRCDWQ4K4EJO&amp;creativeASIN=0735696942\">book<\/a>, and I believe it surfaces in its pages; however it was also SO MUCH work, and a pretty crazy time commitment. I was lucky to have the help of amazing people, which are mostly listed in the acknowledgement section of the book.<br \/>\nI am very happy about how the <a href=\"https:\/\/www.amazon.com\/Authentication-Directory-Applications-Developer-Reference\/dp\/0735696942\/ref=as_sl_pc_tf_til?tag=wwwcloudident-20&amp;linkCode=w00&amp;linkId=PPVHCRCDWQ4K4EJO&amp;creativeASIN=0735696942\">book<\/a> is doing &#8211; it appears to be achieving the goals I had in mind when I wrote it, which is fantastic.<br \/>\nIf you are among the people who already read it \u2013 thanks! Please know that I treasure any thought you might have about it, and I am glad to provide any clarification you need.<br \/>\nIf you didn\u2019t read the <a href=\"https:\/\/www.amazon.com\/Authentication-Directory-Applications-Developer-Reference\/dp\/0735696942\/ref=as_sl_pc_tf_til?tag=wwwcloudident-20&amp;linkCode=w00&amp;linkId=PPVHCRCDWQ4K4EJO&amp;creativeASIN=0735696942\">book<\/a> and you are interested in developing on Azure AD: before spending any money on it, check out <a href=\"https:\/\/aka.ms\/aaddev\">https:\/\/aka.ms\/aaddev<\/a> \u2013 almost certainly, you\u2019ll find what you need readily available there. And if you do end up picking up the <a href=\"https:\/\/www.amazon.com\/Authentication-Directory-Applications-Developer-Reference\/dp\/0735696942\/ref=as_sl_pc_tf_til?tag=wwwcloudident-20&amp;linkCode=w00&amp;linkId=PPVHCRCDWQ4K4EJO&amp;creativeASIN=0735696942\">book<\/a>, please let me now what think about it! <img decoding=\"async\" class=\"wlEmoticon wlEmoticon-smile\" src=\"https:\/\/www.cloudidentity.com\/blog\/wp-content\/uploads\/2017\/01\/wlEmoticon-smile.png\" alt=\"Smile\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>About one year ago, I was all excited to finally hold in my hands the thing that swallowed most of the weekends and vacation days of 2015: a paper copy of my latest book, \u201cModern Authentication with Azure Active Directory for web Applications\u201d. And I just realized I never wrote an \u201cannouncement\u201d post,&#8230;<\/p>\n","protected":false},"author":1,"featured_media":3515,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-3519","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.cloudidentity.com\/blog\/wp-json\/wp\/v2\/posts\/3519","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cloudidentity.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cloudidentity.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cloudidentity.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cloudidentity.com\/blog\/wp-json\/wp\/v2\/comments?post=3519"}],"version-history":[{"count":2,"href":"https:\/\/www.cloudidentity.com\/blog\/wp-json\/wp\/v2\/posts\/3519\/revisions"}],"predecessor-version":[{"id":3522,"href":"https:\/\/www.cloudidentity.com\/blog\/wp-json\/wp\/v2\/posts\/3519\/revisions\/3522"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cloudidentity.com\/blog\/wp-json\/wp\/v2\/media\/3515"}],"wp:attachment":[{"href":"https:\/\/www.cloudidentity.com\/blog\/wp-json\/wp\/v2\/media?parent=3519"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cloudidentity.com\/blog\/wp-json\/wp\/v2\/categories?post=3519"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cloudidentity.com\/blog\/wp-json\/wp\/v2\/tags?post=3519"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}