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:
- AD FS in Power Pages einrichten
- Erstellen einer AD FS-Vertrauensstellung der vertrauenden Seite
- Die Einrichtung des Anbieters abschließen
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.
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.
Wählen Sie + Neuer Anbieter aus.
Unter Anmeldungsanbieter auswählen wählen Sie Sonstige aus.
Unter Protokoll wählen Sie SAML 2.0.
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.
Wählen Sie Weiter.
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.
Wählen Sie im Server-Manager Werkzeuge, und wählen Sie dann AD FS-Verwaltung aus.
Erweitern Sie Service.
Wählen Sie im Seitenfenster auf der rechten Seite Anspruchsbeschreibung hinzufügen.
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.
Wählen Sie OK aus.
Wählen Sie unter Vertrauensbeziehungen>Vertrauende Seite aus,
Wählen Sie Hinzufügen einer Vertrauensstellung der vertrauenden Seite.
Wählen Sie Start aus.
Wählen Sie Daten zur vertrauenden Seite manuell eingeben aus und klicken Sie auf Weiter.
Geben Sie einen Namen ein, zum Beispiel https://portal.contoso.com/.
Wählen Sie Weiter.
Wählen Sie AD FS 2.0 Profile und dann Weiter aus.
Wählen Sie auf der Seite Zertifikat konfigurieren die Option weiter aus.
Wählen Sie Unterstützung für das SAML 2.0 WebSSO-Protokoll aktivieren.
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.
Wählen Sie Weiter.
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.
Wählen Sie Weiter.
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.
Klicken Sie auf der Seite Ausstellungs-Autorisierungsregeln wählen auf Allen benutzern erlauben, auf diese vertrauende Seite zugreifen und dann auf Weiter.
Überprüfen Sie die Vertrauenseinstellungen und wählen Sie dann Weiter.
Wählen Sie Schließen aus.
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
Wählen Sie Regel hinzufügen.
Wählen Sie in der Liste der Anspruchsregelnvorlagen die Vorlage Eingehenden Anspruch transformieren, und klicken Sie auf Weiter.
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
Alle Anspruchswerte durchleiten auswählen.
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:
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=<URL encoded RPID>&RelayState=<URL encoded RelayState>
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=<URL> encoded RPID/RelayState>
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/
, umReturnUrl%3D%2Fcontent%2Fsub-content%2F
zu erhalten.Codieren Sie den Wert
https://portal.contoso.com/
, umhttps%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
, umRPID%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