Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

OAuth 2.0 and OpenID Connect are industry standard protocols for authenticating users and authorizing third-party applications to access Web APIs on behalf of a resource owner approving that access or by allowing those third-party applications to access those APIs directly.

In OAuth 2.0, the entities involved in this exchange include the following:

  • Resource Owner – This is the user who owns the resource or data, such as their profile information, that is being requested by the application. 

  • Client Application – This is the application that is requesting the user's data. To call EmpowerID APIs, this application must be registered in EmpowerID.

  • Authorization Server – This is the identity store that knows about the resource owner and can verify their identity and issue tokens to authorize access to the requested resources.

  • Access Token – This is the key issued by the Authorization server to allow the client application to access requested resources from the resource server.

  • Resource Server – This is the API endpoint or server where the user's resources live.

A basic representation of these entities in an OAuth 2.0 flow is shown below:

Image Modified

...

styleheight: 60px;
classrow

...

Macrosuite divider macro
dividerWidth80
dividerTypetext
emoji{"id":"smile","name":"Smiling Face with Open Mouth and Smiling Eyes","short_names":["smile"],"colons":":smile:","emoticons":["C:","c:",":D",":-D"],"unified":"1f604","skin":null,"native":"😄"}
isEditingIconOrEmojifalse
textColor#000000
dividerWeight3
labelPositionmiddle
textAlignmentcenter
iconColor#3085c9ff
iconSize30
fontSizemedium
textGet Started
emojiEnabledfalse
dividerIconfont-awesome/FlagCheckered
dividerColor#DFE1E6
Easy html macro
theme{"label":"solarized_dark","value":"solarized_dark"}
contentByMode{"html":"<!doctype html>\r\n<meta http-equiv=\"Content-Security-Policy\" content=\"default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; object-src 'self' blob:; style-src 'self'; frame-src 'self'\">\r\n<link href=\"https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css\" rel=\"stylesheet\" integrity=\"sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC\" crossorigin=\"anonymous\">\r\n<link href=\"https://cdn.jsdelivr.net/npm/bootstrap-icons@1.5.0/font/bootstrap-icons.css\" rel=\"stylesheet\" type=\"text/css\" />\r\n<script src=\"https://kit.fontawesome.com/59759af5bf.js\" crossorigin=\"anonymous\"></script>\r\n<link href=\"https://fonts.googleapis.com/css?family=Lato:300,400,700,300italic,400italic,700italic\" rel=\"stylesheet\" type=\"text/css\" />\r\n<link href=\"https://docs.empowerid.com/

...

new_docs.css\" rel=\"stylesheet\">\r\n<link href=\"https://docs.empowerid.com

...

.confluence-embedded-image {
    pointer-events: none !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

...

idadditional-content
classhas-background-alternating-grey has-padding-top-extra-large has-padding-bottom-extra-large
Div
stylefont-size:2.5rem; margin-left: 80px; color: #171717 !important; margin-bottom: 60px;
idgettingStartedText

Get started with OAuth 2.0 Flows

...

classrow

...

classcolumns is-multiline

...

classcolumn is-6-tablet is-4-desktop

...

classadditional-card box is-block is-full-height has-padding-large
Div
classhas-line-height-reset has-margin-left-none has-margin-bottom-none has-margin-top-extra-small

OpenID Connect

OAuth 2.0 Authorization Code Grant

OAuth 2.0 JWT (JSON Web Token) Bearer Grant

OAuth 2.0 Client Credential Grant

...

classcolumn is-6-tablet is-4-desktop

...

classadditional-card box is-block is-full-height has-padding-large
Div
classhas-line-height-reset has-margin-left-none has-margin-bottom-none has-margin-top-extra-small

OAuth Client Certificate Grant

OAuth 2.0 Refresh Token Grant

OAuth 2.0 Implicit Grant

OAuth 2.0 RP-Initiated Logout

...

classcolumn is-6-tablet is-4-desktop

...

classadditional-card box is-block is-full-height has-padding-large

...

stylemargin-right: 10px;
classhas-line-height-reset has-margin-left-none has-margin-bottom-none has-margin-top-extra-small

UserInfo Endpoint

Token Introspection Endpoint

Token Revoke Endpoint

...

/assets/css/aguidehp22.css\" rel=\"stylesheet\">\r\n\r\n<meta charset=\"utf-8\" />\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no, overflow-y=scroll\" />\r\n<style>\r\nbody{\r\n overflow-y: hidden;\r\n}\r\n a{color: #212529;\r\n text-decoration:none;\r\n }\r\n a:hover{\r\n color: #212529;\r\n }\r\n header.masthead{\r\n margin-top:20px;\r\n }\r\n \r\n #mainNav{\r\n margin-top: 20px;\r\n }\r\n .card {\r\n border-left: 4px solid #3085c9;\r\n height: 120%;\r\n }\r\n .card:hover{\r\n border-left: 4px solid #00b2ca;\r\n box-shadow: 0 0 10px 0 rgba(100, 100, 100, 0.26);\r\n }\r\n .card-title{\r\n padding-top: 20px;\r\n }\r\n .row-gap{\r\n padding: 1rem;\r\n }\r\n .first-row{\r\n padding-top: 1rem;\r\n }\r\n }\r\n</style>\r\n<body id=\"page-top\">\r\n<div class=\"container-fluid\">\r\n <!-- Row 1 -->\r\n <div class=\"row d-flex align-items-stretch first-row\">\r\n <div class=\"col-sm-12 col-md-6 col-lg-3 row-gap\">\r\n <a href=\"https://dotnetworkflow.jira.com/l/cp/VWsRYrNg\">\r\n <div class=\"card d-flex align-items-center\">\r\n <div class=\"card-body text-center\">\r\n <h4 class=\"card-title\">OpenID Connect</h4>\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n <div class=\"col-sm-12 col-md-6 col-lg-3 row-gap\">\r\n <a href=\"https://dotnetworkflow.jira.com/l/cp/SpSm8EDx\">\r\n <div class=\"card d-flex align-items-center\">\r\n <div class=\"card-body text-center\">\r\n <h4 class=\"card-title\">OAuth 2.0 Authorization Code Grant</h4>\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n <div class=\"col-sm-12 col-md-6 col-lg-3 row-gap\">\r\n <a href=\"https://dotnetworkflow.jira.com/l/cp/SYD0hsZb\">\r\n <div class=\"card d-flex align-items-center\">\r\n <div class=\"card-body text-center\">\r\n <h4 class=\"card-title\">OAuth 2.0 Resource Owner Password Grant</h4>\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n <div class=\"col-sm-12 col-md-6 col-lg-3 row-gap\">\r\n <a href=\"https://dotnetworkflow.jira.com/l/cp/eiK6AAuP\">\r\n <div class=\"card d-flex align-items-center\">\r\n <div class=\"card-body text-center\">\r\n <h4 class=\"card-title\">OAuth 2.0 JWT (JSON Web Token) Bearer Grant</h4>\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n </div>\r\n \r\n <!--Row 2 -->\r\n <div class=\"row d-flex align-items-stretch\">\r\n <div class=\"col-sm-12 col-md-6 col-lg-3 row-gap\">\r\n <a href=\"https://dotnetworkflow.jira.com/l/cp/fjm12f1Q\">\r\n <div class=\"card d-flex align-items-center\">\r\n <div class=\"card-body text-center\">\r\n <h4 class=\"card-title\">OAuth 2.0 Client Credential Grant</h4>\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n <div class=\"col-sm-12 col-md-6 col-lg-3 row-gap\">\r\n <a href=\"https://dotnetworkflow.jira.com/l/cp/dq0Q6412\">\r\n <div class=\"card d-flex align-items-center\">\r\n <div class=\"card-body text-center\">\r\n <h4 class=\"card-title\">OAuth 2.0 Client Certificate Grant</h4>\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n <div class=\"col-sm-12 col-md-6 col-lg-3 row-gap\">\r\n <a href=\"https://dotnetworkflow.jira.com/l/cp/UtkmNczk\">\r\n <div class=\"card d-flex align-items-center\">\r\n <div class=\"card-body text-center\">\r\n <h4 class=\"card-title\">OAuth 2.0 Refresh Token Grant</h4>\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n <div class=\"col-sm-12 col-md-6 col-lg-3 row-gap\">\r\n <a href=\"https://dotnetworkflow.jira.com/l/cp/a5AEhLLf\">\r\n <div class=\"card d-flex align-items-center\">\r\n <div class=\"card-body text-center\">\r\n <h4 class=\"card-title\">OAuth 2.0 Implicit Grant</h4>\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n </div>\r\n \r\n <!--Row 3 -->\r\n <div class=\"row d-flex align-items-stretch\">\r\n <div class=\"col-sm-12 col-md-6 col-lg-3 row-gap\">\r\n <a href=\"https://dotnetworkflow.jira.com/l/cp/WfzpYmqu\">\r\n <div class=\"card d-flex align-items-center\">\r\n <div class=\"card-body text-center\">\r\n <h4 class=\"card-title\">OAuth 2.0 RP-Initiated Logout</h4>\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n <div class=\"col-sm-12 col-md-6 col-lg-3 row-gap\">\r\n <a href=\"https://dotnetworkflow.jira.com/l/cp/HhcEuscy\">\r\n <div class=\"card d-flex align-items-center\">\r\n <div class=\"card-body text-center\">\r\n <h4 class=\"card-title\">UserInfo Endpoint</h4>\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n <div class=\"col-sm-12 col-md-6 col-lg-3 row-gap\">\r\n <a href=\"https://dotnetworkflow.jira.com/l/cp/mFfKMHGn\">\r\n <div class=\"card d-flex align-items-center\">\r\n <div class=\"card-body text-center\">\r\n <h4 class=\"card-title\">Token Introspection Endpoint</h4>\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n <div class=\"col-sm-12 col-md-6 col-lg-3 row-gap\">\r\n <a href=\"https://dotnetworkflow.jira.com/l/cp/G9mhEN9D\">\r\n <div class=\"card d-flex align-items-center\">\r\n <div class=\"card-body text-center\">\r\n <h4 class=\"card-title\">Token Revoke Endpoint</h4>\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n </div>\r\n \r\n <!--Row 4 -->\r\n <div class=\"row d-flex align-items-stretch\">\r\n <div class=\"col-sm-12 col-md-6 col-lg-3 row-gap\">\r\n <a href=\"https://dotnetworkflow.jira.com/l/cp/QYeEiDPX\">\r\n <div class=\"card d-flex align-items-center\">\r\n <div class=\"card-body text-center\">\r\n <h4 class=\"card-title\">Token Exchange Endpoint</h4>\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n \r\n \r\n </div>\r\n \r\n \r\n</div>\r\n\r\n\r\n </section>\r\n \r\n \r\n <!-- Footer-->\r\n <footer class=\"footer py-4\">\r\n <div class=\"container\">\r\n <!--<div class=\"row align-items-center\">\r\n <div class=\"col-lg-4 \">Copyright &copy; EmpowerID 2023</div>\r\n <div class=\"col-lg-4 my-3 my-lg-0\">\r\n <a class=\"btn btn-dark btn-social mx-2\" href=\"https://www.twitter.com/empowerid\" target=\"_self\" rel=\"noopener noreferrer\"><i class=\"fab fa-twitter\"></i></a>\r\n <a class=\"btn btn-dark btn-social mx-2\" href=\"https://www.facebook.com/EmpowerID/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\"><i class=\"fab fa-facebook-f\"></i></a>\r\n <a class=\"btn btn-dark btn-social mx-2\" href=\"https://www.linkedin.com/company/empowerid?trk=public_profile_topcard-current-company\" target=\"_blank\" rel=\"noopener noreferrer nofollow\"><i class=\"fab fa-linkedin-in\"></i></a>\r\n </div>\r\n </div>-->\r\n </div>\r\n </footer>\r\n \r\n <!-- Bootstrap core JS-->\r\n <script src=\"https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js\"></script>\r\n \r\n </body>","javascript":"window.addEventListener('DOMContentLoaded', event => {\r\n\r\n // Navbar shrink function\r\n var navbarShrink = function () {\r\n const navbarCollapsible = document.body.querySelector('#mainNav');\r\n if (!navbarCollapsible) {\r\n return;\r\n }\r\n if (window.scrollY === 0) {\r\n navbarCollapsible.classList.remove('navbar-shrink')\r\n } else {\r\n navbarCollapsible.classList.add('navbar-shrink')\r\n }\r\n\r\n };\r\n\r\n // Shrink the navbar \r\n navbarShrink();\r\n\r\n // Shrink the navbar when page is scrolled\r\n document.addEventListener('scroll', navbarShrink);\r\n\r\n // Activate Bootstrap scrollspy on the main nav element\r\n const mainNav = document.body.querySelector('#mainNav');\r\n if (mainNav) {\r\n new bootstrap.ScrollSpy(document.body, {\r\n target: '#mainNav',\r\n offset: 74,\r\n });\r\n };\r\n\r\n // Collapse responsive navbar when toggler is visible\r\n const navbarToggler = document.body.querySelector('.navbar-toggler');\r\n const responsiveNavItems = [].slice.call(\r\n document.querySelectorAll('#navbarResponsive .nav-link')\r\n );\r\n responsiveNavItems.map(function (responsiveNavItem) {\r\n responsiveNavItem.addEventListener('click', () => {\r\n if (window.getComputedStyle(navbarToggler).display !== 'none') {\r\n navbarToggler.click();\r\n }\r\n });\r\n });\r\n\r\n});\r\n","css":""}


Insert excerpt
IL:External Stylesheet
IL:External Stylesheet
nopaneltrue