<mxfile host="app.diagrams.net" agent="architecture-diagram" version="24.0.0">
  <diagram name="Identity and Access — who proves what, before anything is issued" id="21-identity-and-access">
    <mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1660" pageHeight="810" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="n.human" value="&lt;b&gt;Developer&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#08427b;strokeColor=#073b6f;fontColor=#ffffff;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="60" y="80" width="200" height="610" as="geometry" />
        </mxCell>
        <mxCell id="_plate1" value="" style="rounded=1;arcSize=22;html=1;fillColor=#ffffff;strokeColor=none;movable=0;resizable=0;connectable=0;" vertex="1" parent="n.human">
          <mxGeometry x="5" y="13" width="32" height="32" as="geometry" />
        </mxCell>
        <mxCell id="_ico2" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,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;" vertex="1" parent="n.human">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.idp" value="&lt;b&gt;Platform IdP&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#e1d5e7;strokeColor=#9673a6;fontColor=#3a2b44;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="280" y="80" width="200" height="610" as="geometry" />
        </mxCell>
        <mxCell id="_ico3" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAADDUlEQVRoge3azatVVRjH8Y+aebMX4Q6EQKQXaiBRDkS46TCLZgbpIMgKylHQC6HYX+BMmgS90BvhoJpEgmiFoNmk0sAyiKK07GVwzTJLUe9tsN1w2j37nL32XvvcBn5hDc5z1lrP73fWWnuvtThcZm6Z11O/a/EwVuIP7MJrONlTvixMYBMOYzYoZ/EW1syVwDpuwXZMi4VH5VNsxuI50Avm4y68h5lAYNPyG57DjeMSvhRb8X0H0VG5iPexAQv6EL4GO3EuUdi04ldOafMNnsFkV9GjFmWTsn+gn0OJbVsv+iuwDac6CB80MMidePOSuJR+DigeyY14IYPwOgMlS/EsjiX09TtuGyX+dt2eKk0NlCzAeuxtmPfdUQYezyi+iYFBbsUOwxf9qWqj+ZXP1yQkzM3XeArLFC+5r4I6/9FXNXA2v65kzuAlvBh891c1UDXwdx+KWnJdEBtpYDqziC673ehFdroaqBo40SFhxGyHtsuD2PFqoGrgxw4JI7qMwE1B7IdqIBqBMx2S5mIxVgTxY9VA1cAMvsgopO0UWoWFQfxwNVA1AJ+3TBrRdgqtrokfqgYiAwdbJs3JVBD7VYNFDB9ml5PG1bg7iH8QVY4M/IQvcypK5D7xlmZPVDkyAO9kk5POg0HsghoDdayQZzd6IFH8sktiq/3sqmtQNwJH8Uli8hxsEx/qX2/T2SbjHYEbxJcGJ3BlGwMT+HmMBl6p6WNLG/ElT47JwJR47p/Eki4GrlJs8Po0cK3iLihq/3QX8SUPdDDwUYP+X61p+y0W5TAwD/t6MrC5pt0M1uUQX3Kz4jSU08AG8byfxcs5xZc8mtHAPervWY/q8Xakbr6mGHhsiPjT4oNMNhbh45YGFuL5IXXP494+xZdM4kiigSl8NqTeBTw0DvEl1yuOnqMMHFG8YYfde57D/eMUXzIpbTpF5U+ZH5epTEhf2GX5Tv3Zd+w8ori/byr+DR33OH2wHG8bLvw4Ns6VwKasxW7/Fv4LnpBpbzNIX381oNh+3KGYWgf9P67uL5OdfwCdL2jqexBRtgAAAABJRU5ErkJggg==;" vertex="1" parent="n.idp">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.console" value="&lt;b&gt;Console backend&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#1a2b45;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="510" y="80" width="200" height="610" as="geometry" />
        </mxCell>
        <mxCell id="_ico4" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAACpUlEQVRoge3YTYhNYRzH8Y+3iLzkbZoSdhJZkI1YUWzYWbCxJCU1ZShlpVhQKIoFG28pKxaKDUnyUtTQZJCExZSJEYMMFs+cXMe5955z7jn3jppf/evWfc7/+f6e5/+8nMOIWqsxJeWdhA3YhMUYQG9JfRWqZTiJfvyKxRPsxuyW0VXRHAGsx7/QSfED17ER41rACyYMAVwZAkoDnhTvhRlb2izwWiXSaJRWYvOxDy9yQOWZnW+4jPUaKLFGS+QBdmIGFuGgsAuVXmLTcUS+EnmDA1hQJff4oUG5mnNQ7mNdLfjJeJQx6QDOY61sZ0o7dqErY38/saVa0r0ZEt3BVkzLAF1Ny3EcfSn77sOUpEQ36zz4FkexpADoJI0XFu4lfK/DsjopwdOEhgO4INReWdeOJEUl9iSB6Rc2Rw1H10n0CS/RjcEySKuoF8/wOstDSTMQxaA/x//YIkljahcOs1c1WP6agbQG4mvhIOYWBD0aa6Sr/UIMRFF5KcuzPqYJh93zjP0WZqAyeoSpn5UCPLpPfWmgv8INRPEV57Aqljsa7ax9DDbbQGV0oQOn8Tnjs++wHwtbaSBP3Pb3i87EegbK3BLT6oOwAx0TDq5MaqWBhziFs8KCzqVmG+jHRZzA4yISNtPAGewQFnRhqncXKlLdCoanuQZK0YiBVuu/NzAcDrJqasOeeo0qDXwsjyWT2tCJbcJVIkkfoh+VJXSrRKg0asNh4RW2Q3X4r7iX9Mds4R20rItaZx3wtDfWvbVGYR6uNclAVvA+bMeoWgYirRC+i5ZhYKbwTp0WvH+ofa6PaCtxoyADh2Qf8X2Ymgc8rjJmpJQRb6WRUsHLNNJU8LgaMdJS8LiyGBlW4HHVMjKsweNaKXyW78Zd4atdIdvhiEZUsH4D+zfN9JHFLwAAAAAASUVORK5CYII=;" vertex="1" parent="n.console">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.issue" value="&lt;b&gt;Issuance service&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#1a2b45;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="730" y="80" width="200" height="610" as="geometry" />
        </mxCell>
        <mxCell id="_ico5" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAACpUlEQVRoge3YTYhNYRzH8Y+3iLzkbZoSdhJZkI1YUWzYWbCxJCU1ZShlpVhQKIoFG28pKxaKDUnyUtTQZJCExZSJEYMMFs+cXMe5955z7jn3jppf/evWfc7/+f6e5/+8nMOIWqsxJeWdhA3YhMUYQG9JfRWqZTiJfvyKxRPsxuyW0VXRHAGsx7/QSfED17ER41rACyYMAVwZAkoDnhTvhRlb2izwWiXSaJRWYvOxDy9yQOWZnW+4jPUaKLFGS+QBdmIGFuGgsAuVXmLTcUS+EnmDA1hQJff4oUG5mnNQ7mNdLfjJeJQx6QDOY61sZ0o7dqErY38/saVa0r0ZEt3BVkzLAF1Ny3EcfSn77sOUpEQ36zz4FkexpADoJI0XFu4lfK/DsjopwdOEhgO4INReWdeOJEUl9iSB6Rc2Rw1H10n0CS/RjcEySKuoF8/wOstDSTMQxaA/x//YIkljahcOs1c1WP6agbQG4mvhIOYWBD0aa6Sr/UIMRFF5KcuzPqYJh93zjP0WZqAyeoSpn5UCPLpPfWmgv8INRPEV57Aqljsa7ax9DDbbQGV0oQOn8Tnjs++wHwtbaSBP3Pb3i87EegbK3BLT6oOwAx0TDq5MaqWBhziFs8KCzqVmG+jHRZzA4yISNtPAGewQFnRhqncXKlLdCoanuQZK0YiBVuu/NzAcDrJqasOeeo0qDXwsjyWT2tCJbcJVIkkfoh+VJXSrRKg0asNh4RW2Q3X4r7iX9Mds4R20rItaZx3wtDfWvbVGYR6uNclAVvA+bMeoWgYirRC+i5ZhYKbwTp0WvH+ofa6PaCtxoyADh2Qf8X2Ymgc8rjJmpJQRb6WRUsHLNNJU8LgaMdJS8LiyGBlW4HHVMjKsweNaKXyW78Zd4atdIdvhiEZUsH4D+zfN9JHFLwAAAAAASUVORK5CYII=;" vertex="1" parent="n.issue">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.scope" value="&lt;b&gt;Scope registry&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#1a2b45;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="960" y="80" width="200" height="610" as="geometry" />
        </mxCell>
        <mxCell id="_ico6" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAACpUlEQVRoge3YTYhNYRzH8Y+3iLzkbZoSdhJZkI1YUWzYWbCxJCU1ZShlpVhQKIoFG28pKxaKDUnyUtTQZJCExZSJEYMMFs+cXMe5955z7jn3jppf/evWfc7/+f6e5/+8nMOIWqsxJeWdhA3YhMUYQG9JfRWqZTiJfvyKxRPsxuyW0VXRHAGsx7/QSfED17ER41rACyYMAVwZAkoDnhTvhRlb2izwWiXSaJRWYvOxDy9yQOWZnW+4jPUaKLFGS+QBdmIGFuGgsAuVXmLTcUS+EnmDA1hQJff4oUG5mnNQ7mNdLfjJeJQx6QDOY61sZ0o7dqErY38/saVa0r0ZEt3BVkzLAF1Ny3EcfSn77sOUpEQ36zz4FkexpADoJI0XFu4lfK/DsjopwdOEhgO4INReWdeOJEUl9iSB6Rc2Rw1H10n0CS/RjcEySKuoF8/wOstDSTMQxaA/x//YIkljahcOs1c1WP6agbQG4mvhIOYWBD0aa6Sr/UIMRFF5KcuzPqYJh93zjP0WZqAyeoSpn5UCPLpPfWmgv8INRPEV57Aqljsa7ax9DDbbQGV0oQOn8Tnjs++wHwtbaSBP3Pb3i87EegbK3BLT6oOwAx0TDq5MaqWBhziFs8KCzqVmG+jHRZzA4yISNtPAGewQFnRhqncXKlLdCoanuQZK0YiBVuu/NzAcDrJqasOeeo0qDXwsjyWT2tCJbcJVIkkfoh+VJXSrRKg0asNh4RW2Q3X4r7iX9Mds4R20rItaZx3wtDfWvbVGYR6uNclAVvA+bMeoWgYirRC+i5ZhYKbwTp0WvH+ofa6PaCtxoyADh2Qf8X2Ymgc8rjJmpJQRb6WRUsHLNNJU8LgaMdJS8LiyGBlW4HHVMjKsweNaKXyW78Zd4atdIdvhiEZUsH4D+zfN9JHFLwAAAAAASUVORK5CYII=;" vertex="1" parent="n.scope">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.store" value="&lt;b&gt;Credential store&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#1e3a1e;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="1180" y="80" width="200" height="610" as="geometry" />
        </mxCell>
        <mxCell id="_ico7" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAADIUlEQVRoge3aTWwVVRjG8V9LkW+kwYDY6kLxC5QNJEIMECEGNSa6MCaGHStXrtyqxI0xJLCCDTGBBRuCiSQuTIgxhAUsABP5SAQlCFhlYaB82AqNdfFO06E9U+5M7+29rf0nbyY9M3Pmee85M/Ocd8o0zaVtHOfOwoosuvBEFp2YjTnZMf9kx9/AAK7jGv7ErziHK1VFlEmgE5vwOtbjOXRUvfAIbuI0vscRnMK/9ei4TQg+KH7JwQmKK/hMjGxlVuCHCRSdir/xqZiKpXgFt5osPh9HxH01ihkFbSfwWNmsG8jT6MexkTvaEwcvFU+TVmN1qjGVQKqtFUjqalWxNTMlE7gt7vxWo7fMwV9p/qMzH31YWyaBDuxrAeGD+AtvlRGfZzOON0n4HezG4qri86zCTpxvsOi7+A4fYmFVsV3Yj2UF+7vxAb7At7ikmtG7IVznfnyM1xTYBbyNHakdKTvdjavixjmAPfixoOM8S8RbfEnW76Jc//1Zf/1iHfB79vdYzMF7+AhrcBjv1qBDt9G/1gV8iS1YUEsnFVmObTgkplNewzepE8YagSIGREIXcBG/ZNurYmHSl108da1FmCsWR89msTzbvihGsIjkCFRZUXUYXkqORa9IZpaYDkXze1zUa0mY4tEsGsqU9EKTilQCdakGNICkrlQC19HTWC2VOF3m4LWGbXUrROGifixewtEmC+/D9irih2jDG/ga9yZQ+DV8jieriF6A5xPti/E+9uJn8Uaul+BbYrQ/wTqjyz3tCqoSRVbikjBxu/BbQaJzxdt4ZXbO49l2vmEj1+lBI3dXPCT+EA+Ky/gp2w4mrtGON0WZsUcFMzcgTNRWE/BWzfGyKClezGlJmrmHWYkZeCeL+zgpqmMnDRu5O+MU2yXM3At4FRvwVK0nl/FCM8X8XDeivUckc1lMlV4xVfrE3J4pptVCYermibLlM8KJziuhYRT1MHNDHzY21qGv0kxJLzSpmJIJTJcWGxDTpcVmCP9/lBarfKnvFh+6VwnPMvSl/pGS/dwUpvEszogy43Fh+mpmPP9qMJJ6lxanmRT8B1M0bJ9FjBNdAAAAAElFTkSuQmCC;" vertex="1" parent="n.store">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.audit" value="&lt;b&gt;Audit store&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#1e3a1e;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="1400" y="80" width="200" height="610" as="geometry" />
        </mxCell>
        <mxCell id="_ico8" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAADIUlEQVRoge3aTWwVVRjG8V9LkW+kwYDY6kLxC5QNJEIMECEGNSa6MCaGHStXrtyqxI0xJLCCDTGBBRuCiSQuTIgxhAUsABP5SAQlCFhlYaB82AqNdfFO06E9U+5M7+29rf0nbyY9M3Pmee85M/Ocd8o0zaVtHOfOwoosuvBEFp2YjTnZMf9kx9/AAK7jGv7ErziHK1VFlEmgE5vwOtbjOXRUvfAIbuI0vscRnMK/9ei4TQg+KH7JwQmKK/hMjGxlVuCHCRSdir/xqZiKpXgFt5osPh9HxH01ihkFbSfwWNmsG8jT6MexkTvaEwcvFU+TVmN1qjGVQKqtFUjqalWxNTMlE7gt7vxWo7fMwV9p/qMzH31YWyaBDuxrAeGD+AtvlRGfZzOON0n4HezG4qri86zCTpxvsOi7+A4fYmFVsV3Yj2UF+7vxAb7At7ikmtG7IVznfnyM1xTYBbyNHakdKTvdjavixjmAPfixoOM8S8RbfEnW76Jc//1Zf/1iHfB79vdYzMF7+AhrcBjv1qBDt9G/1gV8iS1YUEsnFVmObTgkplNewzepE8YagSIGREIXcBG/ZNurYmHSl108da1FmCsWR89msTzbvihGsIjkCFRZUXUYXkqORa9IZpaYDkXze1zUa0mY4tEsGsqU9EKTilQCdakGNICkrlQC19HTWC2VOF3m4LWGbXUrROGifixewtEmC+/D9irih2jDG/ga9yZQ+DV8jieriF6A5xPti/E+9uJn8Uaul+BbYrQ/wTqjyz3tCqoSRVbikjBxu/BbQaJzxdt4ZXbO49l2vmEj1+lBI3dXPCT+EA+Ky/gp2w4mrtGON0WZsUcFMzcgTNRWE/BWzfGyKClezGlJmrmHWYkZeCeL+zgpqmMnDRu5O+MU2yXM3At4FRvwVK0nl/FCM8X8XDeivUckc1lMlV4xVfrE3J4pptVCYermibLlM8KJziuhYRT1MHNDHzY21qGv0kxJLzSpmJIJTJcWGxDTpcVmCP9/lBarfKnvFh+6VwnPMvSl/pGS/dwUpvEszogy43Fh+mpmPP9qMJJ6lxanmRT8B1M0bJ9FjBNdAAAAAElFTkSuQmCC;" vertex="1" parent="n.audit">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="_m9" value="1. OIDC sign-in" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.1508;exitDx=0;exitDy=0;entryX=0.5;entryY=0.1508;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.human" target="n.idp">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m10" value="2. assertion: principal, tenant" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.2164;exitDx=0;exitDy=0;entryX=0.5;entryY=0.2164;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.idp" target="n.console">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m11" value="3. create key with payments:write" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.2820;exitDx=0;exitDy=0;entryX=0.5;entryY=0.2820;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.human" target="n.console">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m12" value="4. step-up: scope escalation" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.3475;exitDx=0;exitDy=0;entryX=0.5;entryY=0.3475;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.console" target="n.idp">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m13" value="5. re-authenticated" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.4131;exitDx=0;exitDy=0;entryX=0.5;entryY=0.4131;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.idp" target="n.console">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m14" value="6. issue (mTLS, workload identity)" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.4787;exitDx=0;exitDy=0;entryX=0.5;entryY=0.4787;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.console" target="n.issue">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m15" value="7. does the principal hold payments:write?" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.5443;exitDx=0;exitDy=0;entryX=0.5;entryY=0.5443;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.issue" target="n.scope">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m16" value="8. yes — grade: write" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.6098;exitDx=0;exitDy=0;entryX=0.5;entryY=0.6098;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.scope" target="n.issue">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m17" value="9. refuse if the principal lacks it" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.6754;exitDx=0;exitDy=0;entryX=0.5;entryY=0.7148;entryDx=0;entryDy=0;align=left;spacingLeft=6;" edge="1" parent="1" source="n.issue" target="n.issue">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="910" y="490" />
              <mxPoint x="910" y="520" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_m18" value="10. insert, tenant predicate enforced" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.7607;exitDx=0;exitDy=0;entryX=0.5;entryY=0.7607;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.issue" target="n.store">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m19" value="11. actor, scopes, step-up evidence" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#d79b00;exitX=0.5;exitY=0.8262;exitDx=0;exitDy=0;entryX=0.5;entryY=0.8262;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.issue" target="n.audit">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m20" value="12. the secret, once" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.8918;exitDx=0;exitDy=0;entryX=0.5;entryY=0.8918;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.issue" target="n.human">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="title" value="Identity and Access — who proves what, before anything is issued" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=20;fontStyle=1;fontColor=#16202c;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="20" width="1570" height="30" as="geometry" />
        </mxCell>
        <mxCell id="rule" value="" style="line;strokeWidth=1;html=1;strokeColor=#c9d3de;" vertex="1" parent="1">
          <mxGeometry x="40" y="50" width="1570" height="10" as="geometry" />
        </mxCell>
        <mxCell id="note" value="A principal can never issue a credential wider than itself. That single rule is what keeps key creation from being a privilege-escalation path." style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#8a97a5;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="740" width="1570" height="20" as="geometry" />
        </mxCell>
        <mxCell id="foot-rule" value="" style="line;strokeWidth=1;html=1;strokeColor=#e3e9ef;" vertex="1" parent="1">
          <mxGeometry x="40" y="760" width="1570" height="10" as="geometry" />
        </mxCell>
        <mxCell id="foot" value="v 1.0   ·   owner Security Platform Architecture   ·   date 2026-09" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=9;fontColor=#9aa7b4;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="770" width="1570" height="10" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
