2016-08-22 4 views
0

J'essaie de faire fonctionner ADFS 3.0 derrière mon proxy NGINX dans otrder pour fédérer mon AD local avec mes comptes Office365. Tout semble bien fonctionner mais certaines questions restent sans réponse: 1- Il y a un article (https://technet.microsoft.com/it-it/library/hh852618(v=ws.10).aspx) expliquant quel devrait être le comportement d'un proxy adfs 3ème partie sur adfs 2.0, mais je ne peux pas trouver la même chose pour ADFS 3,0. En particulier, ces articles indiquent que "les informations MEX sont distinctes pour l'extranet." Pour cela, toutes les requêtes externes à l'URL/adfs/services/trust/mex DOIVENT être redirigées vers/adfs/services/trust/proxymex à l'arrière -end STS. " est-ce toujours vrai sur adfs 3.0? Ma configuration nginx est la suivante, est-ce suffisant?ADFS 3.0 + NGINX EventID 342 et 500

upstream adfsup { 
     server mydc03.mydomain.local:443; 
     server mydc01.mydomain.local:443; 
     keepalive 100; 
     } 

server { 

    listen 443; 
    server_name adfs.mypubdomain.it; 

    ssl on; 
    ssl_certificate /etc/letsencrypt/live/adfs.mypubdomain.it/cert.pem; 
    #ssl_certificate /ssl/adfs_mypubdomain_it.pem; 
    ssl_certificate_key /etc/letsencrypt/live/adfs.mypubdomain.it/privkey.pem; 
    #ssl_certificate_key /ssl/adfs_mypubdomain_it.key; 

    location/{ 

     proxy_pass https://adfsup; # my existing apache instance 
     proxy_set_header Host   $host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header X-Forwarded-Proto $scheme; 
     proxy_set_header X-MS-Proxy mypubrp0v; 
     proxy_http_version 1.1; 

     #proxy_next_upstream  error timeout invalid_header http_500 http_503; 
     proxy_next_upstream  error timeout invalid_header http_503; 
     proxy_connect_timeout 2; 

     } 
} 

2- sur les nginx log je peux voir beaucoup de 500 erreur: "POST/ADFS/services/confiance/2005/usernamemixed HTTP/1.1" 500 1025 "-" "-" "-" et sur la machine adfs sur le journal de EVT qui correspondent à ID d'événement 342

Token validation failed. 

Additional Data 

Token Type: 
http://schemas.microsoft.com/ws/2006/05/identitymodel/tokens/UserName 
%Error message: 
[email protected] user name or password is incorrect 

Exception details: 
System.IdentityModel.Tokens.SecurityTokenValidationException: [email protected] ---> System.ComponentModel.Win32Exception: The user name or password is incorrect 
    at Microsoft.IdentityServer.Service.Tokens.LsaLogonUserHelper.GetLsaLogonUserHandle(SafeHGlobalHandle pLogonInfo, Int32 logonInfoSize, SafeCloseHandle& tokenHandle, SafeLsaReturnBufferHandle& profileHandle) 
    at Microsoft.IdentityServer.Service.Tokens.LsaLogonUserHelper.GetLsaLogonUserInfo(SafeHGlobalHandle pLogonInfo, Int32 logonInfoSize, DateTime& nextPasswordChange, DateTime& lastPasswordChange, String authenticationType, String issuerName) 
    at Microsoft.IdentityServer.Service.Tokens.LsaLogonUserHelper.GetLsaLogonUser(UserNameSecurityToken token, DateTime& nextPasswordChange, DateTime& lastPasswordChange, String issuerName) 
    at Microsoft.IdentityServer.Service.Tokens.MSISWindowsUserNameSecurityTokenHandler.ValidateTokenInternal(SecurityToken token) 
    --- End of inner exception stack trace --- 
    at Microsoft.IdentityServer.Service.Tokens.MSISWindowsUserNameSecurityTokenHandler.ValidateTokenInternal(SecurityToken token) 
    at Microsoft.IdentityServer.Service.Tokens.MSISWindowsUserNameSecurityTokenHandler.ValidateToken(SecurityToken token) 

System.ComponentModel.Win32Exception (0x80004005): The user name or password is incorrect 
    at Microsoft.IdentityServer.Service.Tokens.LsaLogonUserHelper.GetLsaLogonUserHandle(SafeHGlobalHandle pLogonInfo, Int32 logonInfoSize, SafeCloseHandle& tokenHandle, SafeLsaReturnBufferHandle& profileHandle) 
    at Microsoft.IdentityServer.Service.Tokens.LsaLogonUserHelper.GetLsaLogonUserInfo(SafeHGlobalHandle pLogonInfo, Int32 logonInfoSize, DateTime& nextPasswordChange, DateTime& lastPasswordChange, String authenticationType, String issuerName) 
    at Microsoft.IdentityServer.Service.Tokens.LsaLogonUserHelper.GetLsaLogonUser(UserNameSecurityToken token, DateTime& nextPasswordChange, DateTime& lastPasswordChange, String issuerName) 
    at Microsoft.IdentityServer.Service.Tokens.MSISWindowsUserNameSecurityTokenHandler.ValidateTokenInternal(SecurityToken token) 

Je peux reproduire cette erreur fournir un mot de passe erroné sur le test rca (https://www.testconnectivity.microsoft.com/?testid=SingleSignOn) mais je pense que c'est pas normal qu'un mot de passe incorrect trow une exception. BTW tout mon utilisateur semble être bien et l'ouverture de session à travers l'ADFS fonctionne, a une idée de comment je peux corriger cette situation? Merci Lorenzo

Répondre

0

pour tout système tiers pour agir en tant que proxy pour ADFS 2012R2 (ADFS 3.0 alias) pour un accès extranet, il doit prendre en charge le protocole MS-ADFSPIP. Il suffit de mettre en œuvre les sections d'authentification et non les sections de publication d'applications Web.

Exigences ADFS 2012R2. https://technet.microsoft.com/en-us/library/dn554247.aspx#BKMK_extranet

Protocole MS-ADFSPIP. http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/[MS-ADFSPIP].pdf