Zum Hauptinhalt springen

SSO-Konfiguration mit AD FS

gefahr

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 ManagerToolsAD FS ManagementRelying Party TrustsActions:

Beispiel für die Erstellung einer Passwork-Anwendung

Führen Sie die Schritte im — Add Relying Party Trust Wizard aus:

  1. Claims aware;
  2. Enter data about the relying party manually;
  3. Füllen Sie den Display name aus (Beispiel: passwork-sp);
  4. Überspringen Sie den Schritt — Configure Certificate, klicken Sie auf Next;
  5. Beim Schritt Configure URL:
    1. Enable support for the SAML 2.0 WebSSO protocol;
    2. Kopieren Sie aus Passwork unter — Einstellungen und BenutzerSSO-Einstellungen — die Reply URL;
    3. Fügen Sie in Relying party SAML 2.0 SSO service URL ein — https://passwork.example.com/api/v1/sso/acs
  6. Beim Schritt Configure Identifiers:
    1. Kopieren Sie aus Passwork unter — Einstellungen und BenutzerSSO-Einstellungen — den Identifier;
    2. Fügen Sie in Relying party trust identifier ein — https://passwork.example.com/api/v1/sso/metadata
  7. Überspringen Sie den Schritt — Choose Access Control Policy, klicken Sie auf Next;
  8. Überspringen Sie den Schritt — Ready to Add Trust, klicken Sie auf Next;
Beispiel der erstellten Vertrauensstellung in 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:

Eigenschaften der erstellten Anwendung öffnen

Navigieren Sie in den Eigenschaften zu Endpoints und führen Sie die folgenden Aktionen aus:

  1. Add SAML;
  2. Endpoint-Typ — SAML Logout Endpoint;
  3. Binding — Redirect;
  4. Kopieren Sie aus Passwork unter — Einstellungen und BenutzerSSO-Einstellungen — die Logout URL;
  5. Fügen Sie in Trusted URL ein — https://passwork.example.com/api/v1/sso/sls
  6. Übernehmen Sie die Änderungen und schließen Sie die Eigenschaften.

Konfiguration der Anfrageverarbeitungsregeln von SP (Passwork) in IDP (AD FS)

gefahr

Abhängig vom gewünschten Benutzer-Login-Format in Passwork können Sie Verarbeitungsregeln konfigurieren, sodass das Benutzerformat eines der folgenden sein kann:

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:

Richtlinien zur Anspruchsausstellung öffnen
Konfiguration der Verarbeitungsregeln für das Format [email protected]

Führen Sie die folgenden Aktionen aus:

  1. Add Rule;
  2. Send LDAP Attributes as Claims;
  3. Claim rule name — AttributeStatement;
  4. Attribute store — Active Directory;
  5. LDAP Attribute — User-Principal-Name;
  6. Outgoing claim type — UPN.
Beispiel für die Konfiguration eines Anspruchsattributs

Führen Sie die folgenden Aktionen aus:

  1. Add Rule;
  2. Transform an Incoming Claim;
  3. Claim rule name — Name ID Format;
  4. Incoming claim type — UPN;
  5. Outgoing claim type — Name ID;
  6. Outgoing name ID format — Transient Identifier.
Beispiel für die Konfiguration einer Name-ID-Anspruchsregel
Konfiguration der Verarbeitungsregeln für das Format username

Führen Sie die folgenden Aktionen aus:

  1. Add Rule;
  2. Send LDAP Attributes as Claims;
  3. Claim rule name — AttributeStatement;
  4. Attribute store — Active Directory;
  5. LDAP Attribute — SAM-Account-Name;
  6. Outgoing claim type — E-Mail Address;
Beispiel für die Konfiguration eines Anspruchsattributs

Führen Sie die folgenden Aktionen aus:

  1. Add Rule;
  2. Transform an Incoming Claim;
  3. Claim rule name — Name ID Format;
  4. Incoming claim type — E-Mail Address;
  5. Outgoing claim type — Name ID;
  6. Outgoing name ID format — Transient Identifier.
Beispiel für die Konfiguration einer Name-ID-Anspruchsregel

Konfiguration zusätzlicher Attributverarbeitungsregeln zur Weitergabe an SP

Bearbeiten Sie die erstellte Regel mit dem Namen AttributeStatement:

  1. Übergeben Sie an SP (Passwork) das Attribut Display-Name:
    1. LDAP Attribute — Display-Name;
    2. Outgoing claim type — geben Sie displayName ein;
  2. Übergeben Sie an SP (Passwork) das Attribut E-mail-Address:
    1. LDAP Attribute — E-Mail-Addresses;
    2. Outgoing claim type — geben Sie emailAddress ein;
Beispiel für das Hinzufügen zusätzlicher Attributansprüche

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 BenutzerSSO-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 FSEdit Federation Service Properties:

Verbunddiensteigenschaften öffnen

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

Verbunddienstbezeichner kopieren

Öffnen Sie — Einstellungen und BenutzerSSO-Einstellungen und füllen Sie die Werte aus:

Ausfüllen des Werts „Zertifikat"

Öffnen und exportieren Sie das generierte SSL-Zertifikat im base64-Format — AD FS ManagementServiceCertificatesToken-signing:

Öffentliches SSL-Zertifikat von AD FS im base64-Format abrufen

Öffnen Sie das exportierte SSL-Zertifikat mit Notepad, kopieren Sie es und fügen Sie es in das entsprechende Feld ein — Einstellungen und BenutzerSSO-Einstellungen.

Beispiel eines exportierten Schlüssels im base64-Format
-----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:

{
"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"
}
}
gefahr

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:

Authentifizierung in Passwork über SSO
Authentifizierung in Passwork über SSO