{
  "type": "excalidraw",
  "version": 2,
  "source": "GitHub Copilot",
  "elements": [
    {
      "id": "title",
      "type": "text",
      "x": 40,
      "y": 24,
      "width": 1500,
      "height": 70.0,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 1,
      "version": 1,
      "versionNonce": 100,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Web App + MI + FIC：无客户端密钥认证方案",
      "originalText": "Web App + MI + FIC：无客户端密钥认证方案",
      "fontSize": 28,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "subtitle",
      "type": "text",
      "x": 40,
      "y": 72,
      "width": 1450,
      "height": 42.5,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 2,
      "version": 1,
      "versionNonce": 101,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "应用身份仍是应用注册；MI 令牌代替 secret，FIC 声明信任。",
      "originalText": "应用身份仍是应用注册；MI 令牌代替 secret，FIC 声明信任。",
      "fontSize": 17,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "azure-scope",
      "type": "rectangle",
      "x": 40,
      "y": 120,
      "width": 885,
      "height": 420,
      "angle": 0,
      "strokeColor": "#0078D4",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 3
      },
      "seed": 3,
      "version": 1,
      "versionNonce": 102,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "azure-heading",
      "type": "text",
      "x": 62,
      "y": 138,
      "width": 700,
      "height": 50.0,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 4,
      "version": 1,
      "versionNonce": 103,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Azure 订阅：subscription-example",
      "originalText": "Azure 订阅：subscription-example",
      "fontSize": 20,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "entra-scope",
      "type": "rectangle",
      "x": 1000,
      "y": 120,
      "width": 550,
      "height": 420,
      "angle": 0,
      "strokeColor": "#5C2D91",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 3
      },
      "seed": 5,
      "version": 1,
      "versionNonce": 104,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "entra-heading",
      "type": "text",
      "x": 1020,
      "y": 138,
      "width": 510,
      "height": 50.0,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 6,
      "version": 1,
      "versionNonce": 105,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Microsoft Entra ID（同一租户）",
      "originalText": "Microsoft Entra ID（同一租户）",
      "fontSize": 20,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "webapps",
      "type": "rectangle",
      "x": 65,
      "y": 255,
      "width": 370,
      "height": 255,
      "angle": 0,
      "strokeColor": "#0078D4",
      "backgroundColor": "#CFE4FA",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "azure-resources"
      ],
      "frameId": null,
      "roundness": {
        "type": 3
      },
      "seed": 7,
      "version": 1,
      "versionNonce": 106,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "webapps-title",
      "type": "text",
      "x": 85,
      "y": 274,
      "width": 330,
      "height": 50.0,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "azure-resources"
      ],
      "frameId": null,
      "roundness": null,
      "seed": 8,
      "version": 1,
      "versionNonce": 107,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "5 个示例 Web Apps / Easy Auth",
      "originalText": "5 个示例 Web Apps / Easy Auth",
      "fontSize": 20,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "webapp-0",
      "type": "text",
      "x": 85,
      "y": 316,
      "width": 320,
      "height": 42.5,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "azure-resources"
      ],
      "frameId": null,
      "roundness": null,
      "seed": 9,
      "version": 1,
      "versionNonce": 108,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "webapp-example-01",
      "originalText": "webapp-example-01",
      "fontSize": 17,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "webapp-1",
      "type": "text",
      "x": 85,
      "y": 346,
      "width": 320,
      "height": 42.5,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "azure-resources"
      ],
      "frameId": null,
      "roundness": null,
      "seed": 10,
      "version": 1,
      "versionNonce": 109,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "webapp-example-02",
      "originalText": "webapp-example-02",
      "fontSize": 17,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "webapp-2",
      "type": "text",
      "x": 85,
      "y": 376,
      "width": 320,
      "height": 42.5,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "azure-resources"
      ],
      "frameId": null,
      "roundness": null,
      "seed": 11,
      "version": 1,
      "versionNonce": 110,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "webapp-example-03",
      "originalText": "webapp-example-03",
      "fontSize": 17,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "webapp-3",
      "type": "text",
      "x": 85,
      "y": 406,
      "width": 320,
      "height": 42.5,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "azure-resources"
      ],
      "frameId": null,
      "roundness": null,
      "seed": 12,
      "version": 1,
      "versionNonce": 111,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "webapp-example-04",
      "originalText": "webapp-example-04",
      "fontSize": 17,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "webapp-4",
      "type": "text",
      "x": 85,
      "y": 436,
      "width": 320,
      "height": 42.5,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "azure-resources"
      ],
      "frameId": null,
      "roundness": null,
      "seed": 13,
      "version": 1,
      "versionNonce": 112,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "webapp-example-05",
      "originalText": "webapp-example-05",
      "fontSize": 17,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "webapps-rgs",
      "type": "text",
      "x": 85,
      "y": 476,
      "width": 340,
      "height": 32.5,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "azure-resources"
      ],
      "frameId": null,
      "roundness": null,
      "seed": 14,
      "version": 1,
      "versionNonce": 113,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "各自保留原资源组、业务身份和登录限制",
      "originalText": "各自保留原资源组、业务身份和登录限制",
      "fontSize": 13,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "managed-identity",
      "type": "rectangle",
      "x": 530,
      "y": 255,
      "width": 370,
      "height": 255,
      "angle": 0,
      "strokeColor": "#107C10",
      "backgroundColor": "#DFF6DD",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "mi-resource"
      ],
      "frameId": null,
      "roundness": {
        "type": 3
      },
      "seed": 15,
      "version": 1,
      "versionNonce": 114,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "mi-heading",
      "type": "text",
      "x": 550,
      "y": 274,
      "width": 335,
      "height": 50.0,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "mi-resource"
      ],
      "frameId": null,
      "roundness": null,
      "seed": 16,
      "version": 1,
      "versionNonce": 115,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "用户分配托管身份（UAMI）",
      "originalText": "用户分配托管身份（UAMI）",
      "fontSize": 20,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "mi-name",
      "type": "text",
      "x": 550,
      "y": 310,
      "width": 320,
      "height": 50.0,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "mi-resource"
      ],
      "frameId": null,
      "roundness": null,
      "seed": 17,
      "version": 1,
      "versionNonce": 116,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "id-webapp-example",
      "originalText": "id-webapp-example",
      "fontSize": 20,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "mi-rg",
      "type": "text",
      "x": 550,
      "y": 346,
      "width": 320,
      "height": 37.5,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "mi-resource"
      ],
      "frameId": null,
      "roundness": null,
      "seed": 18,
      "version": 1,
      "versionNonce": 117,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "资源组：rg-identity-example",
      "originalText": "资源组：rg-identity-example",
      "fontSize": 15,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "mi-client-label",
      "type": "text",
      "x": 550,
      "y": 382,
      "width": 330,
      "height": 35.0,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "mi-resource"
      ],
      "frameId": null,
      "roundness": null,
      "seed": 19,
      "version": 1,
      "versionNonce": 118,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "MI Client ID：网站通过它选择 MI",
      "originalText": "MI Client ID：网站通过它选择 MI",
      "fontSize": 14,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "mi-client",
      "type": "text",
      "x": 550,
      "y": 407,
      "width": 330,
      "height": 30.0,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "mi-resource"
      ],
      "frameId": null,
      "roundness": null,
      "seed": 20,
      "version": 1,
      "versionNonce": 119,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "<MI_CLIENT_ID>",
      "originalText": "<MI_CLIENT_ID>",
      "fontSize": 12,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "mi-principal-label",
      "type": "text",
      "x": 550,
      "y": 441,
      "width": 335,
      "height": 32.5,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "mi-resource"
      ],
      "frameId": null,
      "roundness": null,
      "seed": 21,
      "version": 1,
      "versionNonce": 120,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "MI Principal / Object ID：用于 FIC subject",
      "originalText": "MI Principal / Object ID：用于 FIC subject",
      "fontSize": 13,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "mi-principal",
      "type": "text",
      "x": 550,
      "y": 466,
      "width": 330,
      "height": 30.0,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "mi-resource"
      ],
      "frameId": null,
      "roundness": null,
      "seed": 22,
      "version": 1,
      "versionNonce": 121,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "<MI_PRINCIPAL_ID>",
      "originalText": "<MI_PRINCIPAL_ID>",
      "fontSize": 12,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "application-registration",
      "type": "rectangle",
      "x": 1025,
      "y": 197,
      "width": 500,
      "height": 320,
      "angle": 0,
      "strokeColor": "#5C2D91",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 3
      },
      "seed": 23,
      "version": 1,
      "versionNonce": 122,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "app-heading",
      "type": "text",
      "x": 1045,
      "y": 212,
      "width": 455,
      "height": 52.5,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 24,
      "version": 1,
      "versionNonce": 123,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "App registration：app-web-auth-example",
      "originalText": "App registration：app-web-auth-example",
      "fontSize": 21,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "app-id-label",
      "type": "text",
      "x": 1045,
      "y": 248,
      "width": 455,
      "height": 35.0,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 25,
      "version": 1,
      "versionNonce": 124,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "应用 Client ID（保持不变）",
      "originalText": "应用 Client ID（保持不变）",
      "fontSize": 14,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "app-id",
      "type": "text",
      "x": 1045,
      "y": 273,
      "width": 455,
      "height": 32.5,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 26,
      "version": 1,
      "versionNonce": 125,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "<APP_CLIENT_ID>",
      "originalText": "<APP_CLIENT_ID>",
      "fontSize": 13,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "federated-credential",
      "type": "rectangle",
      "x": 1048,
      "y": 316,
      "width": 455,
      "height": 178,
      "angle": 0,
      "strokeColor": "#5C2D91",
      "backgroundColor": "#E8DAEF",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "fic-resource"
      ],
      "frameId": null,
      "roundness": {
        "type": 3
      },
      "seed": 27,
      "version": 1,
      "versionNonce": 126,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "fic-heading",
      "type": "text",
      "x": 1066,
      "y": 330,
      "width": 415,
      "height": 47.5,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "fic-resource"
      ],
      "frameId": null,
      "roundness": null,
      "seed": 28,
      "version": 1,
      "versionNonce": 127,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "FIC：fic-webapp-example",
      "originalText": "FIC：fic-webapp-example",
      "fontSize": 19,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "fic-subject-label",
      "type": "text",
      "x": 1066,
      "y": 367,
      "width": 415,
      "height": 35.0,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "fic-resource"
      ],
      "frameId": null,
      "roundness": null,
      "seed": 29,
      "version": 1,
      "versionNonce": 128,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "subject = MI 的 Principal ID",
      "originalText": "subject = MI 的 Principal ID",
      "fontSize": 14,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "fic-subject",
      "type": "text",
      "x": 1066,
      "y": 391,
      "width": 415,
      "height": 30.0,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "fic-resource"
      ],
      "frameId": null,
      "roundness": null,
      "seed": 30,
      "version": 1,
      "versionNonce": 129,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "<MI_PRINCIPAL_ID>",
      "originalText": "<MI_PRINCIPAL_ID>",
      "fontSize": 12,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "fic-issuer",
      "type": "text",
      "x": 1066,
      "y": 428,
      "width": 415,
      "height": 35.0,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "fic-resource"
      ],
      "frameId": null,
      "roundness": null,
      "seed": 31,
      "version": 1,
      "versionNonce": 130,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "issuer = 本租户的 v2.0 端点",
      "originalText": "issuer = 本租户的 v2.0 端点",
      "fontSize": 14,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "fic-audience",
      "type": "text",
      "x": 1066,
      "y": 458,
      "width": 415,
      "height": 30.0,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [
        "fic-resource"
      ],
      "frameId": null,
      "roundness": null,
      "seed": 32,
      "version": 1,
      "versionNonce": 131,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "audiences = [api://AzureADTokenExchange]",
      "originalText": "audiences = [api://AzureADTokenExchange]",
      "fontSize": 12,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "bind-mi",
      "type": "arrow",
      "x": 438,
      "y": 376,
      "width": 82,
      "height": 0,
      "angle": 0,
      "strokeColor": "#0078D4",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 33,
      "version": 1,
      "versionNonce": 132,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          82,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false
    },
    {
      "id": "bind-label",
      "type": "text",
      "x": 447,
      "y": 341,
      "width": 78,
      "height": 37.5,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 34,
      "version": 1,
      "versionNonce": 133,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "① 绑定",
      "originalText": "① 绑定",
      "fontSize": 15,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "fic-trust",
      "type": "arrow",
      "x": 904,
      "y": 422,
      "width": 134,
      "height": 0,
      "angle": 0,
      "strokeColor": "#5C2D91",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "dashed",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 35,
      "version": 1,
      "versionNonce": 134,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          134,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false
    },
    {
      "id": "trust-label",
      "type": "text",
      "x": 942,
      "y": 370,
      "width": 56,
      "height": 70.0,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 36,
      "version": 1,
      "versionNonce": 135,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "② FIC\n信任 MI",
      "originalText": "② FIC\n信任 MI",
      "fontSize": 14,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "app-reference",
      "type": "arrow",
      "x": 250,
      "y": 246,
      "width": 766,
      "height": 47,
      "angle": 0,
      "strokeColor": "#0078D4",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "dashed",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 37,
      "version": 1,
      "versionNonce": 136,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          -37
        ],
        [
          707,
          -37
        ],
        [
          707,
          10
        ],
        [
          766,
          10
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false
    },
    {
      "id": "app-reference-label",
      "type": "text",
      "x": 412,
      "y": 182,
      "width": 510,
      "height": 37.5,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 38,
      "version": 1,
      "versionNonce": 137,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "③ Easy Auth 的 clientId 指向应用注册",
      "originalText": "③ Easy Auth 的 clientId 指向应用注册",
      "fontSize": 15,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "settings-panel",
      "type": "rectangle",
      "x": 40,
      "y": 566,
      "width": 1510,
      "height": 150,
      "angle": 0,
      "strokeColor": "#495057",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": {
        "type": 3
      },
      "seed": 39,
      "version": 1,
      "versionNonce": 138,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "settings-heading",
      "type": "text",
      "x": 62,
      "y": 583,
      "width": 1440,
      "height": 50.0,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 40,
      "version": 1,
      "versionNonce": 139,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "每个网站上的两个关键设置",
      "originalText": "每个网站上的两个关键设置",
      "fontSize": 20,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "setting-value",
      "type": "text",
      "x": 62,
      "y": 622,
      "width": 1440,
      "height": 40.0,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 41,
      "version": 1,
      "versionNonce": 140,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "App setting：OVERRIDE_USE_MI_FIC_ASSERTION_CLIENTID = MI Client ID（标记为 slot-sticky）",
      "originalText": "App setting：OVERRIDE_USE_MI_FIC_ASSERTION_CLIENTID = MI Client ID（标记为 slot-sticky）",
      "fontSize": 16,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "setting-selector",
      "type": "text",
      "x": 62,
      "y": 660,
      "width": 1440,
      "height": 37.5,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 42,
      "version": 1,
      "versionNonce": 141,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Authentication > Microsoft > Client secret setting name = OVERRIDE_USE_MI_FIC_ASSERTION_CLIENTID",
      "originalText": "Authentication > Microsoft > Client secret setting name = OVERRIDE_USE_MI_FIC_ASSERTION_CLIENTID",
      "fontSize": 15,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "runtime-heading",
      "type": "text",
      "x": 40,
      "y": 744,
      "width": 1520,
      "height": 42.5,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 43,
      "version": 1,
      "versionNonce": 142,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "运行时：用户照常登录 → Easy Auth 用 MI 令牌作 client assertion → Entra 校验 FIC → 兑换登录令牌并建立会话",
      "originalText": "运行时：用户照常登录 → Easy Auth 用 MI 令牌作 client assertion → Entra 校验 FIC → 兑换登录令牌并建立会话",
      "fontSize": 17,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    },
    {
      "id": "footnote",
      "type": "text",
      "x": 40,
      "y": 788,
      "width": 1520,
      "height": 35.0,
      "angle": 0,
      "strokeColor": "#000000",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 44,
      "version": 1,
      "versionNonce": 143,
      "isDeleted": false,
      "boundElements": [],
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "名称均为虚构示例，ID 均为占位符。FIC 位于应用注册内，不授予数据访问权限；共享 MI 仅适用于同一信任范围。",
      "originalText": "名称均为虚构示例，ID 均为占位符。FIC 位于应用注册内，不授予数据访问权限；共享 MI 仅适用于同一信任范围。",
      "fontSize": 14,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "lineHeight": 1.25,
      "autoResize": false
    }
  ],
  "appState": {
    "viewBackgroundColor": "#ffffff",
    "currentItemFontFamily": 2
  },
  "files": {}
}