Autenticazione per lo scambio di terze parti

1

La mia organizzazione ha un sistema di autenticazione utente interno condiviso tra un numero molto elevato di sistemi interni.

Uno di questi sistemi deve recuperare le informazioni dall'account di scambio dell'utente connesso. Registrato qui significa connesso al sistema - il client non è necessariamente una macchina Windows sul nostro dominio. Tuttavia, la mappatura a un utente Windows valido è nota.

Sto cercando di trovare un modo sicuro per gestirlo senza richiedere all'utente di autenticarsi manualmente con entrambi i set di credenziali. I due suggerimenti sono:

  • Memorizza la password di scambio di testo normale degli utenti nel client o nel server del servizio utilizzato per accedere allo scambio. Ovviamente se tale servizio dovesse essere compromesso, ciò comporterebbe la violazione delle password.
  • Utilizza un account autorizzato a impersonare tutti gli utenti. Se questo fosse compromesso, tutti i dati di scambio sarebbero stati compromessi.

Nessuno dei due è esattamente allettante. C'è un modo per passare il nostro token esistente per lo scambio e avere un plugin di scambio o una chiamata di servizio per verificarlo?

    
posta Hector 10.04.2018 - 17:34
fonte

1 risposta

2

Ho trovato un blog Microsoft ( link ) che risolve il problema.

Code needs to obtain credentials at runtime based-upon its runtime security context AND that context needs to be valid with the server/app its code is going against. This is what is used when default credentials with EWS are used – ie windows authentication. However, UseDefaultCredentials won’t work with Exchange 365.

Un link al proprietà proposta

Ciò consentirebbe alla tua applicazione di connettersi come utente corrente e farebbe in modo che tu non debba modificare il file ogni volta che l'utente cambia la password, tuttavia ci sono alcune limitazioni:

You cannot use the default credentials of the logged on user if the user’s mailbox is hosted in Exchange Online or Exchange Online as part of Office 365. Instead, use the Credentials property to set the user’s credentials. The user’s credentials must be in user principal name (UPN) form for Exchange Online.

Come per altri meccanismi di autenticazione, microsoft descrive questi:

  • OAuth 2.0 (solo Exchange Online)
  • NTLM (solo Exchange locale)
  • Di base (non più consigliato)

Ecco un link con pro e contro sui 3 metodi sopra .

Onestamente penso che dover memorizzare le password quando si è già autenticati con il controller di dominio in un modo è un difetto di progettazione dell'applicazione.

    
risposta data 10.04.2018 - 19:28
fonte

Leggi altre domande sui tag