Freigeben über


Einen SAML 2.0 Anbieter mit AD FS einrichten

Active Directory-Verbunddiest (AD FS) ist einer der SAML 2.0-Identitätsanbieter, mit denen Sie Besucher Ihrer Power Pages Website authentifizieren können. Sie können jeden anderen Anbieter nutzen, der den SAML 2.0 Spezifiaktionen entspricht.

In diesem Artikel werden folgende Schritte behandelt:

Wichtig

Je nach Einstellung für AD FS können die Schritte für die Einrichtung Ihres AD FS-Servers variieren.

AD FS in Power Pages einrichten

Legen Sie AD FS als Identitätsanbieter für Ihre Website fest.

  1. Wählen Sie auf Ihrer Power Pages-Website Sicherheit>Identitätsanbieter aus.

    Wenn keine Identitätsanbieter angezeigt werden, stellen Sie sicher, dass Externe Anmeldung auf Ein in den allgemeinen Authentifizierungseinstellungen Ihrer Website festgelegt ist.

  2. Wählen Sie + Neuer Anbieter aus.

  3. Unter Anmeldungsanbieter auswählen wählen Sie Sonstige aus.

  4. Unter Protokoll wählen Sie SAML 2.0.

  5. Benennen Sie den Anbieter.

    Der Anbietername ist der Text auf der Schaltfläche, die Benutzer sehen, wenn sie ihren Identitätsanbieter auf der Anmeldeseite auswählen.

  6. Wählen Sie Weiter.

  7. Wählen Sie unter Antwort-URL die Option Kopieren aus.

    Schließen Sie nicht Ihre Power Pages-Browserregisterkarte. Sie werden bald dazu zurückkehren.

Erstellen einer AD FS-Vertrauensstellung der vertrauenden Seite

Sie können diese Schritte auch mit einem PowerShell-Skript ausführen.

  1. Wählen Sie im Server-Manager Werkzeuge, und wählen Sie dann AD FS-Verwaltung aus.

  2. Erweitern Sie Service.

  3. Wählen Sie im Seitenfenster auf der rechten Seite Anspruchsbeschreibung hinzufügen.

  4. Geben Sie die folgenden Werte ein:

    • Anzeigename: Persistenter Bezeichner

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

    • Wählen Sie beide Diese Anspruchsbeschreibung in Verbundmetadaten veröffentlichen… Optionen.

  5. Wählen Sie OK aus.

  6. Wählen Sie unter Vertrauensbeziehungen>Vertrauende Seite aus,

  7. Wählen Sie Hinzufügen einer Vertrauensstellung der vertrauenden Seite.

  8. Wählen Sie Start aus.

  9. Wählen Sie Daten zur vertrauenden Seite manuell eingeben aus und klicken Sie auf Weiter.

  10. Geben Sie einen Namen ein, zum Beispiel https://portal.contoso.com/.

  11. Wählen Sie Weiter.

  12. Wählen Sie AD FS 2.0 Profile und dann Weiter aus.

  13. Wählen Sie auf der Seite Zertifikat konfigurieren die Option weiter aus.

  14. Wählen Sie Unterstützung für das SAML 2.0 WebSSO-Protokoll aktivieren.

  15. Geben Sie unter URL des SAML 2.0-SSO-Dienstes der vertrauenden Seite die Antwort-URL ein, die Sie kopiert haben. AD FS erfordert, dass die Website auf HTTPS und nicht auf HTTP ausgeführt wird.

  16. Wählen Sie Weiter.

  17. Geben Sie auf der Seite Identifikatoren konfigurieren die URL Ihrer Website ein und wählen Sie dann Hinzufügen.

    Sie können mehr Identitäten für jede zusätzliche vertrauende Website hinzufügen, sofern erforderlich. Benutzer können sich für beliebige verfügbaren Identitäten authentifizieren.

  18. Wählen Sie Weiter.

  19. Wählen Sie auf der Seite Multi-Faktor-Authentifizierung jetzt konfigurieren? die Option Ich möchte jetzt keine Multi-Faktor-Authentifizierungseinstellungen für diese vertrauende Seite konfigurieren.

  20. Klicken Sie auf der Seite Ausstellungs-Autorisierungsregeln wählen auf Allen benutzern erlauben, auf diese vertrauende Seite zugreifen und dann auf Weiter.

  21. Überprüfen Sie die Vertrauenseinstellungen und wählen Sie dann Weiter.

  22. Wählen Sie Schließen aus.

  23. Wählen Sie unter Anspruchsregeln bearbeiten eine der folgenden Registerkarten aus, je nachdem, welche Vertrauensstellung Sie bearbeiten und in welchem ​​Regelsatz Sie die Regel erstellen möchten:

    • Akzeptanztransformationsregeln
    • Ausgabetransformationsregeln
    • Ausgabe-Autorisierungsregeln
    • Regeln zur Delegierungsautorisierung
  24. Wählen Sie Regel hinzufügen.

  25. Wählen Sie in der Liste der Anspruchsregelnvorlagen die Vorlage Eingehenden Anspruch transformieren, und klicken Sie auf Weiter.

  26. Geben Sie die folgenden Werte ein bzw. wählen Sie diese aus.

    • Name der Anspruchsregel: Windows-Kontoname in Namens-ID transformieren

    • Typ des eingehenden Anspruchs: Windows-Kontoname

    • Typ des ausgehenden Anspruchs: Namens-ID

    • Ausgehendes Namens-ID-Format: Persistenter Bezeichner

  27. Alle Anspruchswerte durchleiten auswählen.

  28. Wählen Sie Beenden und dann OK.

chließen Sie die Einrichtung des Anbieters ab

Nachdem Sie die AD FS-Vertrauensstellung der vertrauenden Seite eingerichtet haben:

  1. Eine App-Registrierung in Azure erstellen.

  2. Website-Einstellungen in Power Pages eingeben.

Vom Identitätsanbieter initiierte Anmeldung

AD FS unterstützt das vom Identitätsanbieter-initiierten einmalige Anmelden (SSO) der SAML 2.0-Spezifikation. Damit die Website des Dienstanbieters ordnungsgemäß auf die SAML-Anfrage des Identitätsanbieters reagiert, müssen Sie den RelayState-Parameter codieren.

Der grundlegende Zeichenfolgenwert, um den SAML RelayState Parameter zu codieren, muss im Format ReturnUrl=/content/sub-content/ sein, wobei /content/sub-content/ der Pfad zur gewünschten Webseite auf der Dienstanbieter-Website ist. Sie können den Pfad zu jeder gültigen Seite der Website angeben. Der Zeichenfolgenwert wird in eine Containerzeichenfolge des Formats RPID=&lt;URL encoded RPID&gt;&RelayState=&lt;URL encoded RelayState&gt; codiert und platziert. Die gesamte Zeichenfolge wird noch einmal codiert und zu einem anderen Container des Formats <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=&lt;URL> encoded RPID/RelayState&gt; hinzugefügt.

Wenn Sie beispielsweise den Dienstanbieterpfad /content/sub-content/ und die ID der vertrauenden Seite https://portal.contoso.com/ verwenden, erstellen Sie die URL mit diesen Schritten:

  • Codieren Sie den Wert ReturnUrl=/content/sub-content/, um ReturnUrl%3D%2Fcontent%2Fsub-content%2F zu erhalten.

  • Codieren Sie den Wert https://portal.contoso.com/, um https%3A%2F%2Fportal.contoso.com%2F zu erhalten.

  • Codieren Sie den Wert RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F, um RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F zu erhalten.

  • Stellen Sie den AD FS vom Identitätsanbieter-initiiierten SSO-Pfad voran, um die abschließende URL abzurufen https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F

Sie können die folgenden PowerShell Script verwenden, um die URL zu konstruieren. Speichern Sie das Skript in einer Datei mit dem Namen Get-IdPInitiatedUrl.ps1.


<#
.SYNOPSIS 
Constructs an IdP-initiated SSO URL to access a website page on the service provider.
.PARAMETER path
The path to the website 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

Konfigurieren des AD FS unter Verwendung von PowerShell

Statt die vertrauende Seite in AD FS hinzuzufügen, können Sie das PowerShell Script auch manuell auf dem AF FS Server ausführen. Speichern Sie das Skript in einer Datei mit dem Namen Add-AdxPortalRelyingPartyTrustForSaml.ps1. Nachdem das Skript ausgeführt wurde, fahren Sie mit dem Konfiguration der Website-Einstellungen in Power Pages fort.

<# 
.SYNOPSIS
Adds a SAML 2.0 relying party trust entry for a website.
.PARAMETER domain
The domain name of the website.
.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 == "https://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"]
=> issue(Type = "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType, Properties["https://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 == "https://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
=> issue(store = "[!INCLUDE[pn-active-directory](../../../includes/pn-active-directory.md)]", types = ("https://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname", "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname", "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"), query = ";givenName,sn,mail;{{0}}", param = c.Value);
'@ -f $identityProviderValue
$issuanceAuthorizationRules = @'
@RuleTemplate = AllowAllAuthzRule
=> issue(Type = https://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
[!INCLUDE[cc-pages-ga-banner](../../../includes/cc-pages-ga-banner.md)]
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 website relying party trust
[!INCLUDE[cc-pages-ga-banner](../../../includes/cc-pages-ga-banner.md)]
Add-CrmRelyingPartyTrust $domain

Siehe auch

SAML 2.0-Anbieter einrichten
Einen SAML 2.0-Anbieter mit Microsoft Entra ID einrichten
Häufig gestellte Fragen zu SAML 2.0