Skydda hybridåtkomst med Microsoft Entra-integrering
Microsoft Entra-ID stöder moderna autentiseringsprotokoll som hjälper till att skydda program. Många företagsprogram fungerar dock i ett skyddat företagsnätverk och vissa använder äldre autentiseringsmetoder. När företag skapar Nolltillit strategier och stöder hybrid- och molnmiljöer finns det lösningar som ansluter appar till Microsoft Entra-ID och tillhandahåller autentisering för äldre program.
Läs mer: Nolltillit säkerhet
Microsoft Entra ID har inbyggt stöd för moderna protokoll:
- Saml (Security Assertion Markup Language)
- Webbtjänstfederation (WS-Fed)
- OpenID Connect (OIDC)
Microsoft Entra-programproxy eller Microsoft Entra-programproxy stöder Kerberos och huvudbaserad autentisering. Andra protokoll, till exempel Secure Shell (SSH), (Microsoft Windows NT LAN Manager) NTLM, Lightweight Directory Access Protocol (LDAP) och cookies, stöds inte. Oberoende programvaruleverantörer kan dock skapa lösningar för att ansluta dessa program till Microsoft Entra-ID.
ISV:er kan hjälpa kunder att identifiera och migrera SaaS-program (programvara som en tjänst) till Microsoft Entra-ID. De kan ansluta appar som använder äldre autentiseringsmetoder med Microsoft Entra-ID. Kunder kan konsolidera till Microsoft Entra-ID för att förenkla apphanteringen och implementera Nolltillit principer.
Översikt över lösningen
Lösningen som du skapar kan innehålla följande delar:
- Appidentifiering – Ofta känner kunderna inte till alla program som används
- Programidentifiering hittar program som underlättar appintegrering med Microsoft Entra-ID
- Appmigrering – Skapa ett arbetsflöde för att integrera appar med Microsoft Entra-ID utan att använda administrationscentret för Microsoft Entra
- Integrera appar som kunder använder idag
- Stöd för äldre autentisering – Ansluta appar med äldre autentiseringsmetoder och enkel inloggning (SSO)
- Villkorlig åtkomst – Gör det möjligt för kunder att tillämpa Microsoft Entra-principer på appar i din lösning utan att använda administrationscentret för Microsoft Entra
Läs mer: Vad är villkorlig åtkomst?
Se följande avsnitt för tekniska överväganden och rekommendationer.
Publicera program till Azure Marketplace
Azure Marketplace är en betrodd källa till program för IT-administratörer. Program är kompatibla med Microsoft Entra-ID och stöder enkel inloggning, automatiserar användaretablering och integrerar i externa klienter med automatisk appregistrering.
Du kan förintegrera ditt program med Microsoft Entra-ID för att stödja enkel inloggning och automatisk etablering. Se Skicka en begäran om att publicera ditt program i Microsoft Entra-programgalleriet.
Vi rekommenderar att du blir en verifierad utgivare, så att kunderna vet att du är den betrodda utgivaren. Se Verifiering av utgivare.
Aktivera enkel inloggning för IT-administratörer
Det finns flera sätt att aktivera enkel inloggning för IT-administratörer i din lösning. Se Planera en distribution med enkel inloggning, alternativ för enkel inloggning.
Microsoft Graph använder OIDC/OAuth. Kunder använder OIDC för att logga in på din lösning. Använd JSON Web Token (JWT) Microsoft Entra ID-problem för att interagera med Microsoft Graph. Se OpenID Connect på Microsofts identitetsplattform.
Om din lösning använder SAML för IT-administratörens enkel inloggning aktiverar INTE SAML-token din lösning för att interagera med Microsoft Graph. Du kan använda SAML för IT-administratörs-SSO, men din lösning måste stödja OIDC-integrering med Microsoft Entra-ID, så att den kan hämta en JWT från Microsoft Entra-ID för att interagera med Microsoft Graph. Se Hur Microsofts identitetsplattform använder SAML-protokollet.
Du kan använda någon av följande SAML-metoder:
- Rekommenderad SAML-metod: Skapa en ny registrering på Azure Marketplace, som är en OIDC-app. Kunder lägger till SAML- och OIDC-apparna i sin klientorganisation. Om ditt program inte finns i Microsoft Entra-galleriet kan du börja med en app som inte är en galleriapp för flera innehavare.
- Alternativ SAML-metod: Kunder kan skapa en OIDC-programregistrering i sin Microsoft Entra-klientorganisation och ange URI:er, slutpunkter och behörigheter
Använd tilldelningstypen för klientautentiseringsuppgifter, vilket kräver lösningen för att tillåta kunder att ange ett klient-ID och en hemlighet. Lösningen kräver också att du lagrar den här informationen. Hämta en JWT från Microsoft Entra-ID och använd den sedan för att interagera med Microsoft Graph. Se Hämta en token. Vi rekommenderar att du repare kunddokumentation om hur du skapar programregistrering i sin Microsoft Entra-klientorganisation. Inkludera slutpunkter, URI:er och behörigheter.
Kommentar
Innan program används för IT-administratör eller användar-SSO måste kundens IT-administratör samtycka till programmet i klientorganisationen. Se Bevilja administratörsmedgivande för hela klientorganisationen till ett program.
Autentiseringsflöden
Autentiseringsflödena för lösningen stöder följande scenarier:
- Kundens IT-administratör loggar in med enkel inloggning för att administrera din lösning
- Kundens IT-administratör använder din lösning för att integrera program med Microsoft Entra-ID med Microsoft Graph
- Användare loggar in på äldre program som skyddas av din lösning och Microsoft Entra-ID
Din kund-IT-administratör gör enkel inloggning till din lösning
Din lösning kan använda SAML eller OIDC för enkel inloggning när kundens IT-administratör loggar in. Vi rekommenderar att IT-administratören loggar in på din lösning med sina Microsoft Entra-autentiseringsuppgifter, vilket möjliggör användning av aktuella säkerhetskontroller. Integrera ditt med Microsoft Entra ID för enkel inloggning via SAML eller OIDC.
Följande diagram illustrerar användarautentiseringsflödet:
- IT-administratören loggar in på din lösning med sina Microsoft Entra-autentiseringsuppgifter
- Lösningen omdirigerar IT-administratören till Microsoft Entra-ID med en SAML- eller OIDC-inloggningsbegäran
- Microsoft Entra autentiserar IT-administratören och omdirigerar dem till din lösning med en SAML-token eller JWT som ska auktoriseras i din lösning
IT-administratörer integrerar program med Microsoft Entra-ID
IT-administratörer integrerar program med Microsoft Entra-ID med hjälp av din lösning, som använder Microsoft Graph för att skapa programregistreringar och principer för villkorsstyrd åtkomst i Microsoft Entra.
Följande diagram illustrerar användarautentiseringsflödet:
- IT-administratören loggar in på din lösning med sina Microsoft Entra-autentiseringsuppgifter
- Lösningen omdirigerar IT-administratören till Microsoft Entra-ID med en SAML- eller OIDC-inloggningsbegäran
- Microsoft Entra autentiserar IT-administratören och omdirigerar dem till din lösning med en SAML-token eller JWT för auktorisering
- När IT-administratören integrerar ett program med Microsoft Entra-ID anropar lösningen Microsoft Graph med deras JWT för att registrera program eller tillämpa principer för villkorsstyrd åtkomst i Microsoft Entra
Användare loggar in på programmen
När användare loggar in på program använder de OIDC eller SAML. Om programmen behöver interagera med Microsoft Graph eller Microsoft Entra-skyddat API rekommenderar vi att du konfigurerar dem att använda OICD. Den här konfigurationen säkerställer att JWT används för att interagera med Microsoft Graph. Om det inte finns något behov av att program interagerar med Microsoft Graph eller Microsoft Entra-skyddade API:er använder du SAML.
Följande diagram visar användarautentiseringsflödet:
- Användaren loggar in på ett program
- Lösningen omdirigerar användaren till Microsoft Entra-ID med en SAML- eller OIDC-inloggningsbegäran
- Microsoft Entra autentiserar användaren och omdirigerar dem till din lösning med en SAML-token eller JWT för auktorisering
- Lösningen tillåter begäran med hjälp av programprotokollet
Microsoft Graph API
Vi rekommenderar att du använder följande API:er. Använd Microsoft Entra-ID för att konfigurera delegerade behörigheter eller programbehörigheter. Använd delegerade behörigheter för den här lösningen.
- API för programmallar – I Azure Marketplace använder du det här API:et för att hitta en matchande programmall
- Behörigheter som krävs: Application.Read.All
- API för programregistrering – Skapa OIDC- eller SAML-programregistreringar för användare för att logga in på program som skyddas med din lösning
- Behörigheter som krävs: Application.Read.All, Application.ReadWrite.All
- API för tjänstens huvudnamn – När du har registrerat appen uppdaterar du objektet för tjänstens huvudnamn för att ange egenskaper för enkel inloggning
- Behörigheter som krävs: Application.ReadWrite.All, Directory.AccessAsUser.All, AppRoleAssignment.ReadWrite.All (för tilldelning)
- API för villkorsstyrd åtkomst – Tillämpa principer för villkorsstyrd åtkomst i Microsoft Entra för användarprogram
- Behörigheter som krävs: Policy.Read.All, Policy.ReadWrite.ConditionalAccess och Application.Read.All
Läs mer Använd Microsoft Graph API
Microsoft Graph API-scenarier
Använd följande information för att implementera programregistreringar, ansluta äldre program och aktivera principer för villkorsstyrd åtkomst. Lär dig hur du automatiserar administratörsmedgivande, hämtar certifikatet för tokensignering och tilldelar användare och grupper.
Använda Microsoft Graph API för att registrera appar med Microsoft Entra-ID
Lägga till appar på Azure Marketplace
Vissa program som dina kunder använder finns på Azure Marketplace. Du kan skapa en lösning som lägger till program i den externa klientorganisationen. Använd följande exempel med Microsoft Graph API för att söka efter en mall i Azure Marketplace.
Kommentar
I API för programmallar är visningsnamnet skiftlägeskänsligt.
Authorization: Required with a valid Bearer token
Method: Get
https://graph.microsoft.com/v1.0/applicationTemplates?$filter=displayname eq "Salesforce.com"
Om du hittar en matchning från API-anropet samlar du in ID:t. Gör följande API-anrop och ange ett visningsnamn för programmet i JSON-brödtexten:
Authorization: Required with a valid Bearer token
Method: POST
Content-type: application/json
https://graph.microsoft.com/v1.0/applicationTemplates/cd3ed3de-93ee-400b-8b19-b61ef44a0f29/instantiate
{
"displayname": "Salesforce.com"
}
När du har ringt API-anropet genererar du ett objekt för tjänstens huvudnamn. Samla in program-ID:t och tjänstens huvudnamns-ID som ska användas i nästa API-anrop.
Korrigera objektet för tjänstens huvudnamn med SAML-protokollet och en inloggnings-URL:
Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: servicePrincipal/json
https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-bbbb-cccc-1111-222222222222
{
"preferredSingleSignOnMode":"saml",
"loginURL": "https://www.salesforce.com"
}
Korrigera programobjektet med omdirigerings-URI:er och identifierar-URI:er:
Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: application/json
https://graph.microsoft.com/v1.0/applications/00001111-aaaa-2222-bbbb-3333cccc4444
{
"web": {
"redirectUris":["https://www.salesforce.com"]},
"identifierUris":["https://www.salesforce.com"]
}
Lägg till appar som inte finns på Azure Marketplace
Om det inte finns någon matchning på Azure Marketplace eller om du vill integrera ett anpassat program registrerar du ett anpassat program i Microsoft Entra-ID med mall-ID:t: 8adf8e6e-67b2-4cf2-a259-e3dc5476c621. Gör sedan följande API-anrop och ange ett programvisningsnamn i JSON-brödtexten:
Authorization: Required with a valid Bearer token
Method: POST
Content-type: application/json
https://graph.microsoft.com/v1.0/applicationTemplates/8adf8e6e-67b2-4cf2-a259-e3dc5476c621/instantiate
{
"displayname": "Custom SAML App"
}
När du har ringt API-anropet genererar du ett objekt för tjänstens huvudnamn. Samla in program-ID:t och tjänstens huvudnamns-ID som ska användas i nästa API-anrop.
Korrigera objektet för tjänstens huvudnamn med SAML-protokollet och en inloggnings-URL:
Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: servicePrincipal/json
https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-bbbb-cccc-1111-222222222222
{
"preferredSingleSignOnMode":"saml",
"loginURL": "https://www.samlapp.com"
}
Korrigera programobjektet med omdirigerings-URI:er och identifierar-URI:er:
Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: application/json
https://graph.microsoft.com/v1.0/applications/00001111-aaaa-2222-bbbb-3333cccc4444
{
"web": {
"redirectUris":["https://www.samlapp.com"]},
"identifierUris":["https://www.samlapp.com"]
}
Använda enkel inloggning med Microsoft Entra
När SaaS-programmen har registrerats i Microsoft Entra-ID måste programmen börja använda Microsoft Entra-ID som identitetsprovider (IdP):
- Program stöder enkel inloggning med ett klick – Microsoft Entra-ID aktiverar programmen. I administrationscentret för Microsoft Entra utför kunden enkel inloggning med ett klick med administrativa autentiseringsuppgifter för de SaaS-program som stöds.
- Program stöder inte enkel inloggning med ett klick – Kunden gör det möjligt för programmen att använda Microsoft Entra-ID.
Ansluta appar till Microsoft Entra-ID med äldre autentisering
Din lösning kan göra det möjligt för kunden att använda SSO- och Microsoft Entra-funktioner, även program som inte stöds. För att tillåta åtkomst med äldre protokoll anropar ditt program Microsoft Entra-ID för att autentisera användaren och tillämpa principer för villkorsstyrd åtkomst i Microsoft Entra. Aktivera den här integreringen från konsolen. Skapa en SAML- eller OIDC-programregistrering mellan din lösning och Microsoft Entra-ID.
Skapa en SAML-programregistrering
Använd följande anpassade programmalls-ID: 8adf8e6e-67b2-4cf2-a259-e3dc5476c621. Gör sedan följande API-anrop och ange ett visningsnamn i JSON-brödtexten:
Authorization: Required with a valid Bearer token
Method: POST
Content-type: application/json
https://graph.microsoft.com/v1.0/applicationTemplates/8adf8e6e-67b2-4cf2-a259-e3dc5476c621/instantiate
{
"displayname": "Custom SAML App"
}
När du har ringt API-anropet genererar du ett objekt för tjänstens huvudnamn. Samla in program-ID:t och tjänstens huvudnamns-ID som ska användas i nästa API-anrop.
Korrigera objektet för tjänstens huvudnamn med SAML-protokollet och en inloggnings-URL:
Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: servicePrincipal/json
https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-bbbb-cccc-1111-222222222222
{
"preferredSingleSignOnMode":"saml",
"loginURL": "https://www.samlapp.com"
}
Korrigera programobjektet med omdirigerings-URI:er och identifierar-URI:er:
Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: application/json
https://graph.microsoft.com/v1.0/applications/00001111-aaaa-2222-bbbb-3333cccc4444
{
"web": {
"redirectUris":["https://www.samlapp.com"]},
"identifierUris":["https://www.samlapp.com"]
}
Skapa en OIDC-programregistrering
Använd följande mall-ID för ett anpassat program: 8adf8e6e-67b2-4cf2-a259-e3dc5476c621. Gör följande API-anrop och ange ett visningsnamn i JSON-brödtexten:
Authorization: Required with a valid Bearer token
Method: POST
Content-type: application/json
https://graph.microsoft.com/v1.0/applicationTemplates/8adf8e6e-67b2-4cf2-a259-e3dc5476c621/instantiate
{
"displayname": "Custom OIDC App"
}
Från API-anropet samlar du in program-ID:t och tjänstens huvudnamns-ID som ska användas i nästa API-anrop.
Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: application/json
https://graph.microsoft.com/v1.0/applications/{Application Object ID}
{
"web": {
"redirectUris":["https://www.samlapp.com"]},
"identifierUris":["[https://www.samlapp.com"],
"requiredResourceAccess": [
{
"resourceAppId": "00000003-0000-0000-c000-000000000000",
"resourceAccess": [
{
"id": "7427e0e9-2fba-42fe-b0c0-848c9e6a8182",
"type": "Scope"
},
{
"id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d",
"type": "Scope"
},
{
"id": "37f7f235-527c-4136-accd-4a02d197296e",
"type": "Scope"
}]
}]
}
Kommentar
API-behörigheterna i resourceAccess
noden ger programmet behörigheterna openid, User.Read och offline_access, som aktiverar inloggning. Se Översikt över Microsoft Graph-behörigheter.
Tillämpa principer för villkorsstyrd åtkomst
Kunder och partner kan använda Microsoft Graph-API:et för att skapa eller tillämpa principer för villkorsstyrd åtkomst per program. För partner kan kunder tillämpa dessa principer från din lösning utan att använda administrationscentret för Microsoft Entra. Det finns två alternativ för att tillämpa principer för villkorsstyrd åtkomst i Microsoft Entra:
- Tilldela programmet till en princip för villkorsstyrd åtkomst
- Skapa en ny princip för villkorlig åtkomst och tilldela programmet till den
Använda en princip för villkorsstyrd åtkomst
Kör följande fråga för en lista över principer för villkorsstyrd åtkomst. Hämta det principobjekt-ID som ska ändras.
Authorization: Required with a valid Bearer token
Method:GET
https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies
Om du vill korrigera principen inkluderar du programobjekt-ID:t som ska ingå i omfånget includeApplications
för , i JSON-brödtexten:
Authorization: Required with a valid Bearer token
Method: PATCH
https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies/{policyid}
{
"displayName":"Existing Conditional Access Policy",
"state":"enabled",
"conditions":
{
"applications":
{
"includeApplications":[
"00000003-0000-0ff1-ce00-000000000000",
"{Application Object ID}"
]
},
"users": {
"includeUsers":[
"All"
]
}
},
"grantControls":
{
"operator":"OR",
"builtInControls":[
"mfa"
]
}
}
Skapa en ny princip för villkorsstyrd åtkomst
Lägg till programobjekt-ID:t i omfånget includeApplications
, i JSON-brödtexten:
Authorization: Required with a valid Bearer token
Method: POST
https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies/
{
"displayName":"New Conditional Access Policy",
"state":"enabled",
"conditions":
{
"applications": {
"includeApplications":[
"{Application Object ID}"
]
},
"users": {
"includeUsers":[
"All"
]
}
},
"grantControls": {
"operator":"OR",
"builtInControls":[
"mfa"
]
}
}
#Policy Template for Requiring Compliant Device
{
"displayName":"Enforce Compliant Device",
"state":"enabled",
"conditions": {
"applications": {
"includeApplications":[
"{Application Object ID}"
]
},
"users": {
"includeUsers":[
"All"
]
}
},
"grantControls": {
"operator":"OR",
"builtInControls":[
"compliantDevice",
"domainJoinedDevice"
]
}
}
#Policy Template for Block
{
"displayName":"Block",
"state":"enabled",
"conditions": {
"applications": {
"includeApplications":[
"{Application Object ID}"
]
},
"users": {
"includeUsers":[
"All"
]
}
},
"grantControls": {
"operator":"OR",
"builtInControls":[
"block"
]
}
}
Automatisera administratörsmedgivande
Om kunden lägger till program från din lösning till Microsoft Entra-ID kan du automatisera administratörsmedgivande med Microsoft Graph. Du behöver det objekt-ID för programtjänstens huvudnamn som du skapade i API-anrop och objekt-ID:t för Microsoft Graph-tjänstens huvudnamn från den externa klientorganisationen.
Hämta objekt-ID:t för Microsoft Graph-tjänstens huvudnamn genom att göra följande API-anrop:
Authorization: Required with a valid Bearer token
Method:GET
https://graph.microsoft.com/v1.0/serviceprincipals/?$filter=appid eq '00000003-0000-0000-c000-000000000000'&$select=id,appDisplayName
Gör följande API-anrop för att automatisera administratörsmedgivande:
Authorization: Required with a valid Bearer token
Method: POST
Content-type: application/json
https://graph.microsoft.com/v1.0/oauth2PermissionGrants
{
"clientId":"{Service Principal Object ID of Application}",
"consentType":"AllPrincipals",
"principalId":null,
"resourceId":"{Service Principal Object ID Of Microsoft Graph}",
"scope":"openid user.read offline_access}"
}
Hämta certifikatet för tokensignering
Om du vill hämta den offentliga delen av tokensigneringscertifikatet använder du GET
från Microsoft Entra-metadataslutpunkten för programmet:
Method:GET
https://login.microsoftonline.com/{Tenant_ID}/federationmetadata/2007-06/federationmetadata.xml?appid={Application_ID}
Tilldela användare och grupper
När du har publicerat programmet till Microsoft Entra-ID kan du tilldela appen till användare och grupper för att säkerställa att den visas på Mina appar portalen. Den här tilldelningen finns på det objekt för tjänstens huvudnamn som genererades när du skapade programmet. Se Mina appar portalöversikt.
Hämta AppRole
instanser som programmet kan ha associerat med det. Det är vanligt att SaaS-program har olika AppRole
instanser associerade med dem. För anpassade program finns det vanligtvis en standardinstans AppRole
. Hämta det AppRole
instans-ID som du vill tilldela:
Authorization: Required with a valid Bearer token
Method:GET
https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-bbbb-cccc-1111-222222222222
Från Microsoft Entra-ID hämtar du det användar- eller gruppobjekt-ID som du vill tilldela till programmet. Ta approll-ID:t från föregående API-anrop och skicka det med korrigeringstexten på tjänstens huvudnamn:
Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: servicePrincipal/json
https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-bbbb-cccc-1111-222222222222
{
"principalId":"{Principal Object ID of User -or- Group}",
"resourceId":"{Service Principal Object ID}",
"appRoleId":"{App Role ID}"
}
Partnerskap
För att skydda äldre program har Microsoft samarbeten med följande ADC-leverantörer (Application Delivery Controller) när de använder nätverks- och leveranskontrollanter.
- Åtkomst till Akamai Enterprise-program
- Citrix ADC
- F5 BIG-IP Access Policy Manager
- Kemp LoadMaster
- Pulse Secure Virtual Traffic Manager
Följande VPN-lösningsleverantörer ansluter med Microsoft Entra-ID för att aktivera moderna autentiserings- och auktoriseringsmetoder som enkel inloggning och multifaktorautentisering (MFA).
- Cisco Secure Firewall – säker klient
- Fortinet FortiGate
- F5 BIG-IP Access Policy Manager
- Palo Alto Networks GlobalProtect
- Pulse Connect Secure
Följande leverantörer av programvarudefinierade perimeterlösningar (SDP) ansluter till Microsoft Entra ID för autentiserings- och auktoriseringsmetoder som SSO och MFA.
- Datawiza Access Broker
- Perimeter 81
- Silverfort Authentication Platform
- Strata Maverics Identity Orchestrator
- Privat Zscaler-åtkomst