Skip to content

Commit

Permalink
enhance: blog: update oauth2 token exchange diagram
Browse files Browse the repository at this point in the history
  • Loading branch information
grokify committed Dec 9, 2024
1 parent 5be44ca commit 486dcd1
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 0 deletions.
85 changes: 85 additions & 0 deletions blog/oauth2oidc_flow.drawio
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" version="25.0.3">
<diagram name="Page-1" id="RyRk6P8K1K8R1_MZVieJ">
<mxGraphModel grid="0" page="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" pageScale="1" pageWidth="850" pageHeight="1100" background="#000000" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="0aQzvEzoCHNE4vV6AZ6n-25" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#000000;" vertex="1" parent="1">
<mxGeometry x="69" y="158" width="747" height="332" as="geometry" />
</mxCell>
<mxCell id="0aQzvEzoCHNE4vV6AZ6n-2" value="&lt;font style=&quot;font-size: 16px;&quot; color=&quot;#ffffff&quot;&gt;Saviynt&lt;/font&gt;&lt;div&gt;&lt;font style=&quot;font-size: 16px;&quot; color=&quot;#ffffff&quot;&gt;Identity&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 16px;&quot; color=&quot;#ffffff&quot;&gt;Cloud&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 16px;&quot; color=&quot;#ffffff&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 16px;&quot; color=&quot;#ffffff&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=2;fillColor=#000000;strokeColor=#FFFFFF;" vertex="1" parent="1">
<mxGeometry x="372.5" y="300" width="140" height="140" as="geometry" />
</mxCell>
<mxCell id="0aQzvEzoCHNE4vV6AZ6n-3" value="&lt;font color=&quot;#ffffff&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;OAuth 2.0 / OIDC&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;font color=&quot;#ffffff&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;Identity&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#ffffff&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;Provider&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=2;fillColor=#000000;strokeColor=#FFFFFF;" vertex="1" parent="1">
<mxGeometry x="640" y="200" width="140" height="240" as="geometry" />
</mxCell>
<mxCell id="0aQzvEzoCHNE4vV6AZ6n-5" value="&lt;font color=&quot;#ffffff&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;Custom API&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;font color=&quot;#ffffff&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;Application&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#ffffff&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#ffffff&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=2;fillColor=#000000;strokeColor=#FFFFFF;" vertex="1" parent="1">
<mxGeometry x="110" y="200" width="140" height="240" as="geometry" />
</mxCell>
<mxCell id="0aQzvEzoCHNE4vV6AZ6n-6" value="&lt;div&gt;&lt;span style=&quot;color: rgb(255, 255, 255); background-color: initial;&quot;&gt;&lt;font style=&quot;font-size: 11px;&quot;&gt;IdP API Credentials&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 11px;&quot; color=&quot;#ffffff&quot;&gt;for Custom App&lt;/font&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=2;fillColor=#000000;strokeColor=#FFFFFF;" vertex="1" parent="1">
<mxGeometry x="120" y="370" width="130" height="70" as="geometry" />
</mxCell>
<mxCell id="0aQzvEzoCHNE4vV6AZ6n-7" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.011;entryY=0.082;entryDx=0;entryDy=0;strokeColor=#B3B3B3;strokeWidth=2;entryPerimeter=0;" edge="1" parent="1" target="0aQzvEzoCHNE4vV6AZ6n-3">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="250" y="220" as="sourcePoint" />
<mxPoint x="570" y="440" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="0aQzvEzoCHNE4vV6AZ6n-8" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#B3B3B3;strokeWidth=2;exitX=-0.009;exitY=0.163;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="0aQzvEzoCHNE4vV6AZ6n-3">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="630" y="240" as="sourcePoint" />
<mxPoint x="250" y="240" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="0aQzvEzoCHNE4vV6AZ6n-11" value="&lt;font color=&quot;#b3b3b3&quot; style=&quot;font-size: 11px;&quot;&gt;&lt;i style=&quot;&quot;&gt;1. Client App requests IdP Access or ID Token for Custom App&lt;/i&gt;&lt;/font&gt;&lt;div&gt;&lt;font style=&quot;&quot;&gt;&lt;font color=&quot;#b3b3b3&quot; style=&quot;font-size: 11px;&quot;&gt;&lt;i style=&quot;&quot;&gt;(Independent of Saviynt, can be multiple steps)&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="290" y="184" width="305" height="26" as="geometry" />
</mxCell>
<mxCell id="0aQzvEzoCHNE4vV6AZ6n-12" value="&lt;font color=&quot;#b3b3b3&quot; style=&quot;font-size: 11px;&quot;&gt;&lt;i style=&quot;&quot;&gt;2. Client App receives IdP Access or ID Token for Custom App (Idependent of Saviynt, can be multiple steps)&lt;/i&gt;&lt;/font&gt;" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="290" y="244" width="330" height="30" as="geometry" />
</mxCell>
<mxCell id="0aQzvEzoCHNE4vV6AZ6n-13" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;strokeColor=#FFFFFF;strokeWidth=2;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="250" y="341" as="sourcePoint" />
<mxPoint x="372.5" y="341" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="0aQzvEzoCHNE4vV6AZ6n-14" value="&lt;font style=&quot;font-size: 11px;&quot; color=&quot;#ffffff&quot;&gt;3. Token Exchange&lt;/font&gt;&lt;div&gt;&lt;span style=&quot;font-size: 11px; color: rgb(255, 255, 255); background-color: initial;&quot;&gt;request&lt;/span&gt;&lt;/div&gt;" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=0;" vertex="1" parent="1">
<mxGeometry x="240" y="305" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="0aQzvEzoCHNE4vV6AZ6n-16" value="" style="endArrow=classic;html=1;rounded=0;strokeColor=#FFFFFF;strokeWidth=2;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="513" y="341" as="sourcePoint" />
<mxPoint x="640" y="341" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="0aQzvEzoCHNE4vV6AZ6n-17" value="&lt;font style=&quot;font-size: 11px;&quot; color=&quot;#ffffff&quot;&gt;4. Token Introspection&lt;/font&gt;&lt;div&gt;&lt;font style=&quot;font-size: 11px;&quot; color=&quot;#ffffff&quot;&gt;request&lt;/font&gt;&lt;/div&gt;" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=0;" vertex="1" parent="1">
<mxGeometry x="507" y="305" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="0aQzvEzoCHNE4vV6AZ6n-18" value="&lt;font style=&quot;font-size: 11px;&quot; color=&quot;#ffffff&quot;&gt;5. Token Introspection&lt;/font&gt;&lt;div&gt;&lt;font style=&quot;font-size: 11px;&quot; color=&quot;#ffffff&quot;&gt;response with&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 11px;&quot; color=&quot;#ffffff&quot;&gt;token status&lt;/font&gt;&lt;/div&gt;" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=0;" vertex="1" parent="1">
<mxGeometry x="506.5" y="377" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="0aQzvEzoCHNE4vV6AZ6n-19" value="" style="endArrow=classic;html=1;rounded=0;strokeColor=#FFFFFF;strokeWidth=2;entryX=0.99;entryY=0.433;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" target="0aQzvEzoCHNE4vV6AZ6n-2">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="640" y="360" as="sourcePoint" />
<mxPoint x="650" y="351" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="0aQzvEzoCHNE4vV6AZ6n-20" value="&lt;font style=&quot;font-size: 8px;&quot; color=&quot;#ffffff&quot;&gt;&amp;nbsp;Saviynt&amp;nbsp;&lt;font style=&quot;&quot;&gt;Config&lt;/font&gt;&lt;/font&gt;&lt;div&gt;&lt;font style=&quot;font-size: 8px;&quot; color=&quot;#ffffff&quot;&gt;&amp;nbsp;1. IdP API creds for Saviynt&amp;nbsp;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 8px;&quot; color=&quot;#ffffff&quot;&gt;&amp;nbsp;2. IdP Introspec URL&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 8px;&quot; color=&quot;#ffffff&quot;&gt;&amp;nbsp;3. Token userid property name&lt;/font&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;strokeColor=#FFFFFF;fillColor=#000000;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="392.5" y="370" width="120" height="70" as="geometry" />
</mxCell>
<mxCell id="0aQzvEzoCHNE4vV6AZ6n-21" value="" style="endArrow=classic;html=1;rounded=0;entryX=1.007;entryY=0.664;entryDx=0;entryDy=0;strokeColor=#FFFFFF;strokeWidth=2;entryPerimeter=0;exitX=0.009;exitY=0.424;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="0aQzvEzoCHNE4vV6AZ6n-2" target="0aQzvEzoCHNE4vV6AZ6n-5">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="370" y="360" as="sourcePoint" />
<mxPoint x="382.5" y="351" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="0aQzvEzoCHNE4vV6AZ6n-22" value="&lt;font style=&quot;font-size: 11px;&quot; color=&quot;#ffffff&quot;&gt;6. Token Exchange&lt;/font&gt;&lt;div&gt;&lt;font style=&quot;font-size: 11px;&quot;&gt;&lt;span style=&quot;color: rgb(255, 255, 255); background-color: initial;&quot;&gt;response&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: initial; color: rgb(255, 255, 255);&quot;&gt;with&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 11px;&quot;&gt;&lt;font color=&quot;#ffffff&quot;&gt;Saviynt&amp;nbsp;&lt;/font&gt;&lt;span style=&quot;color: rgb(255, 255, 255); background-color: initial;&quot;&gt;Access Token&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=0;" vertex="1" parent="1">
<mxGeometry x="225" y="375" width="170" height="30" as="geometry" />
</mxCell>
<mxCell id="tk6kAQmS5roWvJDRAGc5-1" value="&lt;font style=&quot;font-size: 18px;&quot; color=&quot;#b3b3b3&quot;&gt;Saviynt OAuth 2.0 Token Exchange Flow with Optional OIDC Support&amp;nbsp;&lt;/font&gt;" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="164" y="136" width="569" height="26" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
Binary file modified blog/oauth2oidc_flow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 486dcd1

Please sign in to comment.