Course: build a secure AI-agent platform from tool schema to supply-chain evidenceCourse: build a secure AI-agent platform from tool schema to supply-chain evidence

Course: build a secure AI-agent platform from tool schema to supply-chain evidence addresses one concrete problem: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. The guide works from the actual objects — OpenAI Agents SDK, MCP, OAuth, SBOM, SLSA — and aims for a verifiable decision rather than a generic pattern.

The concrete problem: OpenAI Agents SDK meets MCP

The starting point is not a feature; it is an observable decision boundary.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c11 starts at OpenAI Agents SDK and treats MCP as an explicit boundary rather than an implicit assumption. The first control requires OAuth to emit an observable result before SBOM can trigger the intended effect around SLSA. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns OpenAI Agents SDK into a reviewable decision point with a named input and a retained output. To test MCP, fixture course-secure-ai-agent-platform-c11 contains both an allowed state and a rejected state; rejection must occur before any change attributed to OAuth. Operations then observes the transition between OAuth and SBOM, while security checks that SLSA receives neither implicit authority nor unnecessary data.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c12 starts at MCP and treats OAuth as an explicit boundary rather than an implicit assumption. The first control requires SBOM to emit an observable result before SLSA can trigger the intended effect around OpenAI Agents SDK. If the SLSA verification fails, rollback restores the configuration around OpenAI Agents SDK, replays course-secure-ai-agent-platform-c12, and compares the new state with the control evidence from MCP. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to OAuth, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by SBOM and OpenAI Agents SDK: anything not demonstrated by scenario course-secure-ai-agent-platform-c12 is labeled as a limitation or inference, never promoted to fact.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c13 starts at OAuth and treats SBOM as an explicit boundary rather than an implicit assumption. The first control requires SLSA to emit an observable result before OpenAI Agents SDK can trigger the intended effect around MCP. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns OAuth into a reviewable decision point with a named input and a retained output. To test SBOM, fixture course-secure-ai-agent-platform-c13 contains both an allowed state and a rejected state; rejection must occur before any change attributed to SLSA. Operations then observes the transition between SLSA and OpenAI Agents SDK, while security checks that MCP receives neither implicit authority nor unnecessary data.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c14 starts at SBOM and treats SLSA as an explicit boundary rather than an implicit assumption. The first control requires OpenAI Agents SDK to emit an observable result before MCP can trigger the intended effect around OAuth. If the MCP verification fails, rollback restores the configuration around OAuth, replays course-secure-ai-agent-platform-c14, and compares the new state with the control evidence from SBOM. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to SLSA, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by OpenAI Agents SDK and OAuth: anything not demonstrated by scenario course-secure-ai-agent-platform-c14 is labeled as a limitation or inference, never promoted to fact.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c15 starts at SLSA and treats OpenAI Agents SDK as an explicit boundary rather than an implicit assumption. The first control requires MCP to emit an observable result before OAuth can trigger the intended effect around SBOM. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns SLSA into a reviewable decision point with a named input and a retained output. To test OpenAI Agents SDK, fixture course-secure-ai-agent-platform-c15 contains both an allowed state and a rejected state; rejection must occur before any change attributed to MCP. Operations then observes the transition between MCP and OAuth, while security checks that SBOM receives neither implicit authority nor unnecessary data.

Technical state of OpenAI Agents SDK for Course: build a secure AI-agent platform from tool schema to supply-chain evidence
Context capture for The concrete problem: OpenAI Agents SDK meets MCP: locally produced state for control course-secure-ai-agent-platform.
Evidence point: GitHub documents that dependency review exposes added, removed and updated dependencies together with vulnerability context before changes are merged. This source anchors the concrete problem: openai agents sdk meets mcp but does not replace local verification. [S1]

Trust boundaries around OAuth

A production design should make it clear who decides, what evidence is available, and what can be rolled back.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c21 starts at MCP and treats OAuth as an explicit boundary rather than an implicit assumption. The first control requires SBOM to emit an observable result before SLSA can trigger the intended effect around OpenAI Agents SDK. The conclusion stays bounded by SBOM and OpenAI Agents SDK: anything not demonstrated by scenario course-secure-ai-agent-platform-c21 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns MCP into a reviewable decision point with a named input and a retained output. To test OAuth, fixture course-secure-ai-agent-platform-c21 contains both an allowed state and a rejected state; rejection must occur before any change attributed to SBOM.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c22 starts at OAuth and treats SBOM as an explicit boundary rather than an implicit assumption. The first control requires SLSA to emit an observable result before OpenAI Agents SDK can trigger the intended effect around MCP. Operations then observes the transition between SLSA and OpenAI Agents SDK, while security checks that MCP receives neither implicit authority nor unnecessary data. If the OpenAI Agents SDK verification fails, rollback restores the configuration around MCP, replays course-secure-ai-agent-platform-c22, and compares the new state with the control evidence from OAuth. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to SBOM, a concrete condition, and evidence instead of a generic assurance.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c23 starts at SBOM and treats SLSA as an explicit boundary rather than an implicit assumption. The first control requires OpenAI Agents SDK to emit an observable result before MCP can trigger the intended effect around OAuth. The conclusion stays bounded by OpenAI Agents SDK and OAuth: anything not demonstrated by scenario course-secure-ai-agent-platform-c23 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns SBOM into a reviewable decision point with a named input and a retained output. To test SLSA, fixture course-secure-ai-agent-platform-c23 contains both an allowed state and a rejected state; rejection must occur before any change attributed to OpenAI Agents SDK.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c24 starts at SLSA and treats OpenAI Agents SDK as an explicit boundary rather than an implicit assumption. The first control requires MCP to emit an observable result before OAuth can trigger the intended effect around SBOM. Operations then observes the transition between MCP and OAuth, while security checks that SBOM receives neither implicit authority nor unnecessary data. If the OAuth verification fails, rollback restores the configuration around SBOM, replays course-secure-ai-agent-platform-c24, and compares the new state with the control evidence from SLSA. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to OpenAI Agents SDK, a concrete condition, and evidence instead of a generic assurance.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c25 starts at OpenAI Agents SDK and treats MCP as an explicit boundary rather than an implicit assumption. The first control requires OAuth to emit an observable result before SBOM can trigger the intended effect around SLSA. The conclusion stays bounded by OAuth and SLSA: anything not demonstrated by scenario course-secure-ai-agent-platform-c25 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns OpenAI Agents SDK into a reviewable decision point with a named input and a retained output. To test MCP, fixture course-secure-ai-agent-platform-c25 contains both an allowed state and a rejected state; rejection must occur before any change attributed to OAuth.

Technical state of MCP for Course: build a secure AI-agent platform from tool schema to supply-chain evidence
Context capture for Trust boundaries around OAuth: locally produced state for control course-secure-ai-agent-platform.
Evidence point: GitHub documents that gitHub supply-chain controls combine dependency visibility, vulnerability alerts, automated updates and review workflows. This source anchors trust boundaries around oauth but does not replace local verification. [S2]

Build the decision path with SBOM

The hard part appears when the happy path meets authorization, failures, and operational constraints.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c31 starts at OAuth and treats SBOM as an explicit boundary rather than an implicit assumption. The first control requires SLSA to emit an observable result before OpenAI Agents SDK can trigger the intended effect around MCP. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to SBOM, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by SLSA and MCP: anything not demonstrated by scenario course-secure-ai-agent-platform-c31 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns OAuth into a reviewable decision point with a named input and a retained output.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c32 starts at SBOM and treats SLSA as an explicit boundary rather than an implicit assumption. The first control requires OpenAI Agents SDK to emit an observable result before MCP can trigger the intended effect around OAuth. To test SLSA, fixture course-secure-ai-agent-platform-c32 contains both an allowed state and a rejected state; rejection must occur before any change attributed to OpenAI Agents SDK. Operations then observes the transition between OpenAI Agents SDK and MCP, while security checks that OAuth receives neither implicit authority nor unnecessary data. If the MCP verification fails, rollback restores the configuration around OAuth, replays course-secure-ai-agent-platform-c32, and compares the new state with the control evidence from SBOM.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c33 starts at SLSA and treats OpenAI Agents SDK as an explicit boundary rather than an implicit assumption. The first control requires MCP to emit an observable result before OAuth can trigger the intended effect around SBOM. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to OpenAI Agents SDK, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by MCP and SBOM: anything not demonstrated by scenario course-secure-ai-agent-platform-c33 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns SLSA into a reviewable decision point with a named input and a retained output.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c34 starts at OpenAI Agents SDK and treats MCP as an explicit boundary rather than an implicit assumption. The first control requires OAuth to emit an observable result before SBOM can trigger the intended effect around SLSA. To test MCP, fixture course-secure-ai-agent-platform-c34 contains both an allowed state and a rejected state; rejection must occur before any change attributed to OAuth. Operations then observes the transition between OAuth and SBOM, while security checks that SLSA receives neither implicit authority nor unnecessary data. If the SBOM verification fails, rollback restores the configuration around SLSA, replays course-secure-ai-agent-platform-c34, and compares the new state with the control evidence from OpenAI Agents SDK.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c35 starts at MCP and treats OAuth as an explicit boundary rather than an implicit assumption. The first control requires SBOM to emit an observable result before SLSA can trigger the intended effect around OpenAI Agents SDK. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to OAuth, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by SBOM and OpenAI Agents SDK: anything not demonstrated by scenario course-secure-ai-agent-platform-c35 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns MCP into a reviewable decision point with a named input and a retained output.

Technical state of OAuth for Course: build a secure AI-agent platform from tool schema to supply-chain evidence
Context capture for Build the decision path with SBOM: locally produced state for control course-secure-ai-agent-platform.

8 exercises with corrections

  1. Exercise 1: identify the missing control between OpenAI Agents SDK and MCP. Correction: place an explicit rule, rejection behavior, and evidence before the effect.
  2. Exercise 2: identify the missing control between MCP and OAuth. Correction: place an explicit rule, rejection behavior, and evidence before the effect.
  3. Exercise 3: identify the missing control between OAuth and SBOM. Correction: place an explicit rule, rejection behavior, and evidence before the effect.
  4. Exercise 4: identify the missing control between SBOM and SLSA. Correction: place an explicit rule, rejection behavior, and evidence before the effect.
  5. Exercise 5: identify the missing control between SLSA and OpenAI Agents SDK. Correction: place an explicit rule, rejection behavior, and evidence before the effect.
  6. Exercise 6: identify the missing control between OpenAI Agents SDK and MCP. Correction: place an explicit rule, rejection behavior, and evidence before the effect.
  7. Exercise 7: identify the missing control between MCP and OAuth. Correction: place an explicit rule, rejection behavior, and evidence before the effect.
  8. Exercise 8: identify the missing control between OAuth and SBOM. Correction: place an explicit rule, rejection behavior, and evidence before the effect.

3 labs

  1. Lab 1: build fixture course-secure-ai-agent-platform-lab-1, trigger a controlled failure, repair it, and document rollback.
  2. Lab 2: build fixture course-secure-ai-agent-platform-lab-2, trigger a controlled failure, repair it, and document rollback.
  3. Lab 3: build fixture course-secure-ai-agent-platform-lab-3, trigger a controlled failure, repair it, and document rollback.

Capstone: integrate the studied controls into one pipeline, produce evidence, and defend the trade-offs in a technical review.

Evidence point: IETF / RFC Editor documents that rFC 9700 updates OAuth 2.0 security practice, including exact redirect URI matching and avoiding open redirectors and insecure legacy patterns. This source anchors build the decision path with sbom but does not replace local verification. [S3]

Verify SLSA with observable evidence

A robust implementation separates what the model proposes from what the application authorizes and verifies.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c41 starts at SBOM and treats SLSA as an explicit boundary rather than an implicit assumption. The first control requires OpenAI Agents SDK to emit an observable result before MCP can trigger the intended effect around OAuth. If the MCP verification fails, rollback restores the configuration around OAuth, replays course-secure-ai-agent-platform-c41, and compares the new state with the control evidence from SBOM. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to SLSA, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by OpenAI Agents SDK and OAuth: anything not demonstrated by scenario course-secure-ai-agent-platform-c41 is labeled as a limitation or inference, never promoted to fact.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c42 starts at SLSA and treats OpenAI Agents SDK as an explicit boundary rather than an implicit assumption. The first control requires MCP to emit an observable result before OAuth can trigger the intended effect around SBOM. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns SLSA into a reviewable decision point with a named input and a retained output. To test OpenAI Agents SDK, fixture course-secure-ai-agent-platform-c42 contains both an allowed state and a rejected state; rejection must occur before any change attributed to MCP. Operations then observes the transition between MCP and OAuth, while security checks that SBOM receives neither implicit authority nor unnecessary data.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c43 starts at OpenAI Agents SDK and treats MCP as an explicit boundary rather than an implicit assumption. The first control requires OAuth to emit an observable result before SBOM can trigger the intended effect around SLSA. If the SBOM verification fails, rollback restores the configuration around SLSA, replays course-secure-ai-agent-platform-c43, and compares the new state with the control evidence from OpenAI Agents SDK. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to MCP, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by OAuth and SLSA: anything not demonstrated by scenario course-secure-ai-agent-platform-c43 is labeled as a limitation or inference, never promoted to fact.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c44 starts at MCP and treats OAuth as an explicit boundary rather than an implicit assumption. The first control requires SBOM to emit an observable result before SLSA can trigger the intended effect around OpenAI Agents SDK. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns MCP into a reviewable decision point with a named input and a retained output. To test OAuth, fixture course-secure-ai-agent-platform-c44 contains both an allowed state and a rejected state; rejection must occur before any change attributed to SBOM. Operations then observes the transition between SBOM and SLSA, while security checks that OpenAI Agents SDK receives neither implicit authority nor unnecessary data.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c45 starts at OAuth and treats SBOM as an explicit boundary rather than an implicit assumption. The first control requires SLSA to emit an observable result before OpenAI Agents SDK can trigger the intended effect around MCP. If the OpenAI Agents SDK verification fails, rollback restores the configuration around MCP, replays course-secure-ai-agent-platform-c45, and compares the new state with the control evidence from OAuth. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to SBOM, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by SLSA and MCP: anything not demonstrated by scenario course-secure-ai-agent-platform-c45 is labeled as a limitation or inference, never promoted to fact.

Technical state of SBOM for Course: build a secure AI-agent platform from tool schema to supply-chain evidence
Context capture for Verify SLSA with observable evidence: locally produced state for control course-secure-ai-agent-platform.
Evidence point: Docker documents that docker can generate SPDX SBOM attestations during BuildKit builds and provides local inspection workflows. This source anchors verify slsa with observable evidence but does not replace local verification. [S4]

Failure modes, signals, and diagnosis

The starting point is not a feature; it is an observable decision boundary.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c51 starts at SLSA and treats OpenAI Agents SDK as an explicit boundary rather than an implicit assumption. The first control requires MCP to emit an observable result before OAuth can trigger the intended effect around SBOM. Operations then observes the transition between MCP and OAuth, while security checks that SBOM receives neither implicit authority nor unnecessary data. If the OAuth verification fails, rollback restores the configuration around SBOM, replays course-secure-ai-agent-platform-c51, and compares the new state with the control evidence from SLSA. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to OpenAI Agents SDK, a concrete condition, and evidence instead of a generic assurance.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c52 starts at OpenAI Agents SDK and treats MCP as an explicit boundary rather than an implicit assumption. The first control requires OAuth to emit an observable result before SBOM can trigger the intended effect around SLSA. The conclusion stays bounded by OAuth and SLSA: anything not demonstrated by scenario course-secure-ai-agent-platform-c52 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns OpenAI Agents SDK into a reviewable decision point with a named input and a retained output. To test MCP, fixture course-secure-ai-agent-platform-c52 contains both an allowed state and a rejected state; rejection must occur before any change attributed to OAuth.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c53 starts at MCP and treats OAuth as an explicit boundary rather than an implicit assumption. The first control requires SBOM to emit an observable result before SLSA can trigger the intended effect around OpenAI Agents SDK. Operations then observes the transition between SBOM and SLSA, while security checks that OpenAI Agents SDK receives neither implicit authority nor unnecessary data. If the SLSA verification fails, rollback restores the configuration around OpenAI Agents SDK, replays course-secure-ai-agent-platform-c53, and compares the new state with the control evidence from MCP. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to OAuth, a concrete condition, and evidence instead of a generic assurance.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c54 starts at OAuth and treats SBOM as an explicit boundary rather than an implicit assumption. The first control requires SLSA to emit an observable result before OpenAI Agents SDK can trigger the intended effect around MCP. The conclusion stays bounded by SLSA and MCP: anything not demonstrated by scenario course-secure-ai-agent-platform-c54 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns OAuth into a reviewable decision point with a named input and a retained output. To test SBOM, fixture course-secure-ai-agent-platform-c54 contains both an allowed state and a rejected state; rejection must occur before any change attributed to SLSA.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c55 starts at SBOM and treats SLSA as an explicit boundary rather than an implicit assumption. The first control requires OpenAI Agents SDK to emit an observable result before MCP can trigger the intended effect around OAuth. Operations then observes the transition between OpenAI Agents SDK and MCP, while security checks that OAuth receives neither implicit authority nor unnecessary data. If the MCP verification fails, rollback restores the configuration around OAuth, replays course-secure-ai-agent-platform-c55, and compares the new state with the control evidence from SBOM. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to SLSA, a concrete condition, and evidence instead of a generic assurance.

Technical state of SLSA for Course: build a secure AI-agent platform from tool schema to supply-chain evidence
Context capture for Failure modes, signals, and diagnosis: locally produced state for control course-secure-ai-agent-platform.
Evidence point: OWASP documents that oWASP REST guidance emphasizes HTTPS, explicit access control and careful handling of tokens, methods, inputs and security headers. This source anchors failure modes, signals, and diagnosis but does not replace local verification. [S5]

Progressive rollout and rollback

A production design should make it clear who decides, what evidence is available, and what can be rolled back.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c61 starts at OpenAI Agents SDK and treats MCP as an explicit boundary rather than an implicit assumption. The first control requires OAuth to emit an observable result before SBOM can trigger the intended effect around SLSA. To test MCP, fixture course-secure-ai-agent-platform-c61 contains both an allowed state and a rejected state; rejection must occur before any change attributed to OAuth. Operations then observes the transition between OAuth and SBOM, while security checks that SLSA receives neither implicit authority nor unnecessary data. If the SBOM verification fails, rollback restores the configuration around SLSA, replays course-secure-ai-agent-platform-c61, and compares the new state with the control evidence from OpenAI Agents SDK.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c62 starts at MCP and treats OAuth as an explicit boundary rather than an implicit assumption. The first control requires SBOM to emit an observable result before SLSA can trigger the intended effect around OpenAI Agents SDK. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to OAuth, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by SBOM and OpenAI Agents SDK: anything not demonstrated by scenario course-secure-ai-agent-platform-c62 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns MCP into a reviewable decision point with a named input and a retained output.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c63 starts at OAuth and treats SBOM as an explicit boundary rather than an implicit assumption. The first control requires SLSA to emit an observable result before OpenAI Agents SDK can trigger the intended effect around MCP. To test SBOM, fixture course-secure-ai-agent-platform-c63 contains both an allowed state and a rejected state; rejection must occur before any change attributed to SLSA. Operations then observes the transition between SLSA and OpenAI Agents SDK, while security checks that MCP receives neither implicit authority nor unnecessary data. If the OpenAI Agents SDK verification fails, rollback restores the configuration around MCP, replays course-secure-ai-agent-platform-c63, and compares the new state with the control evidence from OAuth.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c64 starts at SBOM and treats SLSA as an explicit boundary rather than an implicit assumption. The first control requires OpenAI Agents SDK to emit an observable result before MCP can trigger the intended effect around OAuth. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to SLSA, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by OpenAI Agents SDK and OAuth: anything not demonstrated by scenario course-secure-ai-agent-platform-c64 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns SBOM into a reviewable decision point with a named input and a retained output.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c65 starts at SLSA and treats OpenAI Agents SDK as an explicit boundary rather than an implicit assumption. The first control requires MCP to emit an observable result before OAuth can trigger the intended effect around SBOM. To test OpenAI Agents SDK, fixture course-secure-ai-agent-platform-c65 contains both an allowed state and a rejected state; rejection must occur before any change attributed to MCP. Operations then observes the transition between MCP and OAuth, while security checks that SBOM receives neither implicit authority nor unnecessary data. If the OAuth verification fails, rollback restores the configuration around SBOM, replays course-secure-ai-agent-platform-c65, and compares the new state with the control evidence from SLSA.

Technical state of OpenAI Agents SDK for Course: build a secure AI-agent platform from tool schema to supply-chain evidence
Context capture for Progressive rollout and rollback: locally produced state for control course-secure-ai-agent-platform.
Evidence point: OpenAI documents that tracing records model generations, tool calls, handoffs, guardrails and custom events, and sensitive payload capture can be disabled. This source anchors progressive rollout and rollback but does not replace local verification. [S6]

Production decision criteria

The hard part appears when the happy path meets authorization, failures, and operational constraints.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c71 starts at MCP and treats OAuth as an explicit boundary rather than an implicit assumption. The first control requires SBOM to emit an observable result before SLSA can trigger the intended effect around OpenAI Agents SDK. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns MCP into a reviewable decision point with a named input and a retained output. To test OAuth, fixture course-secure-ai-agent-platform-c71 contains both an allowed state and a rejected state; rejection must occur before any change attributed to SBOM. Operations then observes the transition between SBOM and SLSA, while security checks that OpenAI Agents SDK receives neither implicit authority nor unnecessary data.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c72 starts at OAuth and treats SBOM as an explicit boundary rather than an implicit assumption. The first control requires SLSA to emit an observable result before OpenAI Agents SDK can trigger the intended effect around MCP. If the OpenAI Agents SDK verification fails, rollback restores the configuration around MCP, replays course-secure-ai-agent-platform-c72, and compares the new state with the control evidence from OAuth. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to SBOM, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by SLSA and MCP: anything not demonstrated by scenario course-secure-ai-agent-platform-c72 is labeled as a limitation or inference, never promoted to fact.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c73 starts at SBOM and treats SLSA as an explicit boundary rather than an implicit assumption. The first control requires OpenAI Agents SDK to emit an observable result before MCP can trigger the intended effect around OAuth. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns SBOM into a reviewable decision point with a named input and a retained output. To test SLSA, fixture course-secure-ai-agent-platform-c73 contains both an allowed state and a rejected state; rejection must occur before any change attributed to OpenAI Agents SDK. Operations then observes the transition between OpenAI Agents SDK and MCP, while security checks that OAuth receives neither implicit authority nor unnecessary data.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c74 starts at SLSA and treats OpenAI Agents SDK as an explicit boundary rather than an implicit assumption. The first control requires MCP to emit an observable result before OAuth can trigger the intended effect around SBOM. If the OAuth verification fails, rollback restores the configuration around SBOM, replays course-secure-ai-agent-platform-c74, and compares the new state with the control evidence from SLSA. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to OpenAI Agents SDK, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by MCP and SBOM: anything not demonstrated by scenario course-secure-ai-agent-platform-c74 is labeled as a limitation or inference, never promoted to fact.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c75 starts at OpenAI Agents SDK and treats MCP as an explicit boundary rather than an implicit assumption. The first control requires OAuth to emit an observable result before SBOM can trigger the intended effect around SLSA. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns OpenAI Agents SDK into a reviewable decision point with a named input and a retained output. To test MCP, fixture course-secure-ai-agent-platform-c75 contains both an allowed state and a rejected state; rejection must occur before any change attributed to OAuth. Operations then observes the transition between OAuth and SBOM, while security checks that SLSA receives neither implicit authority nor unnecessary data.

Evidence point: OpenAI documents that handoffs transfer the active conversation to a specialist agent and can filter or reshape the history passed to the destination. This source anchors production decision criteria but does not replace local verification. [S7]

Controls that remain after launch

A robust implementation separates what the model proposes from what the application authorizes and verifies.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c81 starts at OAuth and treats SBOM as an explicit boundary rather than an implicit assumption. The first control requires SLSA to emit an observable result before OpenAI Agents SDK can trigger the intended effect around MCP. The conclusion stays bounded by SLSA and MCP: anything not demonstrated by scenario course-secure-ai-agent-platform-c81 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns OAuth into a reviewable decision point with a named input and a retained output. To test SBOM, fixture course-secure-ai-agent-platform-c81 contains both an allowed state and a rejected state; rejection must occur before any change attributed to SLSA.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c82 starts at SBOM and treats SLSA as an explicit boundary rather than an implicit assumption. The first control requires OpenAI Agents SDK to emit an observable result before MCP can trigger the intended effect around OAuth. Operations then observes the transition between OpenAI Agents SDK and MCP, while security checks that OAuth receives neither implicit authority nor unnecessary data. If the MCP verification fails, rollback restores the configuration around OAuth, replays course-secure-ai-agent-platform-c82, and compares the new state with the control evidence from SBOM. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to SLSA, a concrete condition, and evidence instead of a generic assurance.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c83 starts at SLSA and treats OpenAI Agents SDK as an explicit boundary rather than an implicit assumption. The first control requires MCP to emit an observable result before OAuth can trigger the intended effect around SBOM. The conclusion stays bounded by MCP and SBOM: anything not demonstrated by scenario course-secure-ai-agent-platform-c83 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns SLSA into a reviewable decision point with a named input and a retained output. To test OpenAI Agents SDK, fixture course-secure-ai-agent-platform-c83 contains both an allowed state and a rejected state; rejection must occur before any change attributed to MCP.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c84 starts at OpenAI Agents SDK and treats MCP as an explicit boundary rather than an implicit assumption. The first control requires OAuth to emit an observable result before SBOM can trigger the intended effect around SLSA. Operations then observes the transition between OAuth and SBOM, while security checks that SLSA receives neither implicit authority nor unnecessary data. If the SBOM verification fails, rollback restores the configuration around SLSA, replays course-secure-ai-agent-platform-c84, and compares the new state with the control evidence from OpenAI Agents SDK. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to MCP, a concrete condition, and evidence instead of a generic assurance.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c85 starts at MCP and treats OAuth as an explicit boundary rather than an implicit assumption. The first control requires SBOM to emit an observable result before SLSA can trigger the intended effect around OpenAI Agents SDK. The conclusion stays bounded by SBOM and OpenAI Agents SDK: anything not demonstrated by scenario course-secure-ai-agent-platform-c85 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns MCP into a reviewable decision point with a named input and a retained output. To test OAuth, fixture course-secure-ai-agent-platform-c85 contains both an allowed state and a rejected state; rejection must occur before any change attributed to SBOM.

Evidence point: OpenAI documents that two common orchestration patterns are manager-controlled agents-as-tools and handoffs where a specialist becomes the active agent. This source anchors controls that remain after launch but does not replace local verification. [S8]

Guided exercises and explained corrections

The starting point is not a feature; it is an observable decision boundary.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c91 starts at SBOM and treats SLSA as an explicit boundary rather than an implicit assumption. The first control requires OpenAI Agents SDK to emit an observable result before MCP can trigger the intended effect around OAuth. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to SLSA, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by OpenAI Agents SDK and OAuth: anything not demonstrated by scenario course-secure-ai-agent-platform-c91 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns SBOM into a reviewable decision point with a named input and a retained output.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c92 starts at SLSA and treats OpenAI Agents SDK as an explicit boundary rather than an implicit assumption. The first control requires MCP to emit an observable result before OAuth can trigger the intended effect around SBOM. To test OpenAI Agents SDK, fixture course-secure-ai-agent-platform-c92 contains both an allowed state and a rejected state; rejection must occur before any change attributed to MCP. Operations then observes the transition between MCP and OAuth, while security checks that SBOM receives neither implicit authority nor unnecessary data. If the OAuth verification fails, rollback restores the configuration around SBOM, replays course-secure-ai-agent-platform-c92, and compares the new state with the control evidence from SLSA.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c93 starts at OpenAI Agents SDK and treats MCP as an explicit boundary rather than an implicit assumption. The first control requires OAuth to emit an observable result before SBOM can trigger the intended effect around SLSA. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to MCP, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by OAuth and SLSA: anything not demonstrated by scenario course-secure-ai-agent-platform-c93 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns OpenAI Agents SDK into a reviewable decision point with a named input and a retained output.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c94 starts at MCP and treats OAuth as an explicit boundary rather than an implicit assumption. The first control requires SBOM to emit an observable result before SLSA can trigger the intended effect around OpenAI Agents SDK. To test OAuth, fixture course-secure-ai-agent-platform-c94 contains both an allowed state and a rejected state; rejection must occur before any change attributed to SBOM. Operations then observes the transition between SBOM and SLSA, while security checks that OpenAI Agents SDK receives neither implicit authority nor unnecessary data. If the SLSA verification fails, rollback restores the configuration around OpenAI Agents SDK, replays course-secure-ai-agent-platform-c94, and compares the new state with the control evidence from MCP.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c95 starts at OAuth and treats SBOM as an explicit boundary rather than an implicit assumption. The first control requires SLSA to emit an observable result before OpenAI Agents SDK can trigger the intended effect around MCP. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to SBOM, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by SLSA and MCP: anything not demonstrated by scenario course-secure-ai-agent-platform-c95 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns OAuth into a reviewable decision point with a named input and a retained output.

Evidence point: OpenAI documents that run configuration controls model setup, guardrails, handoff behavior, tracing, tool execution and conversation state. This source anchors guided exercises and explained corrections but does not replace local verification. [S9]

Three progressive labs

A production design should make it clear who decides, what evidence is available, and what can be rolled back.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c101 starts at SLSA and treats OpenAI Agents SDK as an explicit boundary rather than an implicit assumption. The first control requires MCP to emit an observable result before OAuth can trigger the intended effect around SBOM. If the OAuth verification fails, rollback restores the configuration around SBOM, replays course-secure-ai-agent-platform-c101, and compares the new state with the control evidence from SLSA. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to OpenAI Agents SDK, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by MCP and SBOM: anything not demonstrated by scenario course-secure-ai-agent-platform-c101 is labeled as a limitation or inference, never promoted to fact.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c102 starts at OpenAI Agents SDK and treats MCP as an explicit boundary rather than an implicit assumption. The first control requires OAuth to emit an observable result before SBOM can trigger the intended effect around SLSA. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns OpenAI Agents SDK into a reviewable decision point with a named input and a retained output. To test MCP, fixture course-secure-ai-agent-platform-c102 contains both an allowed state and a rejected state; rejection must occur before any change attributed to OAuth. Operations then observes the transition between OAuth and SBOM, while security checks that SLSA receives neither implicit authority nor unnecessary data.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c103 starts at MCP and treats OAuth as an explicit boundary rather than an implicit assumption. The first control requires SBOM to emit an observable result before SLSA can trigger the intended effect around OpenAI Agents SDK. If the SLSA verification fails, rollback restores the configuration around OpenAI Agents SDK, replays course-secure-ai-agent-platform-c103, and compares the new state with the control evidence from MCP. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to OAuth, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by SBOM and OpenAI Agents SDK: anything not demonstrated by scenario course-secure-ai-agent-platform-c103 is labeled as a limitation or inference, never promoted to fact.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c104 starts at OAuth and treats SBOM as an explicit boundary rather than an implicit assumption. The first control requires SLSA to emit an observable result before OpenAI Agents SDK can trigger the intended effect around MCP. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns OAuth into a reviewable decision point with a named input and a retained output. To test SBOM, fixture course-secure-ai-agent-platform-c104 contains both an allowed state and a rejected state; rejection must occur before any change attributed to SLSA. Operations then observes the transition between SLSA and OpenAI Agents SDK, while security checks that MCP receives neither implicit authority nor unnecessary data.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c105 starts at SBOM and treats SLSA as an explicit boundary rather than an implicit assumption. The first control requires OpenAI Agents SDK to emit an observable result before MCP can trigger the intended effect around OAuth. If the MCP verification fails, rollback restores the configuration around OAuth, replays course-secure-ai-agent-platform-c105, and compares the new state with the control evidence from SBOM. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to SLSA, a concrete condition, and evidence instead of a generic assurance. The conclusion stays bounded by OpenAI Agents SDK and OAuth: anything not demonstrated by scenario course-secure-ai-agent-platform-c105 is labeled as a limitation or inference, never promoted to fact.

Evidence point: OpenAI documents that encryptedSession can wrap a session store with Fernet encryption, per-session HKDF-derived keys and TTL-based expiration. This source anchors three progressive labs but does not replace local verification. [S10]

Capstone project and assessment criteria

The hard part appears when the happy path meets authorization, failures, and operational constraints.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c111 starts at OpenAI Agents SDK and treats MCP as an explicit boundary rather than an implicit assumption. The first control requires OAuth to emit an observable result before SBOM can trigger the intended effect around SLSA. Operations then observes the transition between OAuth and SBOM, while security checks that SLSA receives neither implicit authority nor unnecessary data. If the SBOM verification fails, rollback restores the configuration around SLSA, replays course-secure-ai-agent-platform-c111, and compares the new state with the control evidence from OpenAI Agents SDK. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to MCP, a concrete condition, and evidence instead of a generic assurance.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c112 starts at MCP and treats OAuth as an explicit boundary rather than an implicit assumption. The first control requires SBOM to emit an observable result before SLSA can trigger the intended effect around OpenAI Agents SDK. The conclusion stays bounded by SBOM and OpenAI Agents SDK: anything not demonstrated by scenario course-secure-ai-agent-platform-c112 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns MCP into a reviewable decision point with a named input and a retained output. To test OAuth, fixture course-secure-ai-agent-platform-c112 contains both an allowed state and a rejected state; rejection must occur before any change attributed to SBOM.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c113 starts at OAuth and treats SBOM as an explicit boundary rather than an implicit assumption. The first control requires SLSA to emit an observable result before OpenAI Agents SDK can trigger the intended effect around MCP. Operations then observes the transition between SLSA and OpenAI Agents SDK, while security checks that MCP receives neither implicit authority nor unnecessary data. If the OpenAI Agents SDK verification fails, rollback restores the configuration around MCP, replays course-secure-ai-agent-platform-c113, and compares the new state with the control evidence from OAuth. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to SBOM, a concrete condition, and evidence instead of a generic assurance.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c114 starts at SBOM and treats SLSA as an explicit boundary rather than an implicit assumption. The first control requires OpenAI Agents SDK to emit an observable result before MCP can trigger the intended effect around OAuth. The conclusion stays bounded by OpenAI Agents SDK and OAuth: anything not demonstrated by scenario course-secure-ai-agent-platform-c114 is labeled as a limitation or inference, never promoted to fact. That sequence serves this concrete job: Teach a complete path from agent orchestration and authorization through observability, CI security, SBOM and provenance. It turns SBOM into a reviewable decision point with a named input and a retained output. To test SLSA, fixture course-secure-ai-agent-platform-c114 contains both an allowed state and a rejected state; rejection must occur before any change attributed to OpenAI Agents SDK.

In “Course: build a secure AI-agent platform from tool schema to supply-chain evidence”, scenario course-secure-ai-agent-platform-c115 starts at SLSA and treats OpenAI Agents SDK as an explicit boundary rather than an implicit assumption. The first control requires MCP to emit an observable result before OAuth can trigger the intended effect around SBOM. Operations then observes the transition between MCP and OAuth, while security checks that SBOM receives neither implicit authority nor unnecessary data. If the OAuth verification fails, rollback restores the configuration around SBOM, replays course-secure-ai-agent-platform-c115, and compares the new state with the control evidence from SLSA. This detail makes “Course: build a secure AI-agent platform from tool schema to supply-chain evidence” reviewable because each operational statement points to OpenAI Agents SDK, a concrete condition, and evidence instead of a generic assurance.

Evidence point: GitHub documents that dependency review exposes added, removed and updated dependencies together with vulnerability context before changes are merged. This source anchors capstone project and assessment criteria but does not replace local verification. [S1]

Operational checklist

  • The control around OpenAI Agents SDK has an input, a rule, a rejection behavior, and evidence.
  • The control around MCP has an input, a rule, a rejection behavior, and evidence.
  • The control around OAuth has an input, a rule, a rejection behavior, and evidence.
  • The control around SBOM has an input, a rule, a rejection behavior, and evidence.
  • The control around SLSA has an input, a rule, a rejection behavior, and evidence.

Sources and control points

  1. [S1] Reviewing dependency changes in a pull request — Dependency review exposes added, removed and updated dependencies together with vulnerability context before changes are merged. source
  2. [S2] Supply chain security - GitHub Docs — GitHub supply-chain controls combine dependency visibility, vulnerability alerts, automated updates and review workflows. source
  3. [S3] RFC 9700: Best Current Practice for OAuth 2.0 Security — RFC 9700 updates OAuth 2.0 security practice, including exact redirect URI matching and avoiding open redirectors and insecure legacy patterns. source
  4. [S4] SBOM attestations - Docker Docs — Docker can generate SPDX SBOM attestations during BuildKit builds and provides local inspection workflows. source
  5. [S5] REST Security Cheat Sheet — OWASP REST guidance emphasizes HTTPS, explicit access control and careful handling of tokens, methods, inputs and security headers. source
  6. [S6] Tracing - OpenAI Agents SDK — Tracing records model generations, tool calls, handoffs, guardrails and custom events, and sensitive payload capture can be disabled. source
  7. [S7] Handoffs - OpenAI Agents SDK — Handoffs transfer the active conversation to a specialist agent and can filter or reshape the history passed to the destination. source
  8. [S8] Agent orchestration - OpenAI Agents SDK — Two common orchestration patterns are manager-controlled agents-as-tools and handoffs where a specialist becomes the active agent. source
  9. [S9] Running agents - OpenAI Agents SDK — Run configuration controls model setup, guardrails, handoff behavior, tracing, tool execution and conversation state. source
  10. [S10] Encrypted session - OpenAI Agents SDK — EncryptedSession can wrap a session store with Fernet encryption, per-session HKDF-derived keys and TTL-based expiration. source
Publicité