# erkiran/complementary-labs-for-sc-300 architecture

> Architecture diagram of the GitHub repository erkiran/complementary-labs-for-sc-300, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/erkiran/complementary-labs-for-sc-300
- Repository: https://github.com/erkiran/complementary-labs-for-sc-300

## Overview

This repository is a set of complementary SC-300 identity and access management labs, not an executable application. Its documented learning workflow is to complete an official Microsoft lab, attempt a repository challenge, then compare with a solution and capture evidence. The README also highlights least-privilege role selection, PIM lifecycle concepts, privilege-boundary testing, and audit evidence. Relationships here follow the documented workflow; source excerpts were not available to verify implementation details.

Main entry points: [`README.md`](https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/README.md) (IAM practice themes), [`challenges/lab-1.md`](https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/challenges/lab-1.md) (Challenge 1), [`challenges/lab-2.md`](https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/challenges/lab-2.md) (Challenge 2), [`challenges/lab-5.md`](https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/challenges/lab-5.md) (Challenge 5)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_learning["Learning flow"]
  node_official["Official SC-300 lab"]
  node_skills["IAM practice themes<br/>[README.md]"]
end

subgraph group_challenges["Challenges"]
  node_challenge1["Challenge 1<br/>[lab-1.md]"]
  node_challenge2["Challenge 2<br/>[lab-2.md]"]
  node_challenge5["Challenge 5<br/>[lab-5.md]"]
  node_challenge6["Challenge 6<br/>[lab-6.md]"]
  node_hybrid["Hybrid identities"]
end

subgraph group_solutions["Solutions and evidence"]
  node_solution1["Solution 1<br/>[Readme.md]"]
  node_solution2["Solution 2<br/>[Readme.md]"]
  node_solution5["Solution 5<br/>[Readme.md]"]
  node_solution6["Solution 6<br/>[Readme.md]"]
  node_solution7["Solution 7<br/>[Readme.md]"]
  node_hybrid_solution["Hybrid solution<br/>[Readme.md]"]
  node_evidence["Evidence artifacts"]
end

node_learner(("Learner"))

node_learner -->|"completes first"| node_official
node_learner -->|"attempts"| node_challenge1
node_learner -->|"attempts"| node_challenge2
node_learner -->|"attempts"| node_challenge5
node_learner -->|"attempts"| node_challenge6
node_learner -->|"attempts"| node_hybrid
node_learner -->|"compares result"| node_solution1
node_learner -->|"compares result"| node_solution2
node_learner -->|"compares result"| node_solution5
node_learner -->|"compares result"| node_solution6
node_learner -->|"reviews"| node_solution7
node_learner -->|"reviews"| node_hybrid_solution
node_learner -->|"captures"| node_evidence
node_learner -->|"practices"| node_skills

click node_challenge1 "https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/challenges/lab-1.md"
click node_challenge2 "https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/challenges/lab-2.md"
click node_challenge5 "https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/challenges/lab-5.md"
click node_challenge6 "https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/challenges/lab-6.md"
click node_hybrid "https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/challenges/hybrid_identities.md"
click node_skills "https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/README.md"
click node_solution1 "https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/solution/challenges-1/Readme.md"
click node_solution2 "https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/solution/challenges-2/Readme.md"
click node_solution5 "https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/solution/challenges-5/Readme.md"
click node_solution6 "https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/solution/challenges-6/Readme.md"
click node_solution7 "https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/solution/challenges-7/Readme.md"
click node_hybrid_solution "https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/solution/hybrid_identities/Readme.md"
click node_evidence "https://github.com/erkiran/complementary-labs-for-sc-300/tree/main/solution"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_official,node_skills toneBlue
class node_challenge1,node_challenge2,node_challenge5,node_challenge6,node_hybrid toneAmber
class node_solution1,node_solution2,node_solution5,node_solution6,node_solution7,node_hybrid_solution,node_evidence toneMint
class node_learner toneIndigo
```

## Components

### Learning flow

- **Official SC-300 lab**
- [IAM practice themes](https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/README.md): `README.md`

### Challenges

- [Challenge 1](https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/challenges/lab-1.md): `challenges/lab-1.md`
- [Challenge 2](https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/challenges/lab-2.md): `challenges/lab-2.md`
- [Challenge 5](https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/challenges/lab-5.md): `challenges/lab-5.md`
- [Challenge 6](https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/challenges/lab-6.md): `challenges/lab-6.md`
- [Hybrid identities](https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/challenges/hybrid_identities.md): `challenges/hybrid_identities.md`

### Solutions and evidence

- [Solution 1](https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/solution/challenges-1/Readme.md): `solution/challenges-1/Readme.md`
- [Solution 2](https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/solution/challenges-2/Readme.md): `solution/challenges-2/Readme.md`
- [Solution 5](https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/solution/challenges-5/Readme.md): `solution/challenges-5/Readme.md`
- [Solution 6](https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/solution/challenges-6/Readme.md): `solution/challenges-6/Readme.md`
- [Solution 7](https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/solution/challenges-7/Readme.md): `solution/challenges-7/Readme.md`
- [Hybrid solution](https://github.com/erkiran/complementary-labs-for-sc-300/blob/main/solution/hybrid_identities/Readme.md): `solution/hybrid_identities/Readme.md`
- [Evidence artifacts](https://github.com/erkiran/complementary-labs-for-sc-300/tree/main/solution): `solution`

### Other components

- **Learner**

## Connections

- Learner → Official SC-300 lab: completes first
- Learner → Challenge 1: attempts
- Learner → Challenge 2: attempts
- Learner → Challenge 5: attempts
- Learner → Challenge 6: attempts
- Learner → Hybrid identities: attempts
- Learner → Solution 1: compares result
- Learner → Solution 2: compares result
- Learner → Solution 5: compares result
- Learner → Solution 6: compares result
- Learner → Solution 7: reviews
- Learner → Hybrid solution: reviews
- Learner → Evidence artifacts: captures
- Learner → IAM practice themes: practices
