2017-07-11 2 views
2

J'utilise la bibliothèque 'adal-angular4' pour m'authentifier auprès de Dynamic 365 CRM en ligne.Adal Angular 4 ne peut pas s'authentifier auprès de Dynamic 365 CRM

  • J'ai mis en place une application azure selon https://github.com/Azure-Samples/active-directory-angularjs-singlepageapp.

  • Mon code d'authentification est presque le même que celui de l'exemple https://github.com/benbaran/adal-angular4-example.

  • Mon modèle de composant à domicile:

    config: any = { 
    tenant: '', 
    clientId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' 
    }; 
    
    constructor(private adalService: Adal4Service) { 
        this.adalService.init(this.config);   
    
        this.adalService.handleWindowCallback(); 
    
        // Check if the user is authenticated. If not, call the login() method 
        if (!this.adalService.userInfo.authenticated) { 
         this.adalService.login(); 
        }  
    
        console.log('token: ' + this.service.userInfo.token); 
    } 
    

Ici, je reçois avec succès jeton et toutes les informations de l'utilisateur.

Mais quand j'ai essayé d'acquérir/vérifier mon jeton pour dynamique 365 CRM Je reçois toujours l'erreur:

"Token renewal operation failed due to timeout" 

Mon code pour l'acquisition de jeton:

this.adalService.acquireToken('https://comdynamics365en.crm4.dynamics.com') 
     .subscribe(data => { 
      console.log(data); // never get this 
     }, 
     error => { 
      console.log("Error while AcquireToken. Error Info: " + error); 
     }) 

Je ne sais pas ce que je suis mal faire?

+0

ne jamais fournir des clés privées d'azur ici. Fournissez-vous le locataire? – Fals

+0

Non, je n'ai pas fourni le locataire Je pensais que ce n'est pas obligatoire. – Milos

+0

J'ai mis en place l'option "Multi-tenanted" à "Non", cela signifie un seul locataire. Je n'ai pas besoin de spécifier le locataire, si je le comprends bien. – Milos

Répondre

0

je me suis débarrassé de la "opération de renouvellement Token a échoué en raison de délai d'attente" en changeant this.adalService.acquireToken (» https://comdynamics365en.crm4.dynamics.com ')

à

this.adalService.acquireToken ({ID d'application} «) (l'ID d'application est listé dans Azure, aucune idée pourquoi les travaux d'identification et l'URI ne fonctionne pas)

Hope this helps

+0

La procédure de login est d'obtenir jeton azur d'abord lorsque vous vous connectez et après vous acquérez jeton CRM Votre exemple récupère vraiment le jeton lorsque vous appelez this.adalService.acquireToken (ID de l'application), mais ce jeton est le même qu'azure déjà récupéré et je ne peux pas autoriser dans CRM avec ce jeton. organisation, par URL. – Milos