Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Authentication σε διαφορετικό domain (που να μην είναι trusted όμως με το domain του IIS)

Îåêßíçóå áðü ôï ìÝëïò Fazer. Τελευταία δημοσίευση από το μέλος George J. Capnias στις 12-01-2006, 23:59. Υπάρχουν 8 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  11-01-2006, 15:26 8566

    Authentication σε διαφορετικό domain (που να μην είναι trusted όμως με το domain του IIS)

    Παιδιά κατ΄ αρχήν χαιρετώ μόλις εντάχτηκα στην παρέα σας. Πολύ χαίρομαι που υπάρχει αυτή η κοινότητα προγραμματιστών.

    Έχω βρεθεί μπροστα σε ένα τοίχο, και αν έστω κάτι έρθει στο μυαλό κάποιου ευπρόσδεκτο να το ακούσω. Λοιπόν, τα πράγματα έχουν ως εξής:  Έχω μια web form που δημοσιεύεται σε ένα IIS-5 ο οποίος βρίσκεται σε ένα Domain1. Το virtual directory χρησιμοποιεί σαν authentication method το "Integrated windows authentication". Με το που γίνεται load το webform χρειάζεται να ξέρω το username(=Me.User.Identity.Name.ToString) χωρίς όμως να εμφανίζεται το credential dialog box ώστε να παιρνει το profile που πρέπει ο χρήστης. Όταν ο χρήστης ανήκει στο Domain1 τότε όλα λειτουργούν καλά. Στην περίπτωση όμως που ο χρηστης ανήκει σε διαφορετικό Domain2, εμφανίζεται το credential dialog box, και αν δώσει το user, password και DomainName, τοτε παίρνει το μυνημα: "you are not authorized to view this webpage". Υπάρχει κάποιος τρόπος ώστε να επιτραπεί σε ένα τέτοιο χρήστη η είσοδος στο webform.

    Thank s


    Billy
  •  11-01-2006, 15:39 8567 σε απάντηση της 8566

    Απ: Authentication σε διαφορετικό domain (που να μην είναι trusted όμως με το domain του IIS)

    Έχεις δώσει στο folder που βρίσκεται το virtual directory, explicitly δικαιώματα στους χρήστες του Domain2 που θέλεις να έχουν πρόσβαση στο Web app (ή στο Domain2\Users αν θέλεις να έχουν όλοι);
    Νατάσα Μανουσοπούλου
  •  11-01-2006, 16:41 8574 σε απάντηση της 8567

    Απ: Authentication σε διαφορετικό domain (που να μην είναι trusted όμως με το domain του IIS)

    Δεν μπορώ να δώσω δικαιώματα στους χρήστες του Domain2 (στο συγκεκριμένο Folder) διότι το Domain2 δεν είναι trusted με το Domain1.


    Billy
  •  11-01-2006, 18:49 8577 σε απάντηση της 8574

    Απ: Authentication σε διαφορετικό domain (που να μην είναι trusted όμως με το domain του IIS)

    Έχω την εντύπωση πως αν τα domains είναι άσχετα, δεν μπορείς να χρησιμοποιήσεις integrated windows authentication. Το domain του IIS πρέπει να ξέρει "κάτι" για το domain του χρήστη. Νομίζω ότι το πιο απλό (αν δεν μπορείς να κάνεις trusted το άλλο domain ή κάτι τέτοιο) είναι να χρησιμοποιήσεις forms auth.
  •  11-01-2006, 19:48 8578 σε απάντηση της 8566

    Απ: Authentication σε διαφορετικό domain (που να μην είναι trusted όμως με το domain του IIS)

    Αυτό που προσπαθείς να κάνεις ονομάζεται cross-domain authentication. Θα μπορούσε να σε βοηθήσει ένας καλός systemάς. Γιας πες μας, αυτά τα domains βρίσκονται στο ίδιο φυσικό δίκτυο; Είναι, ας πούμε, δύο domains που ανήκουν στην ίδια εταιρεία;
    Vir prudens non contra ventum mingit
  •  12-01-2006, 11:58 8596 σε απάντηση της 8578

    Απ: Authentication σε διαφορετικό domain (που να μην είναι trusted όμως με το domain του IIS)

    Ναι τα domains βρίσκονται στο ίδιο φυσικό δίκτυο και όπως υπέθεσες ανήκουν στον ίδιο όμιλο εταιρειών. Συγκεκριμένα είναι one way trust τα δύο Domain (προφανώς για κάποιους λόγους δεν επιτρέπεται η αμφίδρομη σχέση)


    Billy
  •  12-01-2006, 12:45 8598 σε απάντηση της 8566

    Απ: Authentication σε διαφορετικό domain (που να μην είναι trusted όμως με το domain του IIS)

    Δεν μας το εξήγησες σωστά το πρόβλημα σου.

    Αν:

    • DOMAIN1\user1 είναι ένας χρήστης του DOMAIN1 που κάθεται σε ένα pc pc1.domain1
    • DOMAIN2\user2 είναι ένας χρήστης του DOMAIN2 που κάθεται σε ένα pc pc2.domain2
    • και η φόρμα σου βρίσκεται στο url http://www.domain1/form.aspx

    τότε πες μου ποιο από τα δύο παρακάτω είναι το πρόβλημά σου:

    1. O χρήστης DOMAIN1\user1 κάθεται στο μηχάνημα pc1.domain1 και ζήτάει την φόρμα. Ο IE κάνει αυτόμτα το authentication και μια και ο συγκεκριμένος χρήστης έχει διακαιώματα στον φάκελο με την φόρμα, περάνει κανονικά και την βλέπει αμέσως. So far, so good.

      Παράλληλα, ο χρήστης DOMAIN2\user2 κάθεται στο μηχάνημα pc2.domain2 και ζητάει την φόρμα σου από το url http://www.domain1/form.aspx. Ο ΙΕ δεν μπορεί να περάσει αυτόμτατα το authentication (μια και ο χρήστης είναι άγνωστος στο DOMAIN1) και του βγάζει το authentication window. Στο authentication window δίνει το DOMAIN2\user2 username & password και φυσικά δεν περνάει το authentication.

    2. O χρήστης DOMAIN2\user2 κάθεται στο μηχάνημα pc2.domain2 και ζητάει την φόρμα σου από το url. Ο ΙΕ δεν μπορεί να περάσει αυτόμτατα το authentication για τον ίδιο λόγο και του βγάζει το authentication window. Στο authentication window δίνει το DOMAIN1\user1 username & password και δεν περνάει το authentication.


    Αν το πρόβλημά σου είναι το (1) τότε δεν έχεις πρόβλημα. (Εννοώ ότι η λύση είναι απλή):

    Αν δεν θέλεις two way trust μπορείς να βάλεις one-way trust (Το DOMAIN1 να εμπιστεύται το DOMAIN2 αλλά όχι το ανάποδο). Αν δεν μπορείς να έχεις καθόλου trust ανάμεσα στα δύο domains τότε θα πρέπει απλά να φτιάξεις και να κοινοποιήσεις στον DOMAIN2\user2 ένα username & password στο DOMAIN1 το οποίο θα χρησιμοποιεί στο authentication window του IE. Π.χ. να φτιάξεις στο DOMAIN1 ένα νέο user DOMAIN1\user2 και να δώσεις τα credentials στον χρήστη από το DOMAIN2 για να τα χρησιμοποιεί για να μπεί στην φόρμα σου. (Εννοείται ότι στον φάκελο με την φόρμα θα πρέπει να δώσεις πρόσβαση και στον νέο χρήστη).

    Αν το πρόβλημά σου είναι το (2) τότε μπορεί να συμβαίνουν διάφορα πράγματα και πρέπει να το δούμε με περισσότερες λεπτομέρειες.

    φιλικά
    rousso


    rousso
  •  12-01-2006, 16:19 8609 σε απάντηση της 8598

    Απ: Authentication σε διαφορετικό domain (που να μην είναι trusted όμως με το domain του IIS)

    Υποθέτω ότι το πρόβλημά σου είναι το δεύτερο από τα δύο που αναφέρει ο Γιάννης κι επίσης υποθέτω ότι θέλεις να αποφύγεις οι χρήστες να εισάγουν user name και password. Μία λύση που μπορείς να εξετάσεις είναι να χρησιμοποιήσεις Kerberos authentication με ενεργοποιημένο το option για delegation. Αυτό υποστηρίζεται από το Integrated Windows Authentication και το μόνο που χρειάζεται είναι να έχεις φτιάξει ένα Active Directory infrastructure. Γι αυτό και ανέφερα ότι μπορεί να σε βοηθήσει ένας καλός systemάς.

    Επίσης, ρίξε μια ματιά σε αυτό το post http://www.wwwcoder.com/main/parentid/170/site/1609/68/default.aspx για μια παρόμοια ερώτηση. Δεν ξέρω ωστόσο αν μπορείς να υλοποιηθεί στην περίπτωσή σου.


    Vir prudens non contra ventum mingit
  •  12-01-2006, 23:59 8642 σε απάντηση της 8609

    Απ: Authentication σε διαφορετικό domain (που να μην είναι trusted όμως με το domain του IIS)

    Προσωπικά ένα τέτοιο πρόβλημα θα προτιμούσα, να το πάρω το authentication από τον IIS, καθότι η ασφάλειά του είναι μέσα στα καθήκοντα του network administrator και να το φέρω μέσα στην εφαρμογή, σε windows forms authentication όπου τις αποφάσεις τις παίρνει ο προγραμματιστής.

    Από τον μηχανισμό του authentication που θα έφτιαχνα, θα έβαζα να logάρουν οι χρήστες με όνομα/password και επιλογή του domain από dropdown, και θα έκανα authenticate τον χρήστη στο domain του με χρήση LDAP στο αντίστοιχο domain (πιθανώς να χρειαστεί να σου φτιάξουν ένα dummy χρήστη σε κάθε domain που να έχει το δικαίωμα να έχει πρόσβαση μέσω LDAP αν το έχουν περιορίσει μέσα από τα policies) και αφού τους έκανα authenticate, τα credentials του χρήστη διατηρούνται μέχρι να λήξει το cookie του forms authentication ή να κάνει log out ο χρήστης.

    Έτσι δεν θα σε ενδιαφέρει ποιο domain είναι trusted σε ποιο, και θα κάνεις την δουλειά σου καθαρά.

     

    George J.

     


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems