<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Xsuaa-Auth on Marian Zeis Blog</title>
    <link>https://blog.zeis.de/tags/xsuaa-auth/</link>
    <description>Recent content in Xsuaa-Auth on Marian Zeis Blog</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 22 Oct 2026 00:53:32 +0200</lastBuildDate>
    <atom:link href="https://blog.zeis.de/tags/xsuaa-auth/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Build a Custom MCP Server for Joule Work Desktop with XSUAA</title>
      <link>https://blog.zeis.de/posts/custom-mcp-server-joule-work-desktop-xsuaa/</link>
      <pubDate>Wed, 21 Oct 2026 17:25:36 +0200</pubDate>
      <guid>https://blog.zeis.de/posts/custom-mcp-server-joule-work-desktop-xsuaa/</guid>
      <description>&lt;p&gt;You have a spreadsheet with business-partner IDs and want to check the names against SAP. In &lt;strong&gt;Joule Work Desktop (JWD)&lt;/strong&gt;, you might ask:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Look up business partner 1000001 in SAP and compare its name with this spreadsheet. Include the source system and retrieval time, and leave SAP unchanged.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;A &lt;strong&gt;custom MCP server for Joule Work Desktop&lt;/strong&gt; can provide that tool. Your developers decide what it reads, whose permissions it uses, and how much work it sends to SAP.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;I developed &lt;a href=&#34;https://github.com/arc-mcp/xsuaa-auth&#34;&gt;&lt;code&gt;@arc-mcp/xsuaa-auth&lt;/code&gt;&lt;/a&gt; to make the authentication layer reusable.&lt;/strong&gt; It connects MCP servers to SAP&amp;rsquo;s Authorization and Trust Management service, XSUAA, and provides helpers for destination-based connections with the signed-in user&amp;rsquo;s context.&lt;/p&gt;&#xA;&lt;p&gt;The goal is a shared service with &lt;strong&gt;individual user access and centrally managed permissions&lt;/strong&gt;, following the authentication part of &lt;a href=&#34;https://architecture.learning.sap.com/docs/ref-arch/137800#pattern-2-custom-mcp-server-on-sap-btp&#34;&gt;SAP&amp;rsquo;s documented architecture for custom MCP servers on BTP&lt;/a&gt;. SAP is the main example; the same sign-in foundation can protect tools for other business applications.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-a-custom-mcp-server-adds-to-jwd&#34;&gt;What a custom MCP server adds to JWD&lt;/h2&gt;&#xA;&lt;p&gt;MCP, the Model Context Protocol, gives AI applications a common way to discover and call tools. In JWD, an MCP server appears as a &lt;strong&gt;connector&lt;/strong&gt; that you select for a conversation. See SAP&amp;rsquo;s &lt;a href=&#34;https://help.sap.com/docs/JOULE_WORK_DESKTOP/3fec5cf19c7040baa71e42a88099180e/8c11ae6508de4b9ea9bea100e106ecfd.html?locale=en-US&#34;&gt;connector documentation&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Our example tool, &lt;code&gt;get_business_partner_summary&lt;/code&gt;, takes one business-partner ID and retrieves the fields JWD needs for the comparison. Other tools could check delivery status, read orders, or query an internal service.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Start with a question your team already knows how to answer in SAP.&lt;/strong&gt; Choose an appropriate API, define the expected result, and check whether the assistant explains it accurately.&lt;/p&gt;&#xA;&lt;h2 id=&#34;following-saps-architecture-for-custom-mcp-servers&#34;&gt;Following SAP&amp;rsquo;s architecture for custom MCP servers&lt;/h2&gt;&#xA;&lt;p&gt;SAP documents &lt;a href=&#34;https://architecture.learning.sap.com/docs/ref-arch/137800#pattern-2-custom-mcp-server-on-sap-btp&#34;&gt;Pattern 2: Custom MCP Server on SAP BTP&lt;/a&gt; for organizations building and operating their own server. Its guidance covers authentication, access control, backend API quotas, and reliable operation.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;    &lt;img loading=&#34;lazy&#34; src=&#34;images/sap-custom-mcp-reference-architecture.jpg&#34;&#xA;         alt=&#34;SAP Architecture Center diagram showing a custom MCP server inside the SAP BTP subaccount, connected to external AI clients and SAP solutions, with identity trust shown separately.&#34; width=&#34;940&#34;/&gt; &lt;figcaption&gt;&#xA;            &lt;p&gt;SAP&amp;rsquo;s reference architecture. The &lt;strong&gt;Custom MCP Server&lt;/strong&gt; box inside BTP is the part this article builds on. Screenshot captured on 22 October 2026; diagram dated 8 June 2026. Source: &lt;a href=&#34;https://architecture.learning.sap.com/docs/ref-arch/137800#architecture&#34;&gt;SAP Architecture Center&lt;/a&gt;, © SAP SE or an SAP affiliate company and contributors (&lt;a href=&#34;https://github.com/SAP/architecture-center#Apache-2.0-1-ov-file&#34;&gt;Apache 2.0&lt;/a&gt;).&lt;/p&gt;&#xA;        &lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;xsuaa-auth supplies reusable authentication components for this architecture:&lt;/strong&gt; XSUAA sign-in, token validation, and helpers for destination-based user propagation. Your team defines the business tools and their permissions.&lt;/p&gt;&#xA;&lt;p&gt;The complete design also needs input validation, monitoring, and credential management. SAP calls for identifying the calling agent, retaining the human user&amp;rsquo;s context, and narrowing downstream credentials to the tool&amp;rsquo;s needs. User authentication alone does not establish all of those properties; the library does not certify a finished server.&lt;/p&gt;&#xA;&lt;p&gt;For spreadsheet lookups, enforce per-user limits and a shared request budget aligned with the backend API&amp;rsquo;s quota. Count retries and traffic across server instances. Your application or infrastructure owns these controls.&lt;/p&gt;&#xA;&lt;p&gt;SAP also describes &lt;a href=&#34;https://architecture.learning.sap.com/docs/ref-arch/137800#mcp-gateway-in-sap-integration-suite&#34;&gt;MCP Gateway in Integration Suite&lt;/a&gt; for managed governance. With a custom deployment, your organization owns the controls and must verify API use against SAP&amp;rsquo;s &lt;a href=&#34;https://help.sap.com/doc/sap-api-policy/latest/en-US/API_Policy_latest.pdf&#34;&gt;API Policy&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-using-the-connector-would-feel-like&#34;&gt;What using the connector would feel like&lt;/h2&gt;&#xA;&lt;p&gt;Your IT team deploys a shared server. You select the connector provided by your organization, sign in with your own work account, and request information. Colleagues use the same endpoint with their own permissions.&lt;/p&gt;&#xA;&lt;p&gt;The business-partner tool could return this small result:&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Field&lt;/th&gt;&#xA;          &lt;th&gt;Illustrative result&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Business partner&lt;/td&gt;&#xA;          &lt;td&gt;1000001&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Name&lt;/td&gt;&#xA;          &lt;td&gt;Demo Industrial Components&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Category&lt;/td&gt;&#xA;          &lt;td&gt;Organization&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Source&lt;/td&gt;&#xA;          &lt;td&gt;S4-DEMO&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Retrieved&lt;/td&gt;&#xA;          &lt;td&gt;21 October 2026, 12:00 UTC&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;These values are synthetic. The response gives the assistant enough information for the comparison and a source you can check, without retrieving unrelated addresses, contacts, or bank details.&lt;/p&gt;&#xA;&lt;p&gt;This tool only reads data. The server must enforce that boundary even when a prompt asks for changes. Write operations would need separate validation and permissions.&lt;/p&gt;&#xA;&lt;p&gt;Limiting the response also limits what enters the conversation. SAP documents that JWD sends conversation context to AI models through SAP AI Core in its &lt;a href=&#34;https://help.sap.com/docs/JOULE_WORK_DESKTOP/3fec5cf19c7040baa71e42a88099180e/5adde9df7ec7474bb7e406b04d39a2d2.html?locale=en-US&#34;&gt;security and data privacy guide&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;your-sap-permissions-should-travel-with-the-request&#34;&gt;Your SAP permissions should travel with the request&lt;/h2&gt;&#xA;&lt;p&gt;The important part is &lt;strong&gt;whose access SAP checks&lt;/strong&gt;. This diagram shows where the library fits:&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;    &lt;img loading=&#34;lazy&#34; src=&#34;images/xsuaa-auth-btp-flow.svg&#34;&#xA;         alt=&#34;xsuaa-auth runs inside the custom MCP server on SAP BTP. It connects OAuth sign-in to XSUAA, validates the user&amp;#39;s token, and provides destination helpers. The application&amp;#39;s tool code calls SAP with destination credentials, and SAP checks the mapped user&amp;#39;s permissions.&#34; width=&#34;1000&#34;/&gt; &lt;figcaption&gt;&#xA;            &lt;p&gt;Simplified authentication and connectivity view. Green boxes are library code; blue boxes are BTP services. OAuth browser redirects and the on-premise network path are omitted.&lt;/p&gt;&#xA;        &lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;After browser sign-in, JWD sends authenticated requests to the MCP server. XSUAA issues the token; xsuaa-auth validates it. Configured to require a user, the server checks that user&amp;rsquo;s context and the permission needed for the tool.&lt;/p&gt;&#xA;&lt;p&gt;A &lt;strong&gt;destination&lt;/strong&gt; is the centrally configured connection to a target system, including its authentication method. The library&amp;rsquo;s BTP helpers resolve it using the verified user&amp;rsquo;s context and return authentication material. Your application&amp;rsquo;s HTTP client applies those credentials and calls SAP.&lt;/p&gt;&#xA;&lt;p&gt;The configured exchange, trust, and user mapping determine the effective backend user. On-premise connections can also require Connectivity Service and Cloud Connector, omitted from the diagram. &lt;strong&gt;Principal propagation&lt;/strong&gt; preserves the user&amp;rsquo;s identity through a supported flow; it does not mean forwarding the incoming MCP token unchanged to every backend.&lt;/p&gt;&#xA;&lt;p&gt;Two permission checks matter: the MCP server decides whether you may use the tool, and SAP decides whether your mapped user may read the business data. If you can read a business partner but a colleague cannot, the connector should preserve that difference. A successful login must not route both users through a shared account with broader permissions.&lt;/p&gt;&#xA;&lt;p&gt;For users, the experience is browser sign-in followed by a permitted result or a clear access-denied response. No SAP password belongs in the conversation.&lt;/p&gt;&#xA;&lt;h2 id=&#34;why-i-built-xsuaa-auth&#34;&gt;Why I built xsuaa-auth&lt;/h2&gt;&#xA;&lt;p&gt;I extracted xsuaa-auth from ARC-1&amp;rsquo;s authentication stack so developers could reuse OAuth sign-in, token validation, and user-context handling across MCP servers.&lt;/p&gt;&#xA;&lt;p&gt;The package supports &lt;strong&gt;Node.js servers using Express and the TypeScript MCP SDK&lt;/strong&gt;. Its &lt;a href=&#34;https://github.com/arc-mcp/xsuaa-auth#readme&#34;&gt;documentation&lt;/a&gt; covers the authentication APIs and separate BTP destination helpers. Your application still supplies the MCP transport, business tools, permission checks, HTTP client, and request limits.&lt;/p&gt;&#xA;&lt;p&gt;The authentication layer also works for tools that expose internal knowledge, document lookups, or non-SAP APIs. XSUAA governs access to the MCP service; each downstream application applies its own authentication and permissions. Preserving the individual user all the way to that application requires a supported identity flow there too.&lt;/p&gt;&#xA;&lt;h2 id=&#34;mcp-servers-already-using-xsuaa-auth&#34;&gt;MCP servers already using xsuaa-auth&lt;/h2&gt;&#xA;&lt;p&gt;These public projects declare xsuaa-auth as a dependency and integrate it into their server code:&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;MCP server&lt;/th&gt;&#xA;          &lt;th&gt;What it helps with&lt;/th&gt;&#xA;          &lt;th&gt;Where xsuaa-auth is used&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/arc-mcp/arc-1&#34;&gt;ARC-1&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;ABAP development and investigation&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/arc-mcp/arc-1/blob/main/src/server/http.ts&#34;&gt;OAuth and token validation&lt;/a&gt;, alongside BTP connectivity helpers&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/dnic-dev/bw-modeling-mcp&#34;&gt;BW Modeling MCP&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;SAP BW/4HANA modeling and analysis&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/dnic-dev/bw-modeling-mcp/blob/main/src/http.ts&#34;&gt;HTTP authentication&lt;/a&gt; and destination-based connections, with principal propagation as a configured option&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/consetto/calmcp&#34;&gt;calmcp&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;SAP Cloud ALM projects, tasks, and analytics&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/consetto/calmcp/blob/main/src/transport/http.ts&#34;&gt;Authentication for its remote HTTP transport&lt;/a&gt; through the library&amp;rsquo;s setup function&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/ClementRingot/LISA&#34;&gt;LISA&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Reading and maintaining SAP object translations&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/ClementRingot/LISA/blob/main/packages/server/src/server/http.ts&#34;&gt;OAuth and token verification&lt;/a&gt; in its standalone server, plus BTP destination helpers&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/ClementRingot/ROSA&#34;&gt;ROSA&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Finding released SAP objects and alternatives for ABAP Cloud&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/ClementRingot/ROSA/blob/main/src/middleware/oauth.ts&#34;&gt;Optional XSUAA/OIDC authentication&lt;/a&gt; for its hosted service&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;That is the reuse I wanted: different tools, with a shared authentication foundation. I checked these integrations on 21 October 2026. Deployment options and downstream identities differ: package adoption alone does not establish per-user backend access or verified JWD compatibility.&lt;/p&gt;&#xA;&lt;h2 id=&#34;central-administration-on-btp-individual-access-for-users&#34;&gt;Central administration on BTP, individual access for users&lt;/h2&gt;&#xA;&lt;p&gt;A shared MCP server lets administrators manage deployment, destinations, and application access centrally. Users connect with their own identity without operating a server or configuring backend credentials themselves.&lt;/p&gt;&#xA;&lt;p&gt;Developers define application permissions, such as access to a read-only lookup. Administrators group them into &lt;strong&gt;BTP role collections&lt;/strong&gt; and assign them to users or identity-provider groups. The server enforces the corresponding scopes. SAP explains &lt;a href=&#34;https://help.sap.com/docs/btp/sap-business-technology-platform/assigning-role-collections-to-users-or-user-groups?locale=en-us&#34;&gt;role-collection assignment&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;For example, a customer-service group could receive access to the business-partner tool. Knowing its URL would not grant access: callers still need the application permission and the appropriate SAP authorization.&lt;/p&gt;&#xA;&lt;p&gt;JWD&amp;rsquo;s &lt;strong&gt;Admin-Managed connectors&lt;/strong&gt; let organizations provide the connection centrally; see its &lt;a href=&#34;https://help.sap.com/docs/JOULE_WORK_DESKTOP/3fec5cf19c7040baa71e42a88099180e/8c11ae6508de4b9ea9bea100e106ecfd.html?locale=en-US#managing-connectors&#34;&gt;connector guide&lt;/a&gt;. BTP governs service access. JWD and your organization&amp;rsquo;s client policies govern which connectors users may add or use. xsuaa-auth supplies server authentication, not desktop-wide connector restrictions.&lt;/p&gt;&#xA;&lt;h2 id=&#34;which-sap-systems-can-be-connected&#34;&gt;Which SAP systems can be connected&lt;/h2&gt;&#xA;&lt;p&gt;The API and identity setup depend on the target:&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;SAP landscape&lt;/th&gt;&#xA;          &lt;th&gt;What your team needs to establish&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;ECC&lt;/td&gt;&#xA;          &lt;td&gt;A suitable API for the release, plus the connection and user mapping, often through Cloud Connector&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;S/4HANA on-premise or Private Edition&lt;/td&gt;&#xA;          &lt;td&gt;The business API and, for the Cloud Connector route, principal propagation and backend trust&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;SAP BTP applications and ABAP environment&lt;/td&gt;&#xA;          &lt;td&gt;The authentication exchange supported by the target, its trust configuration, and the user&amp;rsquo;s roles&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;S/4HANA Cloud Public Edition&lt;/td&gt;&#xA;          &lt;td&gt;An API and communication scenario that support the intended business-user access&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;SAP&amp;rsquo;s &lt;a href=&#34;https://api.sap.com/api/API_BUSINESS_PARTNER/overview&#34;&gt;Business Partner A2X API&lt;/a&gt; is a starting point for this example on a suitable S/4HANA system, not a universal recipe for every landscape.&lt;/p&gt;&#xA;&lt;p&gt;Choose an API that answers the business question and supports the intended user&amp;rsquo;s access before implementing the connector.&lt;/p&gt;&#xA;&lt;h2 id=&#34;a-starting-point-for-developers&#34;&gt;A starting point for developers&lt;/h2&gt;&#xA;&lt;p&gt;Start with &lt;strong&gt;one tool, one destination, and two test users&lt;/strong&gt;. Prove an allowed read and a denied read before expanding:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Expose a real MCP endpoint.&lt;/strong&gt; Use the MCP SDK&amp;rsquo;s Streamable HTTP transport for the remote server. The library&amp;rsquo;s Express example demonstrates authentication with a JSON stub; it is not a complete JWD connector.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Require a user and the tool&amp;rsquo;s permission.&lt;/strong&gt; Compose &lt;code&gt;createXsuaaTokenVerifier&lt;/code&gt; with &lt;code&gt;requireUserToken: true&lt;/code&gt; and require your local scope through bearer middleware. In the reviewed version, &lt;code&gt;setupHttpAuth&lt;/code&gt; does not expose that user-only option. See the &lt;a href=&#34;https://github.com/arc-mcp/xsuaa-auth#verified-user-attributes-optional-building-block&#34;&gt;verified-user documentation&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Resolve the destination with the verified user&amp;rsquo;s token.&lt;/strong&gt; &lt;code&gt;lookupDestinationWithUserToken&lt;/code&gt; supplies authentication material for the connection. Your HTTP client applies it and makes the SAP request. Keep credentials and cached results separated by tenant, user, and target. See the &lt;a href=&#34;https://github.com/arc-mcp/xsuaa-auth#principal-propagation-btp&#34;&gt;destination documentation&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Put limits around the work.&lt;/strong&gt; Enforce a per-user allowance, a shared budget for actual API requests, bounded concurrency, and timeouts. These controls belong to your application or its managed infrastructure.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Test the entire path.&lt;/strong&gt; Verify JWD sign-in, the effective SAP user, denied access, concurrent users, and throttling across multiple server instances. Record the exact package, SDK, desktop, and backend versions.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;For the two-user test, inspect the effective SAP user in backend evidence and compare the returned data. A successful browser login proves only the first part of the connection; it does not prove that the backend received the intended identity.&lt;/p&gt;&#xA;&lt;p&gt;For developers and coding agents, keep the contract explicit: one identifier in, documented fields out, and defined behavior for denied access or backend failure.&lt;/p&gt;&#xA;&lt;h2 id=&#34;connect-it-to-jwd-with-oauth&#34;&gt;Connect it to JWD with OAuth&lt;/h2&gt;&#xA;&lt;p&gt;My earlier post, &lt;a href=&#34;https://blog.zeis.de/posts/connect-joule-work-desktop-to-sap/#how-to-connect-joule-work-desktop-to-sap-with-arc-1&#34;&gt;How to Connect Joule Work Desktop to SAP Systems&lt;/a&gt;, walks through connector setup and browser OAuth sign-in using ARC-1. A custom server built with xsuaa-auth follows the same kind of connection experience.&lt;/p&gt;&#xA;&lt;p&gt;Use your organization&amp;rsquo;s provided connector, or open &lt;strong&gt;Extensions → New → Add Connector&lt;/strong&gt;, enter the deployed URL, and choose the OAuth option specified by your administrator. Sign in with your work account, then select the connector in a conversation. SAP&amp;rsquo;s &lt;a href=&#34;https://help.sap.com/docs/JOULE_WORK_DESKTOP/3fec5cf19c7040baa71e42a88099180e/8c11ae6508de4b9ea9bea100e106ecfd.html?locale=en-US&#34;&gt;connector guide&lt;/a&gt; covers the options.&lt;/p&gt;&#xA;&lt;p&gt;Start with a recurring task that sends you from a spreadsheet into SAP. A focused tool can bring that information into JWD, with the service and access managed centrally.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Implementation status: this is a proposed connector design; the complete business example and live JWD-to-SAP validation remain pending. SAP&amp;rsquo;s desktop help carries an Early Adopter Care notice as of 21 October 2026. Availability depends on your organization.&lt;/em&gt;&lt;/p&gt;&#xA;</description>
    </item>
  </channel>
</rss>
