Adal Angular 4无法对dynamic 365 CRM进行身份验证

Adal Angular 4无法对dynamic 365 CRM进行身份验证,angular,adal,adal.js,Angular,Adal,Adal.js,我正在使用“adal-angular4”库对dynamic 365 CRM online进行身份验证 我根据设置azure应用程序 我的身份验证代码与示例中的代码几乎相同 我的主页组件模型: config: any = { tenant: '', clientId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' }; constructor(private adalService: Adal4Service) { this.adalService.

我正在使用“adal-angular4”库对dynamic 365 CRM online进行身份验证

  • 我根据设置azure应用程序

  • 我的身份验证代码与示例中的代码几乎相同

  • 我的主页组件模型:

    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);
    }
    
在这里,我成功地获得了令牌和所有用户信息

但是,当我尝试获取/验证dynamic 365 CRM的令牌时,总是会出现错误:

"Token renewal operation failed due to timeout"
我获取代币的代码:

  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);
        })
我不知道我做错了什么?

我通过更改此.adalService.acquireToken(“”)摆脱了“令牌续订操作因超时而失败”

this.adalService.acquireToken(“{application ID}”)(应用程序ID列在Azure中,不知道为什么该ID有效,而URI无效)


希望这有帮助

永远不要从azure提供私钥。您是否提供租户?不,我没有提供租户,我认为这不是强制性的。我将“多租户”选项设置为“否”,这意味着只有一个租户。如果我理解得很好,我不需要指定租户。我使用单个租户遵循相同的示例代码,并遇到相同的问题。我可以向azure AD fine进行身份验证,但尝试访问带有acquireToken的链接API时,会显示“令牌续订操作因超时而失败”:(登录过程是在登录时首先获取azure令牌,然后使用azure令牌获取CRM令牌。您的示例在调用this.adalService.acquireToken时确实检索令牌(应用程序ID),但此令牌与azure已检索的令牌相同,我无法使用该令牌在CRM中授权。我需要根据我的CRM组织,按URL使用令牌。