Autentisera program och användare med Microsoft Entra-ID
En primär Microsoft Entra-ID-funktion för appar är autentisering, den process där användarna deklarerar sin identitet med en personlig identifierare, till exempel ett användarnamn eller en e-postadress. Bevis på identiteten tillhandahålls. Beviset kan vara ett lösenord, en artefakt för multifaktorautentisering, ett biometriskt eller lösenordslöst medgivande.
Den här artikeln beskriver hur program använder Microsoft Entra-ID för att autentisera användare och program. Det är den tredje i en serie artiklar om hur oberoende programvaruutvecklare (ISV) kan skapa och optimera sina program för Microsoft Entra-ID. I den här serien kan du lära dig mer om följande ämnen:
- Microsoft Entra ID för oberoende programvaruutvecklare beskriver hur du använder den här molnbaserade identitets- och åtkomsthanteringstjänsten för att ge anställda åtkomst till resurser med ditt program.
- Upprätta program i Microsoft Entra ID-ekosystemet beskriver hur du använder administrationscentret för Microsoft Entra eller Microsoft Graph Application Programming Interface (API) för att registrera appar i en Microsoft Entra ID-klientorganisation.
- Auktorisera program, resurser och arbetsbelastningar diskuterar auktorisering när en enskild människa interagerar med och dirigerar ett program, när API:er agerar för en användare. Dessutom när program eller tjänster fungerar oberoende av varandra.
- Anpassa token hjälper dig att bygga in säkerhet i program med ID-token och åtkomsttoken från Microsoft Entra-ID. Den beskriver den information som du kan ta emot i Microsoft Entra ID-token och hur du kan anpassa dem.
Begära token
Program begär en token från Microsoft Entra-ID. När appar har fått token kan de använda informationen i den token för att identifiera användaren. När du bygger på Microsoft Entra-ID kan användarna autentisera många program med ett enda registrerat Microsoft Entra ID-konto (SSO). Med SSO-autentiseringsmetoden kan användare logga in på flera oberoende programvarusystem med en uppsättning autentiseringsuppgifter.
Protokoll som utvecklare kan använda för att begära en token från Microsoft Entra-ID använder en webbläsare för att ansluta användaren till Webbplatsen för Microsoft Entra-ID. På den här webbplatsen kan användaren ha en privat konversation med Microsoft Entra-ID. Ett program är inte en deltagare i den privata konversationen. Appar startar microsoft entra-ID-webbplatsen där användaren initierar autentiseringsprocessen. När autentiseringsprocessen är klar omdirigerar Microsoft Entra-ID användaren tillbaka till programmet, med eller utan en token.
Det är viktigt att användarna sällan behöver gå igenom autentiseringsprocessen. Ju oftare användarna måste göra det, desto mer blir de mottagliga för kryphål som nätfiskeattacker.
Minska inloggningsprompter
Enkel inloggning kan minska eller eliminera inloggningsprompter. Utvecklare spelar en viktig roll för att minska och eliminera inloggningsprompter. Alla appar måste dela webbläsaren som har åtkomst till Webbplatsen för Microsoft Entra-ID där användarna utför autentiseringsprocessen. Om din app är ett webbläsarbaserat ensidesprogram (SPA) eller en webbapp krävs inga utvecklarsteg. Alla appar i webbläsaren delar webbläsaren. För inbyggda program som körs på stationära datorer och mobila enheter måste utvecklare proaktivt minska eller eliminera inloggningsprompter.
Den bästa metoden för att minska eller eliminera inloggningsanvisningarna är att använda Microsoft Authentication Libraries (MSAL) eller ett bibliotek som bygger på MSAL och autentisering med asynkrona autentiseringar. Den här metoden minimerar inloggningsprompter och ger den mest sömlösa upplevelsen. Om det inte går att bygga på MSAL bör programmet använda systemwebbläsaren för att minimera inloggningsprompterna.
För appar som körs i iOS eller Android har mobilplattformsleverantörer vissa funktioner för att göra den här upplevelsen smidigare. Google har vägledning för Android-program med anpassade Chrome-flikar. Apple har vägledning för att autentisera en användare via en webbtjänst i iOS-program. Undvik att använda inbäddade WebViews eftersom de kanske inte tillåter delning mellan appar eller med systemwebbläsaren.
De två protokollen för användarautentisering är SAML (Security Assertion Markup Language) 2.0 och OpenID Connect (OIDC). Microsoft Entra-ID har fullt stöd för appar med båda protokollen, så att utvecklare kan välja något av dem baserat på deras krav.
Dessa referenser beskriver Microsoft Entra ID SAML-stöd.
- Microsoft platforma za identitete använder SAML-protokollet är startpunkten för SAML-dokumentationen för Microsoft Entra ID för utvecklare.
- SAML-protokoll för enkel inloggning är referensen för SAML 2.0-autentiseringsbegäranden och svar som Stöds av Microsoft Entra ID.
- Microsoft Entra-federationsmetadata beskriver federationsmetadata och metadataslutpunkter för klientspecifika och klientoberoende metadata. Den omfattar metadata för SAML och äldre WS-Federation-standarder. Vi rekommenderar inte WS-Federation för nya program, även om det stöds fullt ut.
- REFERENS FÖR SAML 2.0-tokenanspråk är dokumentationen för SAML-token för Microsoft Entra ID (intyg).
Det finns vissa begränsningar i SAML-supporten för Microsoft Entra ID. Mer specifikt kan du inte migrera appar som kräver dessa protokollfunktioner: stöd för WS-Trust ActAs-mönstret och SAML-artefaktmatchning.
Även om Microsoft Entra ID har fullt stöd för SAML för appar som bygger på SAML-protokollet, tillhandahåller Microsoft platforma za identitete inte bibliotek eller andra utvecklingsverktyg för att utveckla program med SAML. För ny programutveckling rekommenderar vi att du använder OpenID Connect (OIDC) för autentisering.
Microsoft Entra ID har fullt stöd för OpenID Connect. Microsoft tillhandahåller MSAL-, Microsoft Identity Web- och Azure SDK-bibliotek för att underlätta OIDC-programutveckling. OpenID Connect (OIDC) på Microsoft platforma za identitete information om Microsoft Entra ID OIDC-stöd. MSAL stöder automatiskt OIDC. MSAL begär alltid en OIDC ID-token med varje tokenbegäran, inklusive auktoriseringsbegäranden för en app för åtkomst till en resurs.
Livslängd för token
MSAL cachelagrar ID-token och åtkomsttoken baserat på åtkomsttokens förfallotid. Eftersom Microsoft Entra ID på olika sätt anger livslängden för ID-token och åtkomsttoken kan du få en ID-token som har upphört att gälla från en msal-cache som har upphört att gälla medan åtkomsttoken fortfarande är inom dess giltiga livslängd.
MSAL förnyar inte ID-token automatiskt. MSAL förnyar åtkomsttoken vid eller nära slutet av livslängden för åtkomsttoken när ett program begär token. Då begär MSAL en ny ID-token. Om du vill implementera OIDC använder du anspråket exp
(förfaller) i ID-token för att schemalägga en ID-tokenbegäran med hjälp av ForceRefresh
flaggan i MSAL.
När det inte går att bygga på MSAL eller ett bibliotek som bygger på MSAL kan du använda OpenID Connect-standarden för att autentisera den aktuella användaren. Vissa funktioner i inbyggda program kanske inte är möjliga utan att använda MSAL, till exempel att se till att den interna appen körs på en hanterad enhet. Läs Öka motståndskraften för autentisering och auktorisering i klientprogram som du utvecklar för vägledning när du inte bygger på MSAL.
Microsoft Entra ID implementerar en UserInfo-slutpunkt som en del av Microsoft Entra ID OIDC-standardstöd med en specifik Microsoft Graph-sökväg (https://graph.microsoft.com/oidc/userinfo
). Det går inte att lägga till eller anpassa den information som UserInfo
slutpunkten returnerar. Eftersom informationen i ID-token är en supermängd av den information som returneras genom att anropa UserInfo
slutpunkten rekommenderar vi att du använder ID-token i stället för att anropa UserInfo
slutpunkten.
Autentisera användare
Program interagerar med Microsoft Entra ID-klienter för att autentisera användare. För att autentisera en användare dirigerar ett program en webbläsare till https://login.microsoftonline.com/{tenant}/v2.0
, där {tenant}
är klientorganisationens ID eller domän. Vi rekommenderar dock att ISV:er använder Microsoft Entra-ID för att skapa program med flera klienter som har stöd för det bredaste kundsortimentet. För ett program med flera klienter kanske en app inte vet vilken klientorganisation en användare är från förrän efter att användaren har autentiserats, så det går inte att använda en specifik klientslutpunkt.
För att aktivera appar med flera klienter tillhandahåller Microsoft Entra-ID två klientoberoende OIDC/OAuth 2.0-slutpunkter:
https://login.microsoftonline.com/common/v2.0
tillåter användare att autentisera en app när de kommer från någon Microsoft Entra-ID-klientorganisation eller som har ett Microsoft-konsumentkonto från webbplatser som outlook.com, skype.com, xbox.com, live.com eller Hotmail.com.https://login.microsoftonline.com/organizations/v2.0
tillåter användare att autentisera en app när de kommer från valfri Microsoft Entra-ID-klientorganisation.
Med dessa slutpunkter kan alla användare från valfri Microsoft Entra-ID-klientorganisation autentisera ditt program. Om du bara vill tillåta användare från specifika klientorganisationer implementerar du logiken för att endast tillåta användare från dessa klientorganisationer att komma åt din app. Den normala implementeringen är att filtrera användare baserat på anspråket (utfärdare iss
) eller tid
(klient-ID) i token till en lista över klienter som du underhåller.
Microsoft Entra ID-klienter stöder användare som kan vara regelbundna medlemmar i klientorganisationen eller som kan vara gästanvändare i klientorganisationen. Som standard finns det begränsade funktioner för gästanvändare i en klientorganisation. Gästanvändare kan till exempel inte se den fullständiga profilen för andra användare i klientorganisationen. Gästanvändare, som ibland kallas B2B-användare (Business to Business), gör det möjligt för olika organisationer att samarbeta med verktyg och tjänster som Microsoft Entra ID skyddar. Ett exempelscenario är att bjuda in en användare utanför organisationen att komma åt en SharePoint-fil i din klientorganisation. Vanligtvis använder en B2B-användare sin e-postadress som sin userid
. De kan dock använda samma adress som userid
i sin hemklientorganisation. Som standard loggar Microsoft Entra-ID in användaren i sin hemklientorganisation när de anger sin userid
.
Om du vill logga in en användare som en B2B-användare måste ett program använda den specifika klientslutpunkten där användaren är gäst. Det är möjligt för en användare att ange en klientorganisation som de vill komma åt när ett program använder https://login.microsoftonline.com/organizations/v2.0
slutpunkten, men användarna kan ha svårt att identifiera den funktionen.
Nästa steg
- Microsoft Entra ID för oberoende programvaruutvecklare beskriver hur du använder den här molnbaserade identitets- och åtkomsthanteringstjänsten för att ge anställda åtkomst till resurser med ditt program.
- Upprätta program i Microsoft Entra ID-ekosystemet beskriver hur du använder administrationscentret för Microsoft Entra eller Microsoft Graph API för att registrera appar i en Microsoft Entra ID-klientorganisation.
- Auktorisera program, resurser och arbetsbelastningar diskuterar auktorisering när en enskild människa interagerar med och dirigerar ett program, när API:er agerar för en användare och när program eller tjänster fungerar oberoende av varandra.
- Anpassa token hjälper dig att bygga in säkerhet i program med ID-token och åtkomsttoken från Microsoft Entra-ID. Den beskriver den information som du kan ta emot i Microsoft Entra ID-token och hur du kan anpassa dem.