StoreFront

OIDC Entra ID-Authentifizierung (Vorschau)

Dieser Abschnitt beschreibt, wie NetScaler und StoreFront konfiguriert werden, damit Benutzer sich mit Entra ID authentifizieren können. In dieser Konfiguration können Benutzer entweder eine hybride Identität oder eine reine Entra-Identität ohne Active Directory-Konto haben.

WICHTIG:

Das Entra ID Single Sign-On für VDA befindet sich derzeit in der Vorschau. Diese Funktion wird ohne Support bereitgestellt und wird noch nicht für den Einsatz in Produktionsumgebungen empfohlen.

Voraussetzungen

  • NetScaler ADC
  • StoreFront 2603 oder höher
  • Microsoft Entra ID und Konto mit einer der folgenden Berechtigungen:
    • Cloud-Anwendungsadministrator
    • Anwendungsadministrator
    • Globaler Administrator

Erstellen einer Microsoft Azure Entra ID-Anwendung

Eine App-Registrierung in Microsoft Entra ID definiert Ihre Anwendung so, dass Entra ID sie erkennt – in diesem Fall NetScaler OIDC. Diese Registrierung verwaltet auch die Authentifizierungs- und Autorisierungsanfragen der Anwendung. Da OAuth einen vertrauenswürdigen Identitätsanbieter (IdP) benötigt, um Benutzer zu authentifizieren und Token auszustellen, teilt die Registrierung Ihrer App Entra ID mit: „Diese Anwendung verwendet Sie als ihren IdP für OAuth-Flows.“

  1. Melden Sie sich beim Azure-Portal für den Entra ID-Mandanten an, den Sie für die NetScaler- oder StoreFront-Authentifizierung verwenden.
  2. Gehen Sie zu Microsoft Entra ID-Ressource > Verwalten > App-Registrierungen, und wählen Sie dann Neue Registrierung.
  3. Benennen Sie die Anwendung, zum Beispiel NetScaler StoreFront Authentication.
  4. Wählen Sie unter Unterstützte Kontotypen die Option Nur Konten in diesem Organisationsverzeichnis aus.
  5. Wählen Sie unter Umleitungs-URI die Option Web für den Typ der Anwendung, die Sie erstellen möchten. Geben Sie die URI ein, an die das Zugriffstoken gesendet wird. Verwenden Sie das Format <NetScaler Virtual Server URL>/oauth/login, zum Beispiel https://netscalerentra.customer.com/oauth/login.

    Azure ID

Client-Geheimnis erstellen

So erstellen Sie ein Client-Geheimnis:

  1. Nachdem Sie die Anwendung registriert haben, gehen Sie zu Verwalten > Zertifikate & Geheimnisse.
  2. Wählen Sie Client-Geheimnisse und dann Neues Client-Geheimnis aus. Ihre App verwendet diese Anmeldeinformationen, um sicher mit dem IdP zu kommunizieren und Token anzufordern.
  3. Geben Sie eine Beschreibung des Geheimnisses und eine Dauer an.
  4. Nachdem Sie das Geheimnis erstellt haben, notieren Sie den Geheimniswert, da Sie ihn später im Einrichtungsprozess benötigen und er nur während dieser Erstellungsphase sichtbar ist.

Azure NetScaler

Anwendungsberechtigungen konfigurieren

So konfigurieren Sie App-Berechtigungen:

  1. Gehen Sie zu Verwalten > App-Registrierungen und wählen Sie dann Ihre Anwendung aus.
  2. Wählen Sie Verwalten > API-Berechtigungen.
  3. Die Berechtigung User.Read ist standardmäßig bereits hinzugefügt.
  4. Fügen Sie openid und profile hinzu.
  5. Wählen Sie Grant admin consent for <tenant name> und akzeptieren Sie.

“Grant admin consent for” in den API-Berechtigungen in Microsoft Entra ID bedeutet, dass ein Administrator im Namen aller Benutzer in der Organisation einer Anwendung die Genehmigung erteilt, auf bestimmte Ressourcen oder APIs mit den angeforderten Berechtigungen zuzugreifen.

Azure-Berechtigung erteilen(/de-de/storefront/current-release/media/integrate-with-citrix-gateway-and-citrix-adc/azure-grant-permission.png)

Citrix DaaS konfigurieren, um XML-Vertrauen zu aktivieren

Standardmäßig authentifiziert Citrix DaaS Anfragen mithilfe der Active Directory-Anmeldeinformationen des Benutzers. Bei der Entra ID-Authentifizierung verfügt StoreFront nicht über die Anmeldeinformationen. Daher müssen Sie DaaS so konfigurieren, dass StoreFront vertraut wird, ohne dass eine Authentifizierung erforderlich ist. Es wird dringend empfohlen, stattdessen Sicherheitsschlüssel zu aktivieren, um eine Authentifizierung auf Dienstebene bereitzustellen.

  1. Melden Sie sich bei Citrix Cloud an und rufen Sie die DaaS-Konsole auf.
  2. Gehen Sie zu Einstellungen.
  3. Aktivieren Sie XML-Vertrauen.

    Azure-Berechtigung erteilen(/de-de/storefront/current-release/media/integrate-with-citrix-gateway-and-citrix-adc/azure-xml-trust.png)

  4. (Optionaler Schritt) Für zusätzliche Sicherheit können Sie Sicherheitsschlüssel zwischen DaaS und StoreFront aktivieren. Weitere Informationen finden Sie unter Sicherheitsschlüssel verwalten in der Citrix DaaS™-Dokumentation.

NetScaler-Authentifizierungsprofil konfigurieren

Dieser Abschnitt beschreibt, wie Sie ein NetScaler-Authentifizierungsprofil konfigurieren, das Sie an Ihren Gateway-VPN-Virtual-Server binden können. Diese Konfiguration weist den ADC an, wie Benutzer zur Anmeldung an einen externen OAuth-IdP (wie Microsoft Entra ID) umgeleitet werden und wie die nach der Authentifizierung empfangenen OAuth-Token verarbeitet werden. Sie legt Endpunkte, Client-Anmeldeinformationen, Bereiche und die Art und Weise fest, wie der ADC Benutzerinformationen aus Token extrahiert.

Sie benötigen das Client-Geheimnis aus den vorherigen Schritten und die Microsoft Entra ID-Authentifizierungsendpunkte. Sie finden die Authentifizierungsendpunkte im Azure-Portal, indem Sie zu Ihrer App-Registrierungsübersicht navigieren und auf die Registerkarte Endpunkte klicken.

Authentifizierungs-Virtual-Server erstellen

Der Authentifizierungs-Virtual-Server übernimmt die Benutzerauthentifizierung.

add authentication vserver EntraId_Authentication_VirtualServer SSL 0.0.0.0 443 \
  -state ENABLED \
  -authentication ON \
  -td 0 -appflowLog ENABLED \
  -noDefaultBindings NO
<!--NeedCopy-->

OAuth-Richtlinie und -Aktion erstellen

Die OAuth-Aktion gibt an, wie NetScaler ADC mit einem OAuth-IdP wie Microsoft Entra ID interagiert. Diese Aktion ermöglicht es dem Citrix Gateway, Benutzer zur Anmeldung an den IdP umzuleiten und das zurückgegebene OAuth-Token zu verarbeiten. Sie setzt userNameField auf oid, wodurch das Gateway die OID als Benutzernamen bei der Authentifizierung bei StoreFront übergibt. StoreFront überprüft, ob die OID mit den Details übereinstimmt, die es beim Nachschlagen des Entra ID-Zugriffstokens erhält, andernfalls schlägt die Authentifizierung fehl.

Sie benötigen die Client-ID und das Client-Geheimnis aus den vorherigen Schritten.

add authentication OAuthAction EntraId_Oauth_Server \
  -authorizationEndpoint "https://login.microsoftonline.com/<TenantId>/oauth2/v2.0/authorize\?prompt=login" \
  -tokenEndpoint "https://login.microsoftonline.com/<TenantId>/oauth2/v2.0/token" \
  -clientID <ClientId> \
  -clientSecret <ClientSecret> \
  -Attribute1 email \
  -Attribute2 family_name \
  -Attribute3 given_name \
  -Attribute4 upn \
  -CertEndpoint "https://login.microsoftonline.com/<TenantId>/discovery/v2.0/keys" \
  -userNameField oid \
  -allowedAlgorithms HS256 RS256 RS512 \
  -PKCE ENABLED \
  -tokenEndpointAuthMethod client_secret_post \
  -OAuthType GENERIC \
  -grantType CODE \
  -refreshInterval 1440
add authentication Policy EntraId_Authentication_Policy \
  -rule true \
  -action EntraId_Oauth_Server
<!--NeedCopy-->

Das authorizationEndpoint enthält den Abfragezeichenfolgenparameter prompt=login, sodass Benutzer zur erneuten Authentifizierung gezwungen werden, wenn sie versuchen, über den NetScaler auf StoreFront zuzugreifen.

Authentifizierungsrichtlinie an den virtuellen Server binden

bind authentication vserver EntraId_Authentication_VirtualServer \
  -policy EntraId_Authentication_Policy \
  -priority 100 \
  -gotoPriorityExpression END
<!--NeedCopy-->

Authentifizierungsprofil erstellen

add authentication authnProfile EntraId_Auth_Profile \
  -authnVsName EntraId_Authentication_VirtualServer \
  -AuthenticationLevel 0
<!--NeedCopy-->

VPN-Virtual-Server erstellen und Authentifizierungsprofil binden

Führen Sie die Schritte 1, 2 und 4 aus NetScaler Gateway in StoreFront integrieren aus, wobei Sie das in den vorherigen Schritten erstellte Authentifizierungsprofil verwenden.

Alternativ können Sie, wenn Sie bereits ein geeignetes Citrix Gateway haben, das neue Authentifizierungsprofil daran binden. Durch Ausführen dieses Befehls wird das vorhandene Authentifizierungsprofil ersetzt.

set vpn vserver <StoreFront ICA Proxy vServer> \
  -authentication ON \
  -authnProfile EntraId_Auth_Profile
<!--NeedCopy-->

Entra ID-Token-Injektionskonfiguration für SSO zu StoreFront

Nachdem das Citrix Gateway den Benutzer authentifiziert hat, muss es StoreFront ausreichende Informationen übermitteln, damit StoreFront die Authentifizierung des Benutzers überprüfen und die Gruppenmitgliedschaft nachschlagen kann. Standardmäßig sendet das Citrix Gateway nur den Active Directory-Benutzernamen und das Kennwort. Im Falle der Entra ID-Authentifizierung muss es das Entra ID-Zugriffstoken übergeben, damit StoreFront Benutzerinformationen über die Microsoft Graph API nachschlagen kann. Um dies zu erreichen, müssen Sie eine Rewrite-Richtlinie hinzufügen, die das Entra ID-Token dem Aufruf hinzufügt, den es zur Authentifizierung des Benutzers bei StoreFront tätigt. Wenn die Rewrite-Richtlinie für das Entra ID-Zugriffstoken nicht wirksam wird, schlägt die Anmeldung fehl. Wenn die Rewrite-Richtlinienfunktion standardmäßig deaktiviert und noch nicht aktiviert ist, müssen Sie sie zuerst aktivieren.

enable ns feature Rewrite
add rewrite action EntraId_Oauth_Insert_AccessToken_Header insert_http_header X-Citrix-OIDC-Access-Token "AAA.USER.ATTRIBUTE(\"accesstoken\")" \
  -comment "A rewrite policy to add the OAUTH access_token to subsequent user authentication requests"
add rewrite policy EntraId_Oauth_Insert_AccessToken_Policy "HTTP.REQ.URL.TO_LOWER.ENDSWITH(\"gatewayauth/login\") || HTTP.REQ.URL.TO_LOWER.ENDSWITH(\"citrixagbasic/authenticate\")" EntraId_Oauth_Insert_AccessToken_Header \
  -comment "A rewrite policy to add the OAUTH access_token to subsequent user authentication requests"
bind vpn vserver <StoreFront ICA Proxy vServer> \
  -policy EntraId_Oauth_Insert_AccessToken_Policy \
  -priority 100 \
  -gotoPriorityExpression END \
  -type REQUEST
<!--NeedCopy-->

Citrix Gateway in StoreFront konfigurieren

  1. Eine NetScaler Gateway-Instanz in StoreFront hinzufügen.

  2. Konfigurieren Sie die Citrix Gateways.

    • Legen Sie den Anmeldetyp auf Domäne fest.

    • Geben Sie eine gültige Callback-URL an. Dies ist für die Entra ID-Authentifizierung mit StoreFront erforderlich.

  3. Konfigurieren Sie das Gateway für den Remotezugriff für den Store, der die Citrix DaaS-Ressourcen aggregiert.

  4. Aktivieren Sie auf dem Bildschirm Authentifizierungsmethoden verwalten die Option Pass-Through von Citrix Gateway und konfigurieren Sie die Entra ID-Einstellungen