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 Anslut (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 – Anslut 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 Anslut 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:

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:

Diagram över en administratör omdirigerad till Microsoft Entra-ID för att logga in och omdirigeras sedan till lösningen.

  1. IT-administratören loggar in på din lösning med sina Microsoft Entra-autentiseringsuppgifter
  2. Lösningen omdirigerar IT-administratören till Microsoft Entra-ID med en SAML- eller OIDC-inloggningsbegäran
  3. 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:

Diagram över interaktioner mellan IT-administratören, Microsoft Entra-ID, din lösning och Microsoft Graph.

  1. IT-administratören loggar in på din lösning med sina Microsoft Entra-autentiseringsuppgifter
  2. Lösningen omdirigerar IT-administratören till Microsoft Entra-ID med en SAML- eller OIDC-inloggningsbegäran
  3. Microsoft Entra autentiserar IT-administratören och omdirigerar dem till din lösning med en SAML-token eller JWT för auktorisering
  4. 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:

Diagram över interaktioner mellan användaren, Microsoft Entra-ID, din lösning och appen.

  1. Användaren loggar in på ett program
  2. Lösningen omdirigerar användaren till Microsoft Entra-ID med en SAML- eller OIDC-inloggningsbegäran
  3. Microsoft Entra autentiserar användaren och omdirigerar dem till din lösning med en SAML-token eller JWT för auktorisering
  4. 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/3161ab85-8f57-4ae0-82d3-7a1f71680b27
{
    "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/54c4806b-b260-4a12-873c-967116983792
{
    "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/3161ab85-8f57-4ae0-82d3-7a1f71680b27
{
    "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/54c4806b-b260-4a12-873c-967116983792
{
    "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):

Anslut 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/3161ab85-8f57-4ae0-82d3-7a1f71680b27
{
    "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/54c4806b-b260-4a12-873c-967116983792
{
    "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:

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 includeApplicationsfö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"
        ]
    }
}

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/3161ab85-8f57-4ae0-82d3-7a1f71680b27

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/3161ab85-8f57-4ae0-82d3-7a1f71680b27
{
    "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.

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).

Följande leverantörer av programvarudefinierade perimeterlösningar (SDP) ansluter till Microsoft Entra ID för autentiserings- och auktoriseringsmetoder som SSO och MFA.