Μόλις μετακόμισα από το IIS6 στο Win2003 στο IIS8 στο Win2012 για τη φιλοξενία εφαρμογών ASP.NET.
Μέσα σε έναν συγκεκριμένο φάκελο της εφαρμογής μου πρέπει να δημιουργήσω & να διαγράψω αρχεία. Μετά την αντιγραφή των αρχείων στο νέο διακομιστή, έβλεπα συνεχώς τα ακόλουθα σφάλματα όταν προσπαθούσα να διαγράψω αρχεία:
Η πρόσβαση στη διαδρομή 'D:\WebSites\myapp.co.uk\companydata\filename.pdf' είναι απαγορευμένη.
Όταν ελέγχω το IIS βλέπω ότι η εφαρμογή εκτελείται κάτω από το λογαριασμό DefaultAppPool, ωστόσο, δεν έχω ρυθμίσει ποτέ τα δικαιώματα των Windows σε αυτόν το φάκελο ώστε να περιλαμβάνουν IIS AppPool\DefaultAppPool
Αντ' αυτού, για να σταματήσουν να φωνάζουν οι πελάτες, χορήγησα τα ακόλουθα δικαιώματα στο φάκελο:
IUSR
IIS_IUSRS
Αυτό φαίνεται να λειτούργησε, αλλά ανησυχώ ότι έχουν οριστεί πάρα πολλά προνόμια. Έχω διαβάσει αντικρουόμενες πληροφορίες στο διαδίκτυο σχετικά με το αν το IUSR είναι πραγματικά απαραίτητο εδώ. Μπορεί κάποιος να διευκρινίσει ποιοι χρήστες/δικαιώματα θα αρκούσαν για τη Δημιουργία και τη Διαγραφή εγγράφων σε αυτόν το φάκελο, παρακαλώ; Επίσης, το IUSR είναι μέρος της ομάδας IIS_IUSRS;
Παρακαλούμε δείτε την απάντησή μου παρακάτω. Έπρεπε να το κάνω αυτό δυστυχώς, καθώς ορισμένες πρόσφατες προτάσεις δεν ήταν καλά μελετημένες ή ακόμη και ασφαλείς (ΙΜΟ).
Το IUSR είναι μέρος της ομάδας IIS_IUSER group.so υποθέτω ότι μπορείτε να αφαιρέσετε τα δικαιώματα για το IUSR χωρίς να ανησυχείτε. Περαιτέρω ανάγνωση
Ωστόσο, με την πάροδο του χρόνου προέκυψε ένα πρόβλημα καθώς όλο και περισσότερες υπηρεσίες συστήματος των Windows άρχισαν να εκτελούνται ως NETWORKSERVICE. Αυτό οφείλεται στο γεγονός ότι οι υπηρεσίες που εκτελούνται ως NETWORKSERVICE μπορούν να αλλοιώσουν άλλες υπηρεσίες που εκτελούνται με την ίδια ταυτότητα. Επειδή οι διεργασίες εργασίας του IIS εκτελούν εξ ορισμού κώδικα τρίτων (κλασικός κώδικας ASP, ASP.NET, PHP), ήρθε η ώρα να απομονωθούν οι διεργασίες εργασίας του IIS από άλλες υπηρεσίες συστήματος των Windows και να εκτελούνται οι διεργασίες εργασίας του IIS υπό μοναδικές ταυτότητες. Το λειτουργικό σύστημα των Windows παρέχει ένα χαρακτηριστικό που ονομάζεται "Virtual Accounts" και επιτρέπει στο IIS να δημιουργεί μοναδικές ταυτότητες για κάθε ένα από τα Application Pools του. Το DefaultAppPool είναι το προεπιλεγμένο pool που εκχωρείται σε όλα τα Application Pool που δημιουργείτε.
Για να το κάνετε πιο ασφαλές μπορείτε να αλλάξετε την ταυτότητα IIS DefaultAppPool Identity σε ApplicationPoolIdentity.
Όσον αφορά τα δικαιώματα, το Create and Delete συνοψίζει όλα τα δικαιώματα που μπορούν να δοθούν. Έτσι, ό,τι έχετε εκχωρήσει στην ομάδα IIS_USERS είναι αυτό που θα απαιτηθεί. Τίποτα περισσότερο, τίποτα λιγότερο.
Ελπίζω αυτό να βοηθήσει.
@EvilDr Μπορείτε να δημιουργήσετε έναν λογαριασμό IUSR[identifier] στο περιβάλλον AD και να αφήσετε τη συγκεκριμένη δεξαμενή εφαρμογών να εκτελείται κάτω από αυτόν τον λογαριασμό IUSR[identifier]:
"Application pool" > "Advanced Settings" > "Identity" > "Custom account",
Ορίστε την ιστοσελίδα σας σε "Χρήστης εφαρμογής (pass-through authentication)" και όχι "Συγκεκριμένος χρήστης", στις Ρυθμίσεις για προχωρημένους.
Τώρα δώστε σε αυτό το IUSR_[αναγνωριστικό] τα κατάλληλα δικαιώματα NTFS σε αρχεία και φακέλους, για παράδειγμα: modify on companydata.
Θα χρησιμοποιούσα συγκεκριμένο χρήστη (και ΟΧΙ χρήστης εφαρμογής). Στη συνέχεια, θα ενεργοποιήσω την προσωποποίηση στην εφαρμογή. Μόλις το κάνετε αυτό, όποιος λογαριασμός έχει οριστεί ως συγκεκριμένος χρήστης, αυτά τα διαπιστευτήρια θα χρησιμοποιούνται για πρόσβαση σε τοπικούς πόρους σε αυτόν τον διακομιστή (όχι για εξωτερικούς πόρους).
Η ρύθμιση του συγκεκριμένου χρήστη προορίζεται ειδικά για την πρόσβαση σε τοπικούς πόρους.