Einen SAML 2.0-Anbieter für Portale mithilfe von AD FS konfigurieren

Hinweis

Ab 12. Oktober 2022 ist Power Apps-Portale Power Pages. Weitere Informationen: Microsoft Power Pages ist jetzt allgemein verfügbar (Blog)
Wir werden die in Kürze migrieren und die Dokumentation für Power Apps-Portale mit der Power Pages-Dokumentation zusammenführen.

Wichtig

Je nach Version Ihres Active Directory-Verbunddienste (AD FS) können die AD FS-Konfigurationsschritte variieren.

Erstellen einer AD FS-Vertrauensstellung der vertrauenden Seite

Hinweis

Siehe Konfigurieren des AD FS unter Verwendung von PowerShell unten, um Informationen dazu zu erhalten, wie diese Schritte in einem PowerShell-Skript ausgeführt werden.

  1. Wählen Sie im AD FS-Management-Tool Dienst > Anspruchsbeschreibungen aus.

    1. Klicken Sie auf Anspruchsbeschreibung hinzufügen ...

    2. Angeben des Anspruchs:

      • Anzeigename: Persistenter Bezeichner

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

      • Kontrollkästchen aktivieren für: Veröffentlichen Sie die Anspruchsbeschreibung in den Verbundmetadaten als Anspruchstyp, die dieser Verbunddienst annehmen kann

      • Kontrollkästchen aktivieren für: Veröffentlichen Sie die Anspruchsbeschreibung in den Verbundmetadaten als Anspruchstyp, die dieser Verbunddienst senden kann

    3. Klicken Sie auf OK.

  2. Verwenden Sie das AD FS Management-Tool, und wählen Sie Vertrauensstellungen >Vertrauensstellungen der vertrauenden Seite aus.

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

    2. Willkommen: Wählen Sie Start.

    3. Datenquelle auswählen: Wählen Sie Daten zur vertrauenden Seite manuell eingeben aus und klicken Sie auf Weiter.

    4. Anzeigenamen eingeben: Geben Sie einen Namen ein, und klicken Sie auf Weiter. Beispiel: https://portal.contoso.com/

    5. Profil auswählen: Wählen Sie AD FS 2.-Profil und dann Weiter aus.

    6. Zertifikat konfigurieren: Klicken Sie auf Weiter.

    7. URL konfigurieren: Aktivieren Sie das Kontrollkästchen Unterstützung für das SAML 2.0 WebSSO-Protokoll. SAML 2.0 SSO-Dienst-URL der vertrauenden Seite: Geben Sie https://portal.contoso.com/signin-saml2 ein
      Beachten Sie, dass AD FS erfordert, dass auf das Portal über HTTPS ausgeführt wird.

      Hinweis

      Der resultierende Endpunkt hat die folgenden Einstellungen:

    8. Konfigurieren Sie Identitäten: Geben Sie https://portal.contoso.com/ an, wählen Sie Hinzufügen aus, und wählen Sie dann Weiter aus. Ggf. können mehr Identitäten für jedes zusätzliche vertrauende Portal hinzugefügt werden. Benutzer können sich für beliebige oder alle verfügbaren Identitäten authentifizieren.

    9. Ausstellungs-Autorisierungsregeln wählen : Wählen Sie Allen Benutzern erlauben, auf diese vertrauende Seite zugreifen und klicken Sie dann auf Weiter.

    10. Vertrauensstellung hinzufügen vorbereiten: Klicken Sie auf Weiter.

    11. Wählen Sie Schließen aus.

  3. Fügen Sie die Namens-ID für die vertrauenden Seite hinzu:

    UmwandelnWindows des Kontonamens in den Namen-ID-Anspruch (Transformieren eines eingehenden Anspruchs):

    • Typ des eingehenden Anspruchs: Windows-Kontoname

    • Typ des ausgehenden Anspruchs: Name-ID

    • Ausgehendes Namens-ID-Format: Persistenter Bezeichner

    • Alle Anspruchswerte durchleiten

Den SAML 2.0-Anbieter konfigurieren

Nachdem Sie die AD FS vertrauende Seite eingerichtet haben, können Sie die folgenden Schritte zur Konfiguration eines SAML 2.0-Anbieters ausführen.

Identitätsanbieter– initiierte Anmeldung

AD FS unterstützt das vom Identitätsanbietr–-initiierten einmaligen Anmeldens der SAML 2.0-Spezifikation. Damit das Portal (Dienstanbieter) korrekt auf die vom Identitätsanbieter initiierte SAML-Anforderung reagieren kann, muss der RelayState-Parameter richtig codiert werden.

Der grundlegende String-Wert des in den SAML-RelayState codierten Parameters muss das folgende Format haben: ReturnUrl=/content/sub-content/ wobei /content/sub-content/ der Pfad zur gewünschten Webseite auf dem Portal (Dienstanbieter) ist. Der Pfad kann durch jede gültige Webseite im Portal ersetzt werden. Der String-Wert 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 den folgenden 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 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 portal page on the service provider.

.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

Konfigurieren des AD FS unter Verwendung von PowerShell

Der Prozess des Hinzufügens einer vertrauenden Seite in AD FS kann auch in PowerShell Script ausgeführt werden, indem Sie das folgende PowerShell-Skript auf dem AD FS-Server ausführen. Speichern Sie das Skript in einer Datei mit dem Namen Add-AdxPortalRelyingPartyTrustForSaml.ps1. Nachdem Sie das Skript ausgeführt haben, fahren Sie mit der Konfiguration der Portalwebsiteeinstellungen fort.

<# 

.SYNOPSIS

Adds a SAML 2.0 relying party trust entry for a 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 == "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 portal relying party trust


[!INCLUDE[cc-pages-ga-banner](../../../includes/cc-pages-ga-banner.md)]

Add-CrmRelyingPartyTrust $domain

Einen SAML 2.0 Anbieter konfigurieren

Nachdem Sie die AD FS vertrauende Seite eingerichtet haben, können Sie die folgenden Schritte zur Konfiguration eines SAML 2.0-Anbieters ausführen.

Siehe auch

Einen SAML 2.0-Anbieter für Portale mithilfe von Azure AD konfigurieren
FAQ zur Verwendung von SAML 2.0 in Portalen
Einen SAML 2.0-Anbieter für Portale konfigurieren

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).