Konfigurere indstillinger for SAML 2.0-udbyder for portaler

Bemærk

Denne dokumentation vedrører Dynamics 365-portaler og nyere versioner.

En eller flere SAML 2.0-kompatible identitetsudbydere (Identity Providers - IdP'er) kan tilføjes for ekstern identitetsgodkendelse. I dette dokument beskrives, hvordan du kan konfigurere forskellige identitetsudbydere for at integrere med en portal, der fungerer som en tjenesteudbyder.

AD FS (IdP)

Indstillinger for en IdP som AD FS.

Oprette en AD FS relying party-tillid

Bemærk

Se Konfigurere AD FS ved hjælp af PowerShell nedenfor for oplysninger om, hvordan du udfører disse trin i et PowerShell-script.

Brug værktøjet AD FS Management, og gå til Service > Claim Descriptions.

  1. Vælg Add Claim Description.
  2. Angiv kravet:

Visningsnavn: Persistent Identifier

  • Krav-id: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

-Markér afkrydsningsfeltet for: Publish this claim description in federation metadata as a claim type that this Federation Service can accept

-Markér afkrydsningsfeltet for: Publish this claim description in federation metadata as a claim type that this Federation Service can send

  • Vælg OK.

Brug værktøjet AD FS Management, og vælg Tillidsforhold >Relying Party-tillidsforhold.

  1. Vælg Tilføj Relying Party-tillid.
  2. Velkommen: Vælg Start.
  3. Vælg datakilde: Vælg Angiv data om en relying party manuelt, og vælg derefter Næste.
  4. Angiv vist navn: Angiv et navn, og vælg derefter Næste. Eksempel: https://portal.contoso.com/
  5. Vælg profil: Vælg AD FS 2.0 profil, og vælg derefter Næste.
  6. Konfigurer certifikat: Vælg Næste.
  7. Konfigurer URL-adresse: Markér afkrydsningsfeltet Aktivér support for SAML 2.0 WebSSO-protokollen. URL-adresse til Relying party SAML 2.0 SSO-tjeneste: Angiv https://portal.contoso.com/signin-saml2

    • Bemærk! AD FS kræver, at portalen kører på HTTPS

    Bemærk

    Det resulterende slutpunkt har følgende indstillinger:

  8. Konfigurer identiteter: Angiv https://portal.contoso.com/, vælg Tilføj, og vælg derefter Næste. Hvis det er relevant, kan flere identiteter tilføjes for hver ekstra relying party-portal. Brugere vil kunne godkende på tværs af en eller alle tilgængelige identiteter.

  9. Vælg regler for godkendelse af udstedelse: Vælg Giv alle brugere adgang til denne Relying Party, og vælg derefter Næste.
  10. Klar til at tilføje tillid: Vælg Næste.
  11. Vælg Luk.

Tilføj kravet Navn-id til den relying party-tillid:

Omdan navn på Windows-firma til Navn-id-krav (Transformér et indgående krav):

  • Indgående kravtype: Windows-kontonavn

  • Udgående kravtype: Navn-id

  • Id-format for udgående navn: Persistent Identifier

  • Passér gennem alle kravsværdier

Oprette indstillinger for websted

Anvend portalwebstedets indstillinger, som refererer til den ovenstående AD FS Relying Party-tillid.

Bemærk

En standard AD FS (IdP) konfiguration bruger kun følgende indstillinger (med eksempelværdier): Authentication/SAML2/ADFS/MetadataAddress - https://adfs.contoso.com/FederationMetadata/2007-06/FederationMetadata.xml

  • Authentication/SAML2/ADFS/AuthenticationType - http://adfs.contoso.com/adfs/services/trust
    • Brug værdien for entityID-attributten i rodelementet i samlingsmetadataene (åbn MetadataAddress URL i en browser, der er værdien af ovenstående webstedsindstilling)
  • Authentication/SAML2/ADFS/ServiceProviderRealm - https://portal.contoso.com/
  • Authentication/SAML2/ADFS/AssertionConsumerServiceUrl - https://portal.contoso.com/signin-saml2
    Samlingsmetadataene kan hentes i PowerShell ved at køre følgende script på AD FS-serveren: Import-Module adfs Get-ADFSEndpoint -AddressPath /FederationMetadata/2007-06/FederationMetadata.xml

Flere IdP-tjenester kan konfigureres ved at udskifte en etiket for [udbyder]-mærket. Hver entydige etiket danner en gruppe indstillinger, der er relateret til en IdP. Eksempler: ADFS, Azure AD, MyIdP

Navn på indstilling for websted Beskrivelse
Authentication/Registration/ExternalLoginEnabled Aktiverer eller deaktiverer ekstern konto-logon og registrering. Standard: true
Authentication/SAML2/[udbyder]/MetadataAddress Krævet. URL-adressen til WS-Federation-metadataene på AD FS (STS)-serveren. Slutter normalt med stien: /FederationMetadata/2007-06/FederationMetadata.xml. Eksempel: https://adfs.contoso.com/FederationMetadata/2007-06/FederationMetadata.xml. Du kan finde flere oplysninger under WsFederationAuthenticationOptions.MetadataAddress.
Authentication/SAML2/[udbyder]/AuthenticationType Krævet. Middlewaretypen for OWIN-godkendelse. Angiv værdien af entityID-attributten i roden af samlingsmetadataenes XML. Eksempel: http://adfs.contoso.com/adfs/services/trust. Du kan finde flere oplysninger under AuthenticationOptions.AuthenticationType.
Authentication/SAML2/[udbyder]/ServiceProviderRealm
eller
Authentication/SAML2/[udbyder]/Wtrealm
Krævet. AD FS relying party-id. Eksempel: https://portal.contoso.com/. Du kan finde flere oplysninger under WsFederationAuthenticationOptions.Wtrealm.
Authentication/SAML2/[udbyder]/AssertionConsumerServiceUrl
eller
Authentication/SAML2/[udbyder]/Wreply
Krævet. AD FS SAML Consumer Assertion-slutpunktet. Eksempel: https://portal.contoso.com/signin-saml2. Du kan finde flere oplysninger under WsFederationAuthenticationOptions.Wreply.
Authentication/SAML2/[udbyder]/Caption Anbefales. Den tekst, brugeren kan få vist i en logonbrugergrænseflade. Standard: [udbyder]. Du kan finde flere oplysninger under WsFederationAuthenticationOptions.Caption.
Authentication/SAML2/[udbyder]/CallbackPath En valgfri begrænset sti, hvor godkendelsestilbagekaldet skal behandles. Du kan finde flere oplysninger under WsFederationAuthenticationOptions.CallbackPath.
Authentication/SAML2/[udbyder]/BackchannelTimeout Timeout-værdien for back-kanal-kommunikation. Eksempel: 00:05:00 (5 minutter). Du kan finde flere oplysninger under WsFederationAuthenticationOptions.BackchannelTimeout.
Authentication/SAML2/[udbyder]/UseTokenLifetime Angiver, at godkendelsessessionens levetid (f.eks. cookies) skal stemme overens med godkendelsestokenets. WsFederationAuthenticationOptions.UseTokenLifetime.
Authentication/SAML2/[udbyder]/AuthenticationMode Middlewaretilstanden for OWIN-godkendelse. Du kan finde flere oplysninger under AuthenticationOptions.AuthenticationMode.
Authentication/SAML2/[udbyder]/SignInAsAuthenticationType Den AuthenticationType, der bruges ved oprettelse af System.Security.Claims.ClaimsIdentity. Du kan finde flere oplysninger under WsFederationAuthenticationOptions.SignInAsAuthenticationType.
Authentication/SAML2/[udbyder]/ValidAudiences Kommasepareret liste over URL-adresser til publikum. Du kan finde flere oplysninger under TokenValidationParameters.AllowedAudiences.
Authentication/SAML2/[udbyder]/ClockSkew Clock skew, som skal anvendes, når du anvender valideringstider.
Authentication/SAML2/[udbyder]/RequireExpirationTime En værdi, der angiver, om tokens skal have en værdi for 'udløb'.
Authentication/SAML2/[udbyder]/ValidateAudience En boolesk værdi, der styrer, om publikum skal valideres under validering af token.

IdP-initieret logon

AD FS understøtter den IdP-initierede SSO-profil for SAML 2.0 specifikation. Hvis portalen (SP) skal svare korrekt på anmodningen den SAML-anmodning, der er initieret af IdP, skal RelayState-parameteren være kodet korrekt.

Den grundlæggende strengværdi, der skal kodes i SAML-RelayState-parameteren, skal have formatet: ReturnUrl=/content/sub-content/, hvor /content/sub-content/ er stien til den webside, du vil gå til på portalen (SP). Stien kan erstattes af en hvilken som helst gyldig webside på portalen. Strengværdien kodes og placeres i en objektbeholderstreng med formatet: RPID =<URL-adressekodet RPID>&RelayState=<URL-adressekodet RelayState>. Hele denne streng kodes igen og føjes til en anden objektbeholder med formatet: ttps://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=<URL-adressekodet RPID/RelayState>.

Med SP-stien: /content/sub-content/ og relying party-ID: https://portal.contoso.com/ som eksempel skal du konstruere URL-adressen med følgende trin:

Kod værdien ReturnUrl=/content/sub-content/

  • for at få ReturnUrl%3D%2Fcontent%2Fsub-content%2F
  • for at få https%3A%2F%2Fportal.contoso.com%2F
  • Kod værdien RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F
  • for at få RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F
  • Indsæt den ADFS IdP-initierede SSO-sti for at få den endelige URL-adresse

Følgende PowerShell-script kan bruges til at konstruere URL-adressen (gem i en fil med navnet Get-IdPInitiatedUrl.ps1).

<#

.SYNOPSIS 

Constructs an IdP initiated SSO URL to access a portal page on the SP.

.PARAMETER path

The path to the portal page.

.PARAMETER rpid

The relying party identifier.

.PARAMETER adfsPath

The AD FS IdP initiated SSO page.

.EXAMPLE

PS C:\\> .\\Get-IdPInitiatedUrl.ps1 -path "/content/sub-content/" -rpid "https://portal.contoso.com/" -adfsPath "https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx"

#>

param

(

[parameter(mandatory=$true,position=0)]

$path,

[parameter(mandatory=$true,position=1)]

$rpid,

[parameter(position=2)]

$adfsPath = "https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx"

)

$state = "ReturnUrl=$path"

$encodedPath = [uri]::EscapeDataString($state)

$encodedRpid = [uri]::EscapeDataString($rpid)

$encodedPathRpid = [uri]::EscapeDataString("RPID=$encodedRpid&RelayState=$encodedPath")

$idpInitiatedUrl = "{0}?RelayState={1}" -f $adfsPath, $encodedPathRpid

Write-Output $idpInitiatedUrl

SAML 2.0-indstillinger for Azure Active Directory

Det forrige afsnit, der beskriver AD FS, kan også anvendes til Azure AD, fordi Azure AD fungerer som en standard SAML 2.0-kompatibel IdP. Du kommer i gang ved at logge på Azure-administrationsportal og oprette eller vælge en eksisterende mappe. Når en mappe er tilgængelig, skal du følge instruktionerne for at tilføje et program til mappen.

  1. I menuen Programmer i mappen skal du vælge Tilføj.
  2. Vælg Tilføj et program, som organisationen udvikler.
  3. Angiv et brugerdefineret navn til programmet, og vælg derefter typen webprogram og/eller web-API.
  4. I felterne URL-adresse til logon og URI for APP-ID skal du angive URL-adressen på portalen https://portal.contoso.com/. Dette svarer til ServiceProviderRealm (Wtrealm) værdien for webstedsindstillingen.
  5. På dette tidspunkt oprettes der et nyt program. Gå til sektionen Konfigurer i menuen.

    Under sektionen enkeltlogon skal du først opdatere URL-adresse til svar med en sti i URL-adressen http://portal.contoso.com/signin-azure-ad.

    Dette svarer til AssertionConsumerServiceUrl (Wreply) værdien for webstedsindstillingen.

  6. Vælg Vis slutpunkter i menuen i sidefoden, og notér feltet Dokument med samlingsmetadata.

Dette svarer til værdien MetadataAddress for webstedsindstillingen.

  • Indsæt denne URL-adresse i et browservindue for at få vist samlingsmetadataenes XML, og notér entityID attributten til rodelementet.
  • Dette svarer til værdien AuthenticationType for webstedsindstillingen.

Bemærk

En Azure AD-standardkonfiguration bruger kun til følgende indstillinger (med eksempelværdier): Authentication/SAML2/AzureAD/MetadataAddress - https://login.microsoftonline.com/01234567-89ab-cdef-0123-456789abcdef/federationmetadata/2007-06/federationmetadata.xml

Shibboleth-identitetsudbyder 3

Brug følgende retningslinjer for korrekt konfiguration af Shibboleth-identitetsudbyder som IdP-tjeneste. Følgende forudsætter, at domænet er vært for IdP'en: https://idp.contoso.com.

URL-adressen til samlingsmetadataene er: https://idp.contoso.com/idp/shibboleth

  • IdP'en skal være konfigureret til at generere og/eller betjene et persistent id. Følg vejledningen for at aktivere Generering af fast id.

  • IdP-samlingsmetadataene (<IDPSSODescriptor>) skal være konfigureret, så de indeholder en SSO-omdirigeringsbinding. Eksempel.

<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"

Location="https://idp.contoso.com/idp/profile/SAML2/Redirect/SSO"/>

Konfigurer tjenesteudbyderne (Relying Parties) ved at konfigurere metadata-providers.xml.

  • Hver forekomst af SP-samlingsmetadata (<SPSSODescriptor>) skal indeholde en Assertion Consumer-serviceopslagsbinding. En mulighed er at bruge en FilesystemMetadataProvider og referere til en konfigurationsfil, der indeholder:
<AssertionConsumerService index="1" isDefault="true"

Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"

Location="https://portal.contoso.com/signin-saml2"/>

Location-attributten svarer til AssertionConsumerServiceUrl (Wreply) indstillingen.

  • SP-samlingsmetadataene skal angive en entityID-attribut for den EntityDescriptor, der svarer til AuthenticationType-indstillingen.

<EntityDescriptor entityID="https://portal.local.contoso.com/">;...

Bemærk

En Shibboleth-standardkonfiguration bruger kun følgende indstillinger (med eksempelværdier):
Authentication/SAML2/Shibboleth/MetadataAddress - https://idp.contoso.com/idp/shibboleth

IdP-initieret logon

Shibboleth understøtter den IdP-initierede SSO-profil for SAML 2.0 specifikation. Hvis portalen (SP) skal svare korrekt på anmodningen den SAML-anmodning, der er initieret af IdP, skal RelayState-parameteren være kodet korrekt.

Den grundlæggende strengværdi, der skal kodes i SAML-RelayState-parameteren, skal have formatet: ReturnUrl=/content/sub-content/, hvor /content/sub-content/ er stien til den webside, brugeren skal gå til på portalen (SP). Stien kan erstattes af en hvilken som helst gyldig webside på portalen. Den fuldstændige IdP-initierede SSO URL-adressen skal have formatet: https://idp.contoso.com/idp/profile/SAML2/Unsolicited/SSO?providerId=<URL-adressekode udbyder-id>&target=<URL-adressekode retursti>.

Med SP-stien: /content/sub-content/ og Relying Party-ID'et: https://portal.contoso.com/, er den endelige URL-adresse: https://idp.contoso.com/idp/profile/SAML2/Unsolicited/SSO?providerId=https%3A%2F%2Fportal.contoso.com%2F&target=ReturnUrl%3D%2Fcontent%2Fsub-content%2F

Følgende PowerShell-script kan bruges til at konstruere URL-adressen (gem i en fil med navnet Get-ShibbolethIdPInitiatedUrl.ps1).

<# 

.SYNOPSIS

Constructs an IdP initiated SSO URL to access a portal page on the SP.

.PARAMETER path

The path to the portal page.

.PARAMETER providerId

The relying party identifier.

.PARAMETER shibbolethPath

The Shibboleth IdP initiated SSO page.

.EXAMPLE

PS C:\\> .\\Get-ShibbolethIdPInitiatedUrl.ps1 -path "/content/sub-content/" -providerId "https://portal.contoso.com/" -shibbolethPath "https://idp.contoso.com/idp/profile/SAML2/Unsolicited/SSO"

#>

param

(

[parameter(mandatory=$true,position=0)]

$path,

[parameter(mandatory=$true,position=1)]

$providerId,

[parameter(position=2)]

$shibbolethPath = "https://idp.contoso.com/idp/profile/SAML2/Unsolicited/SSO"

)

$state = "ReturnUrl=$path"

$encodedPath = [uri]::EscapeDataString($state)

$encodedRpid = [uri]::EscapeDataString($providerId)

$idpInitiatedUrl = "{0}?providerId={1}&target={2}" -f $shibbolethPath, $encodedRpid, $encodedPath

Write-Output $idpInitiatedUrl

Konfigurere AD FS ved hjælp af PowerShell

Tilføjelse af Relying Party-tillid i AD FS kan også udføres ved at køre følgende PowerShell-script på AD FS-serveren (gem indholdet i en fil med navnet Add-AdxPortalRelyingPartyTrustForSaml.ps1). Efter kørsel af scriptet skal du fortsætte med at konfigurere indstillingerne for portalwebstedet.

<# 

.SYNOPSIS

Adds a SAML 2.0 relying party trust entry for a Dynamics CRM portals website.

.PARAMETER domain

The domain name of the portal.

.EXAMPLE

PS C:\\> .\\Add-AdxPortalRelyingPartyTrustForSaml.ps1 -domain "portal.contoso.com"

#>

param

(

[parameter(Mandatory=$true,Position=0)]

$domain,

[parameter(Position=1)]

$callbackPath = "/signin-saml2"

)

$VerbosePreference = "Continue"

$ErrorActionPreference = "Stop"

Import-Module adfs

Function Add-CrmRelyingPartyTrust

{

param (

[parameter(Mandatory=$true,Position=0)]

$name

)

$identifier = "https://{0}/" -f $name

$samlEndpoint = New-ADFSSamlEndpoint -Binding POST -Protocol SAMLAssertionConsumer -Uri ("https://{0}{1}" -f $name, $callbackPath)

$identityProviderValue = Get-ADFSProperties | % { $_.Identifier.AbsoluteUri }

$issuanceTransformRules = @'

@RuleTemplate = "MapClaims"

@RuleName = "Transform [!INCLUDE[pn-ms-windows-short](../includes/pn-ms-windows-short.md)] Account Name to Name ID claim"

c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"]

=> issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType, Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format"] = "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent");

@RuleTemplate = "LdapClaims"

@RuleName = "Send LDAP Claims"

c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]

=> issue(store = "[!INCLUDE[pn-active-directory](../includes/pn-active-directory.md)]", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"), query = ";givenName,sn,mail;{{0}}", param = c.Value);

'@ -f $identityProviderValue

$issuanceAuthorizationRules = @'

@RuleTemplate = "AllowAllAuthzRule"

=> issue(Type = "http://schemas.microsoft.com/authorization/claims/permit", Value = "true");

'@

Add-ADFSRelyingPartyTrust -Name $name -Identifier $identifier -SamlEndpoint $samlEndpoint -IssuanceTransformRules $issuanceTransformRules -IssuanceAuthorizationRules $issuanceAuthorizationRules

}

# add the 'Identity Provider' claim description if it is missing

if (-not (Get-ADFSClaimDescription | ? { $_.Name -eq "Persistent Identifier" })) {

Add-ADFSClaimDescription -name "Persistent Identifier" -ClaimType "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" -IsOffered:$true -IsAccepted:$true

}

# add the portal relying party trust

Add-CrmRelyingPartyTrust $domain

Se også

Konfigurere Dynamics 365-portalgodkendelse
Indstille godkendelsesidentitet for en portal
Indstillinger for OAuth2-udbyder for portaler
OpenID Connect-udbyderindstillinger for portaler
WS-Federation-udbyderindstillinger for portaler
Godkendelse via Facebook-app (sidefane) for portaler