ms-ai-architect/skills/ms-ai-advisor/references/copilot-extensibility/copilot-connectors-design-patterns.md
Kjell Tore Guttormsen 781d98f62f chore(privacy): scrub real-org references from plugin internals (phase 2)
Same bulk replacement applied to plugin-internal KB, examples, fixtures,
tests, and docs. Real organization names, persona names, internal system
identifiers, and domain-specific terms replaced with fictional generic
public-sector entity (DDT) and generic terminology.

Scope:
- okr/ — examples, governance, framework, integrations, sources
- ms-ai-architect/ — KB references (engineering, governance, security,
  infrastructure, advisor), tests/fixtures, agents, docs
- linkedin-thought-leadership/ — voice samples, network-builder,
  examples (genericized identifying headlines to "[your organization]")
- llm-security/ — research notes, scan report

Manual genericization beyond bulk replace:
- okr SKILL.md "Primary user / Domain" — generic Norwegian public sector
- linkedin-voice SKILL.md headline placeholder
- network-builder.md headline placeholder
- high-engagement-posts.md voice sample employer line + hashtag

Phase 3 (factual-attribution review) remains: a few KB files attribute
publicly known transport-sector docs/datasets (e.g. håndbok V440, NVDB)
to the fictional DDT after bulk replace. Needs manual semantic review
to either remove or restore correct citation without re-introducing
affiliation references.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 04:28:15 +02:00

590 lines
23 KiB
Markdown

# Copilot Connectors - Implementation Patterns
**Last updated:** 2026-04 | Verified: MCP 2026-04-10
**Status:** GA (Synced Connectors) / Early Access Preview (Federated Connectors)
**Category:** Copilot Extensibility & Integration
---
## Introduksjon
Copilot-koblinger (tidligere Microsoft Graph-koblinger) er Microsofts primære mønster for å bringe eksterne data inn i Microsoft 365-økosystemet. De utvider rekkevidden til Microsoft 365 Copilot, Microsoft Search, Context IQ og andre intelligente opplevelser ved å koble til data utover Microsoft 365-grensene.
Det finnes to fundamentalt forskjellige arkitekturer for Copilot-koblinger: **synced connectors** (synkroniserte koblinger) som indekserer data inn i Microsoft Graph, og **federated connectors** (fødererte koblinger) som henter data i sanntid uten indeksering. Valget mellom disse påvirker sikkerhetsmodellen, ytelsen, kostnadene og brukeropplevelsen.
I tillegg finnes det spesialiserte implementeringsmønstre for integrasjon med Copilot Studio (via Power Platform connectors) og for people data-scenarier. Denne kunnskapsreferansen dekker alle implementeringsmønstrene med fokus på når hvert mønster passer, tekniske kompromisser, og offentlig sektor-konsekvenser.
## Kjernekomponenter
### Connector-typer og forskjeller
| Feature | Synced Connectors | Federated Connectors (Preview) | Power Platform Connectors |
|---------|-------------------|--------------------------------|---------------------------|
| **Data-håndtering** | Indeksert i Microsoft Graph | Hentet live uten indeksering | Brukt via Power Platform actions |
| **Tilgangsmodell** | Organisasjonsnivå (org-wide) | Brukernivå (per-user) | Agent-nivå (Copilot Studio) |
| **Oppsett** | Admin konfigurerer | Admin enabler, brukere autentiserer | Maker/developer konfigurerer |
| **Status** | GA (Generally Available) | Early Access Preview (Frontier) | GA |
| **Bruksscenario** | Bred indeksering, static data | Sensitiv, dynamisk, live data | Low-code bot-integrasjon |
| **Skriveoperasjoner** | Nei (read-only) | Nei (read-only) | Ja (via actions) |
| **Custom connector-støtte** | Ja (Graph API, SDK) | Nei (kun Microsoft-leverte) | Ja (OpenAPI, custom code) |
| **Kostnadsmodell** | Item quota (indekserte items) | Ukjent (preview) | Per API-kall (variable) |
### Microsoft 365 Copilot Connector-arkitektur
**Synced connector-flyt:**
```
Eksterne data → Connector (crawl/index) → Microsoft Graph → Copilot/Search
```
**Federated connector-flyt:**
```
Brukerforespørsel → Copilot → MCP API → Ekstern kilde (live) → Respons til Copilot
```
**Power Platform connector-flyt:**
```
Brukerforespørsel → Copilot Studio agent → Power Platform connector → ISV API → Respons til agent
```
### Byggeklosser for custom synced connector
Fire obligatoriske steg (via Microsoft Graph API):
1. **Entra ID app-registrering**
Oppretter applikasjonidentitet med nødvendige Graph-tillatelser (`ExternalConnection.ReadWrite.OwnedBy`, `ExternalItem.ReadWrite.OwnedBy`).
2. **External connection**
Logisk container for eksterne data. Krever unikt ID, navn og beskrivelse.
3. **Schema-registrering**
Definerer strukturen på eksterne data (properties, attributter, semantic labels). Langvarig operasjon (async).
4. **Item ingestion**
Transformerer og sender eksterne items til Microsoft Graph med ACL (access control list).
### Semantic labels og property attributes
**Semantic labels** (viktige for ranking og relevans):
| Label | Formål | Påkrevd for |
|-------|--------|-------------|
| `title` | Dokumenttittel | Search, Context IQ, Copilot |
| `url` | Link til originaldokument | Search, Context IQ |
| `iconUrl` | Ikon for dokument | Context IQ |
| `authors` | Forfatter(e) | Search relevance |
| `lastModifiedBy` | Sist endret av | Search, audit |
| `lastModifiedDateTime` | Sist endret | Ranking, freshness |
**Property attributes** (søkefunksjonalitet):
| Attribute | Beskrivelse | Eksempel |
|-----------|-------------|----------|
| `isSearchable` | Fulltext-søkbar | Dokumentinnhold |
| `isQueryable` | Kan filtreres/sorteres | Dato, forfatter |
| `isRetrievable` | Vises i resultater | Tittel, sammendrag |
| `isRefinable` | Faceted search | Kategori, avdeling |
## Arkitekturmønstre
### Mønster 1: Synced Connector (Broad Indexing)
**Beskrivelse:**
Crawl og indekser eksterne data inn i Microsoft Graph for bred søkbarhet og Copilot-resonnering. Dataen blir indeksert én gang og er deretter tilgjengelig for alle Microsoft 365-opplevelser.
**Når å bruke:**
- Du har **statiske eller semi-statiske data** (dokumenter, policies, FAQs, knowledge bases)
- Dataene er **ikke svært sensitive** (kan indekseres i Microsoft 365)
- Du trenger **høy ytelse** (Copilot trenger ikke vente på ekstern API)
- Du vil **samle data fra flere kilder** til én søkeindeks
- Du har **tilstrekkelig item quota** (lisensiert)
**Fordeler:**
- Rask responstid (data er pre-indeksert)
- Rik semantic search med AI-resonnering
- Støtter full-text search, facets, ranking
- Enhetlig brukeropplevelse på tvers av M365-apps
- Ingen run-time avhengighet av kildesystemet
**Ulemper:**
- Data kan bli utdatert mellom crawls (latency)
- Krever item quota (kostnad per 1000 items)
- Dataen kopieres inn i Microsoft 365 (data residency-bekymringer)
- Kompleks ACL-modellering hvis kilde har finkornet tilgangskontroll
**Implementering:**
```csharp
// Steg 1: Opprett connection
var connection = new ExternalConnection
{
Id = "contoso-policies",
Name = "Contoso Internal Policies",
Description = "Company policies and procedures"
};
await graphClient.External.Connections.PostAsync(connection);
// Steg 2: Registrer schema
var schema = new Schema
{
BaseType = "microsoft.graph.externalItem",
Properties = new List<Property>
{
new Property { Name = "title", Type = PropertyType.String, IsSearchable = true },
new Property { Name = "url", Type = PropertyType.String },
new Property { Name = "lastModified", Type = PropertyType.DateTime, IsQueryable = true }
}
};
await graphClient.External.Connections["contoso-policies"].Schema.PatchAsync(schema);
// Steg 3: Ingest items
var item = new ExternalItem
{
Id = "policy-001",
Acl = new List<Acl>
{
new Acl { Type = AclType.Everyone, Value = "everyone", AccessType = AccessType.Grant }
},
Properties = new
{
title = "Remote Work Policy",
url = "https://intranet.contoso.com/policies/remote-work",
lastModified = DateTime.UtcNow
},
Content = new ExternalItemContent
{
Type = ExternalItemContentType.Text,
Value = "Full policy text here..."
}
};
await graphClient.External.Connections["contoso-policies"].Items[item.Id].PutAsync(item);
```
**Beslutningsveiledning:**
- ✅ Bruk hvis data endrer sjeldnere enn hver time
- ✅ Bruk hvis du trenger faceted search eller ranking
- ❌ Ikke bruk for sanntidsdata (stock prices, live inventory)
- ❌ Ikke bruk hvis data ikke kan forlate kildesystemet (legal/compliance)
---
### Mønster 2: Federated Connector (Real-Time Access)
**Beskrivelse:**
Koble til eksterne data i sanntid via Model Context Protocol (MCP) uten å indeksere innhold i Microsoft 365. Data forblir i kildesystemet og hentes kun når brukeren spør.
**Når å bruke:**
- Du har **svært sensitive data** (må ikke indekseres i M365)
- Du trenger **sanntidsdata** (live priser, inventory, status)
- Du har **dynamiske data** som endrer kontinuerlig
- Du vil **minimere data residency-risiko** (data forblir i kilden)
- Du har **strenge compliance-krav** (GDPR, Schrems II)
**Fordeler:**
- Data forblir i kildesystemet (data sovereignty)
- Alltid oppdatert (ingen stale data)
- Ingen item quota-kostnad (ingen indeksering)
- Enklere ACL-modell (kildesystemet håndterer autorisasjon)
- OAuth 2.0-basert brukernivå-autentisering
**Ulemper:**
- Krever live-tilkobling til kildesystemet (latency + availability)
- Begrenset til Microsoft-leverte connectors (ingen custom)
- Ingen faceted search eller avansert ranking
- Kun i Early Access Preview (ikke produksjonsgaranti)
- Potensielt dyrere (per-query API-kall til kilde)
**Arkitektur:**
```
[M365 Copilot]
↓ (brukerforespørsel)
[MCP Protocol]
↓ (OAuth 2.0 token)
[Federated Connector]
↓ (API-kall)
[Ekstern datakilde]
↓ (live data)
[Respons til Copilot]
```
**Tekniske krav:**
- Ekstern kilde må støtte OAuth 2.0
- API må returnere data i MCP-kompatibelt format
- Admin må enable connector i M365 admin center
- Brukere må autentisere individuelt
**Beslutningsveiledning:**
- ✅ Bruk for PII, financial data, health records
- ✅ Bruk hvis data endrer kontinuerlig (live dashboards)
- ✅ Bruk hvis kildesystemet allerede har robust ACL
- ❌ Ikke bruk hvis du trenger historical search eller trending
- ❌ Ikke bruk hvis kildesystemet har lav availability (< 99%)
---
### Mønster 3: Power Platform Connector (Low-Code Agents)
**Beskrivelse:**
Bruk Power Platform custom connectors til å utvide Copilot Studio-agenter med ISV-data og actions. Lavkodemønster for rask integrasjon med eksisterende APIer.
**Når å bruke:**
- Du bygger **Copilot Studio-agenter** (ikke M365 Copilot-plugins)
- Du trenger **read + write-operasjoner** (ikke bare søk)
- Du har **REST APIer med OpenAPI-spec** (swagger)
- Du vil ha **rask time-to-value** (low-code)
- Du trenger **workflow-integrasjon** (Power Automate flows)
**Fordeler:**
- Lavkode-utvikling (visual designer)
- Støtter både read og write operations
- 500+ forhåndsbygde connectors tilgjengelig (standard og premium)
- Kan bruke Power Automate flows som actions
- **Maker-provided credentials**: Maker kan konfigurere connector med egne credentials — brukere behøver ikke autentisere seg individuelt
**Ulempler:**
- Kun for Copilot Studio (ikke M365 Copilot direkte)
- Krever Power Platform-lisens (standard connectors inkludert, premium connectors krever plan)
- Ikke fullt integrert med M365 Search
- Lavere semantic search-kvalitet enn Graph connectors
- **SSO-begrensning (Verified):** SSO støttes IKKE for connectors når agenten bruker custom Active Directory-autentisering og er deployert til Microsoft Teams — brukere må autentisere manuelt
**Connector-typer:**
- **Standard connectors**: Inkludert i alle Copilot Studio-planer (f.eks. SharePoint, Office 365)
- **Premium connectors**: Krever spesifikk Copilot Studio-plan (f.eks. Salesforce, ServiceNow)
- **Custom connectors**: Bygd fra egne OpenAPI-spesifikasjoner
**Implementering:**
```yaml
# OpenAPI spec for custom connector
openapi: 3.0.0
info:
title: Contoso CRM Connector
version: 1.0.0
paths:
/customers/{id}:
get:
summary: Get customer details
operationId: GetCustomer
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Customer data
content:
application/json:
schema:
type: object
properties:
name: { type: string }
email: { type: string }
status: { type: string }
```
**Copilot Studio-integrasjon:**
1. Opprett custom connector i Power Apps (fra OpenAPI)
2. Legg til connector som "tool" i Copilot Studio agent
3. Konfigurer authentication (OAuth, API key, eller maker credentials)
4. Test action i agent-dialog
**Beslutningsveiledning:**
- ✅ Bruk for chat bots med business logic
- ✅ Bruk hvis du allerede har Power Platform
- ✅ Bruk for workflows (create ticket, update record)
- ❌ Ikke bruk for M365 Copilot-extensibility (bruk Graph connector)
- ❌ Ikke bruk kun for read-only search (synced connector er bedre)
---
### Mønster 4: Copilot Connector for People Data
**Beskrivelse:**
Spesialiserte connectors for å berike profiler i Microsoft 365 med HR-data fra eksterne systemer (Workday, SAP SuccessFactors, etc.). Unifier people-data på tvers av kilder.
**Når å bruke:**
- Du vil **berike M365-profiler** med HR-data
- Du har **autoritativ people data** i eksternt system
- Du trenger **unified identity view** (org chart, skills, location)
- Du vil **forbedre Copilot-resonnering** om folk
**Fordeler:**
- Oppdaterer profile cards i M365
- Forbedrer Org Explorer
- Bedre Copilot-svar på "who"-spørsmål
- Synkronisert view (data forblir authoritative i kilde)
**Ulempler:**
- Kun for people data (ikke dokumenter eller andre entiteter)
- Krever identity mapping (Entra ID ↔ HR system)
**Beslutningsveiledning:**
- ✅ Bruk hvis HR-system har mer data enn Entra ID
- ❌ Ikke bruk for non-people data
## Beslutningsveiledning
### Velg riktig connector-type
```
Har du sensitiv data som ikke kan indekseres i M365?
Ja → Federated Connector
Nei → ↓
Trenger du write operations eller workflows?
Ja → Power Platform Connector
Nei → ↓
Er data people-centric (HR, skills, org chart)?
Ja → People Data Connector
Nei → ↓
Er data statisk eller semi-statisk?
Ja → Synced Connector
Nei → Federated Connector (hvis live data)
```
### Vanlige feil
| Feil | Konsekvens | Løsning |
|------|------------|---------|
| Indekserer sensitive PII i synced connector | GDPR-brudd, data residency-risiko | Bruk federated connector |
| Bruker federated for static data | Dårlig ytelse, høye API-kostnader | Bruk synced connector |
| Glemmer å sette semantic labels | Dårlig ranking, ingen Context IQ | Legg til `title`, `url`, `iconUrl` |
| Feil ACL-modellering | Brukere ser data de ikke skal | Test ACL med ulike brukerroller |
| Ikke planlegger for item quota | Løper tom for quota | Kjøp mer quota eller prioriser innhold |
### Røde flagg
⚠️ **Data residency-risiko:** Synced connectors kopierer data til Microsoft Graph. Hvis kildesystemet er on-prem eller i annet land, kan dette bryte compliance.
⚠️ **Latency i federated connectors:** Hvis kildesystemet har >500ms responstid, vil Copilot oppleves treg.
⚠️ **Bing Custom Search i Copilot Studio:** Bing Custom Search kan brukes som knowledge source i Copilot Studio, men er IKKE tilgjengelig i generativ modus (generative answers node). For Bing Custom Search: bruk klassisk modus med eksplisitt generative answers-node i et topic.
⚠️ **ACL-kompleksitet:** Hvis kildesystemet har finkornet ACL (document-level, paragraph-level), kan det være vanskelig å modellere i Graph connector.
⚠️ **Item quota-kostnad:** 1 million items koster ~$5000/år (varierer). Plan for volumet.
## Integrasjon med Microsoft-stakken
### Hvor Copilot connectors brukes
| Microsoft-produkt | Connector-type | Bruksscenario |
|-------------------|----------------|---------------|
| **Microsoft 365 Copilot** | Synced, Federated | Grounding for Copilot-svar (citations) |
| **Microsoft Search** | Synced | Søk på Office.com, Bing at Work, SharePoint |
| **Context IQ (Outlook)** | Synced | Inline suggestions i epost (/) |
| **Copilot Studio** | Power Platform | Custom agents, workflows |
| **Profile cards** | People Data | Berike profilkort med HR-data |
### Integrasjon med Semantic Kernel
Semantic Kernel kan bruke Graph connectors som **data sources** for RAG-mønster:
```csharp
// Semantic Kernel + Graph Connector
var kernel = Kernel.CreateBuilder()
.AddAzureOpenAIChatCompletion(deploymentName, endpoint, apiKey)
.Build();
// Hent data fra Graph connector via Microsoft Graph API
var graphClient = new GraphServiceClient(credentials);
var searchResults = await graphClient.Search.Query(new SearchRequestBody
{
Requests = new List<SearchRequest>
{
new SearchRequest
{
EntityTypes = new List<EntityType> { EntityType.ExternalItem },
Query = new SearchQuery { QueryString = "remote work policy" },
From = 0,
Size = 5
}
}
}).PostAsync();
// Bruk resultater som context i Semantic Kernel
var context = string.Join("\n", searchResults.Value[0].HitsContainers[0].Hits.Select(h => h.Summary));
var result = await kernel.InvokePromptAsync($"Basert på dette: {context}\n\nSpørsmål: {userQuestion}");
```
### M365 Copilot + Copilot Studio-kombinasjon
Du kan kombinere:
- **M365 Copilot** med synced/federated connectors (for search/grounding)
- **Copilot Studio agent** som plugin i M365 Copilot (via Power Platform connector)
Dette gir både search-grounding OG business logic i samme Copilot-opplevelse.
## Offentlig sektor (Norge)
### GDPR og Schrems II
**Synced connectors:**
Kopierer data til Microsoft Graph (US eller EU-region avhengig av tenant). Dette kan være Schrems II-problematisk hvis kildesystemet er on-prem eller i Norge.
**Løsning:**
- Bruk **federated connectors** hvis data må forbli i Norge
- Valider at Microsoft 365 tenant er i EU-region (ikke US)
- Vurder on-prem Graph connector agent (for hybrid)
### AI Act-konsekvenser
EU AI Act krever **transparens** om AI-beslutninger. Copilot connectors må logge:
- Hvilken connector ble brukt for et svar?
- Hvilke items ble returnert (audit trail)?
- Har brukeren tilgang til kildedata?
Microsoft Graph har innebygd **audit logging** for connector-queries.
### Forvaltningsloven §13a (automatiserte vedtak)
Hvis Copilot-svar brukes til **vedtak i offentlig sektor**, må:
- Kilde-data være verifiserbar (citations)
- Copilot-svar ikke være eneste grunnlag (menneske må validere)
- Synced connectors være bedre enn federated (audit trail i Graph)
### Datasuverenitet
**Kritisk:** Offentlig sektor må verifisere:
- Hvor er Microsoft Graph datasenteret? (EU vs US)
- Kan data forlate Norge? (compliance-vurdering)
- Hvilke Microsoft-underleverandører har tilgang?
**Anbefaling for DDT:**
- **Synced connectors** kun for ikke-sensitive data (public policies, FAQs)
- **Federated connectors** for sensitive data (saksdokumenter, brukerdata)
- **On-prem connector agent** for høyeste data sovereignty
## Kostnad og lisensiering
### Synced Connector-kostnader
| Komponent | Kostnad | Basis |
|-----------|---------|-------|
| **Item quota (base)** | Inkludert | 500-10 000 items per M365 Copilot-lisens (varierer) |
| **Ekstra quota** | ~$5/1000 items/år | Per indexed item |
| **Development** | Gratis | Graph API er inkludert i M365-lisenser |
| **Connector agent** | Gratis | Hvis du bruker Microsoft SDK |
**Estimering:**
- 10 000 policies → ~$50/år (hvis utover base quota)
- 1 million documents → ~$5000/år
### Federated Connector-kostnader
Ingen item quota (ingen indeksering), men:
- **API-kostnader** til kildesystem (per query)
- **Latency-kostnad** (brukere venter på svar)
### Power Platform Connector-kostnader
- **Power Apps/Automate-lisens** påkrevd ($20-40/bruker/måned)
- **Premium connectors** kan ha ekstra kostnad
- **API-kall** til eksternt system (variabelt)
### Optimaliseringstips
1. **Synced connectors:**
- Bruk `isRetrievable: false` for properties som ikke trengs i resultater
- Crawl kun nødvendige dokument-typer (filtrer ut bilder, store filer)
- Bruk incremental crawl fremfor full crawl
2. **Federated connectors:**
- Cache API-respons i kildesystem (reduser redundante kall)
- Implementer rate limiting på kildesystem-API
3. **Power Platform connectors:**
- Bruk "maker-provided credentials" for å unngå per-user auth
- Kombiner flere API-kall i én action (reduser round-trips)
## For arkitekten (Cosmo)
### Spørsmål å stille
1. **Data-sensitivitet:**
"Er dataene sensitive nok til at de ikke kan indekseres i Microsoft 365?" (GDPR, PII, Schrems II)
2. **Data-dynamikk:**
"Hvor ofte endrer dataene seg? Timer, dager, eller måneder?" (Synced vs Federated)
3. **Tilgangsmodell:**
"Har kildesystemet finkornet ACL (document-level), eller er det org-wide?" (ACL-kompleksitet)
4. **Integrasjonsmål:**
"Er målet søk (M365 Copilot) eller workflow (Copilot Studio)?" (Connector-type)
5. **Volumestimering:**
"Hvor mange items skal indekseres? 1000, 100 000, eller 1 million?" (Quota-planlegging)
6. **Kildesystem-API:**
"Har kildesystemet REST API med OAuth 2.0?" (Federated/Power Platform feasibility)
7. **Compliance-krav:**
"Er det juridiske begrensninger på hvor data kan lagres?" (Data residency)
8. **Kostnadsbudsjett:**
"Hva er budsjettet for item quota og API-kall?" (TCO-analyse)
### Fallgruver per modenhetsnivå
**Begynner (pilot):**
- ❌ Starter med custom connector (komplisert). Start med Microsoft-leverte connectors først.
- ❌ Indekserer alt (quota-sprekk). Start med 100-1000 items.
- ❌ Glemmer å teste ACL. Alltid test med restricted-user.
**Middels (produksjon):**
- ❌ Ikke planlegger for schema changes. Schema er vanskelig å endre etter deployment.
- ❌ Ikke overvåker crawl failures. Sett opp alerting i M365 admin center.
- ❌ Hardcoder credentials. Bruk Entra ID managed identity eller Key Vault.
**Avansert (enterprise-scale):**
- ❌ Ikke optimaliserer for latency. Federated connectors må ha <500ms responstid.
- ❌ Ikke planlegger for multi-geo. Hvis organisasjon er i flere land, trenger du multi-geo strategy.
- ❌ Ikke integrerer med Purview. Connector-data må inkluderes i Purview DLP policies.
### Anbefalinger per modenhetsnivå
**Pilot (1-3 måneder):**
1. Start med **synced connector** til SharePoint eller knowledge base (Microsoft-levert)
2. Test med 100-500 items
3. Valider ACL med 3-5 test-brukere
4. Mål Copilot-respons-kvalitet (feedback survey)
**Produksjon (3-12 måneder):**
1. Bygg **custom synced connector** til primary line-of-business system
2. Skalér til 10 000-100 000 items
3. Implementér incremental crawl (hver time/dag)
4. Sett opp Purview-integrasjon (DLP, retention)
**Enterprise (12+ måneder):**
1. Kombiner **synced** (documents) + **federated** (live data)
2. Integrér med Semantic Kernel for custom RAG
3. Multi-geo deployment
4. Custom connector SDK for on-prem sources
## Kilder og verifisering
**Microsoft Learn (Verified - MCP-research):**
- [Microsoft 365 Copilot connectors overview](https://learn.microsoft.com/en-us/microsoftsearch/connectors-overview) — Authoritative oversikt over connector-typer
- [Work with the Copilot connectors API](https://learn.microsoft.com/en-us/graph/connecting-external-content-connectors-api-overview) — Graph API-detaljer
- [Search and retrieval patterns (Copilot Studio)](https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/architecture/search-retrieval-patterns) — Arkitekturmønstre
- [Power Platform Connectors in Copilot Studio](https://learn.microsoft.com/en-us/microsoft-copilot-studio/advanced-connectors) — Low-code connector-integrasjon
- [Copilot connectors for people data](https://learn.microsoft.com/en-us/graph/peopleconnectors) — People data-spesialisering
- [Federated connectors overview](https://learn.microsoft.com/en-us/microsoftsearch/federated-connectors-overview) — MCP-baserte connectors (preview)
**Code samples (Verified - MCP):**
- [Microsoft Graph connector samples](https://learn.microsoft.com/en-us/microsoft-365-copilot/extensibility/samples#microsoft-365-copilot-connector-samples) — TypeScript, .NET, Python-implementeringer
**Konfidensnivå per seksjon:**
- Introduksjon, Kjernekomponenter, Arkitekturmønstre: **Verified** (fra MCP-research)
- Offentlig sektor, Kostnad: **Baseline** (modellkunnskap + Microsoft-prising)
- Semantic Kernel-integrasjon: **Baseline** (custom pattern, ikke Microsoft-dokumentert)
---
*Denne referansen er oppdatert basert på Microsoft Learn-dokumentasjon per april 2026. Federated connectors er i preview og kan endre seg før GA. Maker-provided credentials og SSO-begrensninger verifisert MCP 2026-04-10.*