SSO-Konfiguration mit AD FS
Stellen Sie vor der Konfiguration von SSO sicher, dass der Parameter APP_URL in config.env mit der aktuellen Passwork-Domain übereinstimmt, Beispiel — APP_URL=https://passwork.example.com
Die folgenden Servernamen werden als Beispiele verwendet:
- Anbieter (IDP) — ad-fs.passwork.local
- Passwork-Server (SP) — passwork.example.com
Hinzufügen einer Vertrauensstellung der vertrauenden Seite
Öffnen Sie — Server Manager → Tools → AD FS Management → Relying Party Trusts → Actions:

Führen Sie die Schritte im — Add Relying Party Trust Wizard aus:
- Claims aware;
- Enter data about the relying party manually;
- Füllen Sie den Display name aus (Beispiel: passwork-sp);
- Überspringen Sie den Schritt — Configure Certificate, klicken Sie auf Next;
- Beim Schritt Configure URL:
- Enable support for the SAML 2.0 WebSSO protocol;
- Kopieren Sie aus Passwork unter — Einstellungen und Benutzer → SSO-Einstellungen — die Reply URL;
- Fügen Sie in Relying party SAML 2.0 SSO service URL ein — https://passwork.example.com/api/v1/sso/acs
- Beim Schritt Configure Identifiers:
- Kopieren Sie aus Passwork unter — Einstellungen und Benutzer → SSO-Einstellungen — den Identifier;
- Fügen Sie in Relying party trust identifier ein — https://passwork.example.com/api/v1/sso/metadata
- Überspringen Sie den Schritt — Choose Access Control Policy, klicken Sie auf Next;
- Überspringen Sie den Schritt — Ready to Add Trust, klicken Sie auf Next;
Beispiel der erstellten Vertrauensstellung in PowerShell
- PowerShell
Get-ADFSRelyingPartyTrust -Name "passwork-sp" # Command to display
AllowedAuthenticationClassReferences : {}
EncryptionCertificateRevocationCheck : CheckChainExcludeRoot
PublishedThroughProxy : False
SigningCertificateRevocationCheck : CheckChainExcludeRoot
WSFedEndpoint :
AdditionalWSFedEndpoint : {}
ClaimsProviderName : {}
ClaimsAccepted : {}
EncryptClaims : True
Enabled : True
EncryptionCertificate :
Identifier : {https://passwork.example.com/api/v1/sso/metadata}
NotBeforeSkew : 0
EnableJWT : False
AlwaysRequireAuthentication : False
Notes :
OrganizationInfo :
ObjectIdentifier : 03363cb7-5eef-ef11-b8b3-000c2993a976
ProxyEndpointMappings : {}
ProxyTrustedEndpoints : {}
ProtocolProfile : WsFed-SAML
RequestSigningCertificate : {}
EncryptedNameIdRequired : False
SignedSamlRequestsRequired : False
SamlEndpoints : {Microsoft.IdentityServer.Management.Resources.SamlEndpoint}
SamlResponseSignature : AssertionOnly
SignatureAlgorithm : http://www.w3.org/2001/04/xmldsig-more#rsa-sha256
TokenLifetime : 0
AllowedClientTypes : Public, Confidential
IssueOAuthRefreshTokensTo : AllDevices
RefreshTokenProtectionEnabled : True
RequestMFAFromClaimsProviders : False
ScopeGroupId :
ScopeGroupIdentifier :
DeviceAuthenticationMethod :
Name : passwork-sp
AutoUpdateEnabled : False
MonitoringEnabled : False
MetadataUrl :
ConflictWithPublishedPolicy : False
IssuanceAuthorizationRules :
IssuanceTransformRules :
DelegationAuthorizationRules :
LastPublishedPolicyCheckSuccessful :
LastUpdateTime : 01.01.1900 5:00:00
LastMonitoredTime : 01.01.1900 5:00:00
ImpersonationAuthorizationRules :
AdditionalAuthenticationRules :
AccessControlPolicyName : Permit everyone
AccessControlPolicyParameters :
ResultantPolicy : RequireFreshAuthentication:False
IssuanceAuthorizationRules:
{
Permit everyone
}
Get-ADFSRelyingPartyTrust -Name "passwork-sp" | Select-Object -ExpandProperty SamlEndpoints # Command to display
Binding : POST
BindingUri : urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST
Index : 0
IsDefault : False
Location : https://passwork.example.com/api/v1/sso/acs
Protocol : SAMLAssertionConsumer
ResponseLocation :
Öffnen Sie die Eigenschaften der erstellten Vertrauensstellung der vertrauenden Seite:

Navigieren Sie in den Eigenschaften zu Endpoints und führen Sie die folgenden Aktionen aus:
- Add SAML;
- Endpoint-Typ — SAML Logout Endpoint;
- Binding — Redirect;
- Kopieren Sie aus Passwork unter — Einstellungen und Benutzer → SSO-Einstellungen — die Logout URL;
- Fügen Sie in Trusted URL ein — https://passwork.example.com/api/v1/sso/sls
- Übernehmen Sie die Änderungen und schließen Sie die Eigenschaften.
Konfiguration der Anfrageverarbeitungsregeln von SP (Passwork) in IDP (AD FS)
Abhängig vom gewünschten Benutzer-Login-Format in Passwork können Sie Verarbeitungsregeln konfigurieren, sodass das Benutzerformat eines der folgenden sein kann:
- username
- [email protected]
Bitte wählen Sie das erforderliche Benutzer-Login-Format in Passwork und konfigurieren Sie entsprechend.
Wählen Sie unter Relying Party Trusts die erstellte Vertrauensstellung (passwork-sp) und öffnen Sie — Edit Claim Issuance Policy:

Konfiguration der Verarbeitungsregeln für das Format [email protected]
Führen Sie die folgenden Aktionen aus:
- Add Rule;
- Send LDAP Attributes as Claims;
- Claim rule name — AttributeStatement;
- Attribute store — Active Directory;
- LDAP Attribute — User-Principal-Name;
- Outgoing claim type — UPN.

Führen Sie die folgenden Aktionen aus:
- Add Rule;
- Transform an Incoming Claim;
- Claim rule name — Name ID Format;
- Incoming claim type — UPN;
- Outgoing claim type — Name ID;
- Outgoing name ID format — Transient Identifier.

Konfiguration der Verarbeitungsregeln für das Format username
Führen Sie die folgenden Aktionen aus:
- Add Rule;
- Send LDAP Attributes as Claims;
- Claim rule name — AttributeStatement;
- Attribute store — Active Directory;
- LDAP Attribute — SAM-Account-Name;
- Outgoing claim type — E-Mail Address;

Führen Sie die folgenden Aktionen aus:
- Add Rule;
- Transform an Incoming Claim;
- Claim rule name — Name ID Format;
- Incoming claim type — E-Mail Address;
- Outgoing claim type — Name ID;
- Outgoing name ID format — Transient Identifier.

Konfiguration zusätzlicher Attributverarbeitungsregeln zur Weitergabe an SP
Bearbeiten Sie die erstellte Regel mit dem Namen AttributeStatement:
- Übergeben Sie an SP (Passwork) das Attribut Display-Name:
- LDAP Attribute — Display-Name;
- Outgoing claim type — geben Sie displayName ein;
- Übergeben Sie an SP (Passwork) das Attribut E-mail-Address:
- LDAP Attribute — E-Mail-Addresses;
- Outgoing claim type — geben Sie emailAddress ein;

Konfiguration und Ausfüllen der Single Sign-On (SSO)-Parameter in Passwork
Ausfüllen der Werte „Benutzerattribute"
Melden Sie sich an der Passwork-Weboberfläche an, navigieren Sie zu — Einstellungen und Benutzer → SSO-Einstellungen und füllen Sie die Attribut-Zuordnungen aus:
- E-Mail-Attribut — emailAddress;
- Vollständiger-Name-Attribut — displayName.
Ausfüllen der Werte „Identity Provider → Passwork"
Öffnen Sie AD FS Management → wählen Sie das Verzeichnis AD FS → Edit Federation Service Properties:

Kopieren Sie die Adresse — Federation Service Identifier → http://ad-fs.passwork.local/adfs/services/trust:

Öffnen Sie — Einstellungen und Benutzer → SSO-Einstellungen und füllen Sie die Werte aus:
- Identifier (Entity ID) — http://ad-fs.passwork.local/adfs/services/trust
- Login URL — https://ad-fs.passwork.local/adfs/ls
- Logout URL — https://ad-fs.passwork.local/adfs/ls/?wa=wsignout1.0
Ausfüllen des Werts „Zertifikat"
Öffnen und exportieren Sie das generierte SSL-Zertifikat im base64-Format — AD FS Management → Service → Certificates → Token-signing:

Öffnen Sie das exportierte SSL-Zertifikat mit Notepad, kopieren Sie es und fügen Sie es in das entsprechende Feld ein — Einstellungen und Benutzer → SSO-Einstellungen.
Beispiel eines exportierten Schlüssels im base64-Format
- base64
-----BEGIN CERTIFICATE-----
MIIE5DCCAsygAwIBAgIQM/9SlLjzJLBHaSgQVsIEPzANBgkqhkiG9w0BAQsFADAu
MSwwKgYDVQQDEyNBREZTIFNpZ25pbmcgLSBhZC1mcy5wYXNzd29yay5sb2NhbDAe
Fw0yNTAyMTkyMDA3MjFaFw0yNjAyMTkyMDA3MjFaMC4xLDAqBgNVBAMTI0FERlMg
U2lnbmluZyAtIGFkLWZzLnBhc3N3b3JrLmxvY2FsMIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEAs6isogLhwqdncR1tYqKgS+Dwmi3DOIMfDpQNgaD/S5Vd
FngFsZ048zfYqJAn9Ypnu8UCTftoKJ2BQzRPoqaT2lpaAivyTDLKBMmbaAyOHoQH
RAd6NQazUYcbW2vMWwA4sa8hTDwwwZPOFhx3AR5EbW4IQo0sHWHOYCIWmH0td9+4
Lqiy7VkHT3fcUCuDL+kopjnsvdJLvbpg7ZPFkYLgy/ANP9+90yt/L1/Mj682bV3b
HgaPbAOzaG7qS6pA94wPmKYLnNf2C89vSfBaA+KjfWjhK5YMPbWLUxolNX7zz6bx
BQKdU/W7pTQIIIffy0rLNwWyaQbKKh77C9OKWLE3k54OhNAyJHXF332CK7psPSVT
fRDqagYGZQF/EhPQG7kMPpr6IiZ76v9FmZz59ruYaLA9f0YYK2NpiLdY1EHLdm19
H+72T/ZFEOLKExr+BbEOcQAlnqGXSs0YdrWTwMEBCqnrPiS4153298VEqKto1sUz
hqnBookmLgUymqApN50KIffezRK/ghfoxBY16EzlYAyVyWqaAB5WEAbCgdB2p9RN
KZHeYz3iB/cQzps1DYsZhZJ9SLS0yr8aQgYMl0PyKS7ajPR9GlGSKKz/7Q6POOtY
jz7qLcBgApacUJfOqUr2OcPzU/TsvRyHhPNzW41hIEjGWBVJ6WlpUFQYJxp5rxkC
AwEAATANBgkqhkiG9w0BAQsFAAOCAgEAbKOjd7u1qnVfL4HsVNSCSUTqXI4knvxI
NKQxZWCpkdCxPzpJJdtMPsGukZQAblEcgQPX+v94F32BA2bk8cgp08ra2OrXEXR7r
XCCm3BvUAsI6nmbzKHPm6y/3awadOu59k8qE1c+DRSrHHM9927Z4QWMKYLfKEQL4
4WBYbw/jgqs7HqMbxrdfCtNdQzGKcE+sVaT9OnDp86TopHbsndRUyXqfqkB/LSbq
cstg/cC1b9xJ+FI3xUXEl/33e9/p8ovFko5slW5kU6qET9cg6GA0OreIb+8FbbiV
LOll4aIsn44/wQ6mu3biw77l1TpoUQpf11G9fpuOV10WRttOtk4IsryMhsbrGa/R
RZMbWH2MgkLs1VlcigrUE6kMIkU743d8oyLQb7N4+O+h56YLIuWWXUMM1FNNCIov
tVutUBpSO6OgTUo5tcD9uqaD5R1+rf5A68yUslMgU+4mE9hdY/143bZMDPexKcUt
jfZOI9v4ppmoFgeWZDYMtxU40OkYZh/grnxw9aoZEPLfr8Vnf+LhGvhEFWKvvwdv
J7n49c1WxZxK7rDaSwKeydgLC1bySFQoiYkOucfO+NcdBi6R44cXBrWk1EESLuCq
X2LLIS2NoKg8pX2BPqPcTuZGclEivpg0rrovksNj3L3BRtFO3jWooqxxOfVUbk8h
uFmSLzpAW1I=
-----END CERTIFICATE-----
Ausfüllen des Werts „Zusätzliche Einstellungen"
Fügen Sie den folgenden Inhalt im JSON-Format ein:
- json
{
"sp": {
"entityId": "https://passwork.example.com/api/v1/sso/metadata",
"assertionConsumerService": {
"url": "https://passwork.example.com/api/v1/sso/acs"
},
"singleLogoutService": {
"url": "https://passwork.example.com/api/v1/sso/sls"
},
"NameIDFormat": "urn:oasis:names:tc:SAML:2.0:nameid-format:transient"
}
}
Ersetzen Sie die Domain passwork.example.com in den URLs durch Ihre Passwork-Server-Domain.
Öffnen Sie das Anmeldefenster in der Passwork-Weboberfläche und melden Sie sich über SSO an, um die korrekte Konfiguration zu überprüfen:

