500 Erreur lors de l'utilisation du compte personnalisé pour le pool d'applications dans IIS 7

11

J'ai un site très simple avec uniquement des fichiers statiques dans IIS 7 sur Windows Server 2008 SP2.

Lorsque j'essaie d'accéder à un fichier statique, j'obtiens une erreur 500. Si je renomme un fichier html pour avoir une extension aspx, cela fonctionne très bien.

Le site fonctionne également correctement lors de l'utilisation de l'identité intégrée pour le pool d'applications. Le problème se produit lorsque je passe à l'utilisation d'un compte personnalisé pour le pool d'applications. J'ai essayé d'utiliser des comptes locaux et de domaine pour exécuter le pool d'applications sous.

J'ai donné le contrôle total de ces comptes sur le répertoire et les fichiers du site Web.

L'activation du suivi révèle ce message d'erreur:
Nom du module:
Notification Web Core IIS : 2
HttpStatus: 500
HttpReason: Erreur de serveur interne
HttpSubStatus: 0 Code d' erreur
:
2147943746
Notification ConfigExceptionInfo : AUTHENTICATE_REQUEST Code d' erreur
: Soit un niveau d'emprunt d'identité requis n'a pas été fourni, soit le niveau d'emprunt d'identité fourni est invalide. (0x80070542)

Je n'ai pas eu de chance avec googler le code d'erreur.

Lutin
la source

Réponses:

9

Problème résolu: le groupe IIS_IUSRS était manquant dans «emprunter l'identité d'un client après l'authentification» dans la stratégie de sécurité locale.

Lutin
la source
A travaillé pour moi merci! Mais en plus, voici comment procéder étape par étape pour les nuls comme moi: Démarrer> Local> Politique de sécurité> Stratégies locales> Attribution des droits utilisateur> Emprunter l'identité d'un client après l'authentification> Ajouter un utilisateur ou un groupe ...> Sélectionner IIS_IUSRS
Wowe
1

vous pouvez essayer de modifier le pool d'applications pour cette application virtuelle et accorder à ce nouveau pool des autorisations personnelles

pour accorder des autorisations pour un pool spécifique, il suffit d'accorder des autorisations à l'utilisateur "IIS APPPOOL \ YOUR_POOL_NAME"

MNK_real
la source
0

En plus de la réponse de Brownie (c'est exact, vous devez donner ce droit au compte du pool d'applications); si IIS vous envoie cette erreur lorsque vous l'appelez à l'aide d'un client WCF (+ l'authentification Windows est activée dans IIS), cela peut être dû au fait que les indicateurs du jeton NTLM donné à IIS ne lui permettent pas d'emprunter l'identité de l'appelant.

Modifiez la configuration de votre client à partir de ceci (par défaut):

<behavior name="NewBehavior">
  <clientCredentials>
    <windows allowedImpersonationLevel="Identification" />
  </clientCredentials>
</behavior>

Pour ça:

<behavior name="NewBehavior">
  <clientCredentials>
    <windows allowedImpersonationLevel="Impersonation" />
  </clientCredentials>
</behavior>

Consultez cet article pour plus de détails: emprunt d'identité et délégation dans WCF

Matthieu
la source