# Microsoft.IdentityModel.Abstractions

**Kind:** Service

**Source:** `Pams/Logic/Pams.Business/Pams.Business.csproj` (line 1)

**Part of:** [Pams](subsystem-pams)

NuGet package dependency

`Microsoft.IdentityModel.Abstractions` is a NuGet package dependency declared by the Pams.Business project. It supplies shared identity-model abstractions used by authentication and token-related components referenced during .NET build and restore operations.

## Diagram

```mermaid
sequenceDiagram
    participant Developer
    participant Build as dotnet build
    participant Project as Pams.Business.csproj
    participant NuGet
    participant Identity as Microsoft.IdentityModel.Abstractions

    Developer->>Build: Build Pams.Business project
    Build->>Project: Read package references
    Project->>NuGet: Restore package dependency
    NuGet-->>Identity: Resolve package assembly
    Identity-->>Build: Make abstractions available
    Build-->>Developer: Build project output
```

## Usage

```ts
import { execFile } from "node:child_process";
import { promisify } from "node:util";

const execFileAsync = promisify(execFile);

async function buildPamsBusiness() {
  const projectPath = "Pams/Logic/Pams.Business/Pams.Business.csproj";

  const { stdout, stderr } = await execFileAsync("dotnet", [
    "build",
    projectPath,
  ]);

  console.log(stdout);

  if (stderr) {
    console.error(stderr);
  }
}

buildPamsBusiness().catch(console.error);
```

## AI Coding Instructions

- Keep `Microsoft.IdentityModel.Abstractions` as a NuGet package reference in `Pams.Business.csproj`; it is resolved by the .NET restore process.
- Do not import this package directly from TypeScript or JavaScript; consume it through .NET code that references the Pams.Business project.
- Run `dotnet restore` or `dotnet build` after changing package references so the dependency is resolved locally.
- Check compatibility with other `Microsoft.IdentityModel` packages before changing the package version or removing the reference.

## Used by

1 reference from 1 file. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### Injected or called by (1)

- `Pams.Business` — `Pams/Logic/Pams.Business/Pams.Business.csproj`:1
