Active Directory Federation Services (ADFS) stöd i MSAL för Python

Active Directory Federation Services (ADFS) (AD FS) i Windows Server kan du lägga till OpenID Connect- och OAuth 2.0-baserad autentisering och auktorisering i dina appar med hjälp av Microsofts autentiseringsbibliotek (MSAL) för Python. Med hjälp av MSAL för Python-biblioteket kan din app autentisera användare direkt mot AD FS. Mer information om scenarier finns i AD FS-scenarier för utvecklare.

Det finns vanligtvis två sätt att autentisera mot AD FS:

  • MSAL Python pratar med Microsoft Entra ID, som i sig är federerat med andra identitetsprovidrar. Federationen sker via AD FS. MSAL Python ansluter till Microsoft Entra ID, som loggar in användare som hanteras i Microsoft Entra ID (hanterade användare) eller användare som hanteras av en annan identitetsprovider, till exempel AD FS (federerade användare). MSAL Python vet inte att en användare är federerad. Det talar helt enkelt till Microsoft Entra ID. Den auktoritet som du använder i det här fallet är den vanliga auktoriteten (auktoritetsvärdnamn + tenant, common eller organizations).
  • MSAL Python kommunicerar direkt med en AD FS-auktoritet. Detta stöds endast av AD FS 2019 och senare.

Ansluta till služba Active Directory federerat med AD FS

Hämta en token interaktivt för en federerad användare

Följande gäller oavsett om du ansluter direkt till Active Directory Federation Services (ADFS) (AD FS) eller via služba Active Directory.

När du anropar acquire_token_by_authorization_code eller acquire_token_by_device_flowär användarupplevelsen vanligtvis följande:

  1. Användaren anger sitt konto-ID.
  2. Microsoft Entra ID visar kort meddelandet "Tar dig till organisationens sida" och användaren omdirigeras till inloggningssidan för identitetsprovidern. Inloggningssidan anpassas vanligtvis med organisationens logotyp.

De AD FS-versioner som stöds i det här federerade scenariot är:

  • Active Directory Federation Services (ADFS) FS v2
  • Active Directory Federation Services (ADFS) v3 (Windows Server 2012 R2)
  • Active Directory Federation Services (ADFS) v4 (AD FS 2016)

Hämta en token via användarnamn och lösenord

Varning

ROPC-flödet (Resource Owner Password Credential) har blivit inaktuellt för offentliga klientprogram på grund av säkerhetsrisker. Microsoft rekommenderar att du använder ett säkrare autentiseringsflöde. Följ den officiella vägledningen om hur du migrerar från ROPC.

Följande gäller oavsett om du ansluter direkt till Active Directory Federation Services (ADFS) (AD FS) eller via služba Active Directory.

När du hämtar en token med acquire_token_by_username_password avgör MSAL Python vilken identitetsleverantör som ska kontaktas utifrån användarnamnet. MSAL Python hämtar en SAML 1.1-token från identitetsprovidern, som den sedan tillhandahåller till Microsoft Entra som returnerar JSON-webbtoken (JWT). Vi rekommenderar inte användarnamnet och lösenordsflödet eftersom det medför säkerhetsrisker som inte finns i andra flöden. Mer information om varför du vill undvika att använda det här bidraget finns i varför Microsoft arbetar för att göra lösenord till ett minne blott.

Ansluta direkt till AD FS

När du ansluter en katalog till AD FS blir den auktoritet som du vill använda för att skapa ditt program något i stil med https://somesite.contoso.com/adfs/

MSAL Python stöder ADFS 2019, men stöder inte en direkt anslutning till ADFS 2016 eller ADFS v2. När du har uppgraderat ditt lokala system till ADFS 2019 kan du använda MSAL Python.