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 vælg Service > Claim Descriptions.

  1. Klik på 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

  • Klik på OK

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

  1. Klik på Tilføj Relying Party-tillid...
  2. Velkommen: Klik på Start
  3. Vælg datakilde: Vælg Angiv data om en relying party manuelt, og klik på Næste
  4. Angiv vist navn: Angiv et navn, klik på Næste Eksempel: https://portal.contoso.com/
  5. Vælg profil: Vælg AD FS 2.0-profil, og klik på Næste
  6. Konfigurer certifikat: Klik på Næste
  7. Konfigurer URL-adresse: Markér 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/, klik på Tilføj, klik på Næste Flere identiteter kan føjes til hver enkelt ekstra relying party-portal, hvis relevant. 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 klik på Næste.
  10. Klar til at tilføje tillid: Klik på Næste
  11. Klik på 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. MSDN.
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. MSDN.
Authentication/SAML2/[udbyder]/ServiceProviderRealm
eller
Authentication/SAML2/[udbyder]/Wtrealm
Krævet. AD FS relying party-id. Eksempel: https://portal.contoso.com/. MSDN.
Authentication/SAML2/[udbyder]/AssertionConsumerServiceUrl
eller
Authentication/SAML2/[udbyder]/Wreply
Krævet. AD FS SAML Consumer Assertion-slutpunktet. Eksempel: https://portal.contoso.com/signin-saml2. MSDN.
Authentication/SAML2/[udbyder]/Caption Anbefales. Den tekst, brugeren kan få vist i en logonbrugergrænseflade. Standard: [udbyder]. MSDN.
Authentication/SAML2/[udbyder]/CallbackPath En valgfri begrænset sti, hvor godkendelsestilbagekaldet skal behandles. MSDN.
Authentication/SAML2/[udbyder]/BackchannelTimeout Timeout-værdien for back-kanal-kommunikation. Eksempel: 00:05:00 (5 minutter). MSDN.
Authentication/SAML2/[udbyder]/UseTokenLifetime Angiver, at godkendelsessessionens levetid (f.eks. cookies) skal stemme overens med godkendelsestokenets. MSDN.
Authentication/SAML2/[udbyder]/AuthenticationMode Middlewaretilstanden for OWIN-godkendelse. MSDN.
Authentication/SAML2/[udbyder]/SignInAsAuthenticationType Den AuthenticationType, der bruges ved oprettelse af System.Security.Claims.ClaimsIdentity. MSDN.
Authentication/SAML2/[udbyder]/ValidAudiences Kommasepareret liste over URL-adresser til publikum. MSDN.
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 navigere 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 klikke på knappen Tilføj
  2. Vælg Tilføj et program, som organisationen udvikler
  3. Angiv et brugerdefineret navn til programmet, og vælg 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 værdien ServiceProviderRealm (Wtrealm) for webstedsindstillingen
  5. På dette tidspunkt oprettes der et nyt program. Naviger 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. Klik i menuen i sidefoden på knappen Vis slutpunkter, 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

<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, der skal navigeres 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