我正在使用当前使用adal获取身份验证令牌的Office加载项。
由于我想使用Fabric前端,我将其更改为React,我注意到officer-js-helpers已经实现了与adal库完成相同工作的身份验证器。 我在这个假设中是否正确?如果是这样,我如何使用office-js-helpers身份验证功能复制此adal配置:
var adalConfig = {
instance: 'https://login.microsoftonline.com/',
tenant: 'myprivatesite.onmicrosoft.com',
clientId: 'xxx-xxx-xxx-xxx-xxx',
endpoints: {
'https://my.private.url.endpoint/path': 'https://myprivatesite.onmicrosoft.com/path.to.something',
}
此令牌请求:
var authContext = new AuthenticationContext(adalConfig);
authContext.acquireToken('https://myprivatesite.onmicrosoft.com/path.to.something', function (error, token) {
console.log(token)
});
更新:
我的反应应用程序中有adal.js
库。我使用了init
angular provider中adalAuthenticationService
函数的一些代码来检索身份验证令牌。
所以问题仍然存在。我可以使用office-js-helpers
做同样的事情吗?
答案 0 :(得分:2)
Adal.js不能用于Web加载项身份验证,因为在Web加载项的沙盒iFrame上下文中,您无法仅导航到域外托管的身份验证登录页面。
Office-js-helpers在可用时使用dialogAPI,在不可用时使用弹出窗口作为后备解决方案。
如果我没记错,Office-js-helpers仅针对Azure AD v2.0(与Azure AD相比,它具有许多不错的新功能)。我想这是一个不错的选择。
我创建了一个Open source sample文档可能会让您感兴趣。但是,当您查找隐式流时,这并不是您希望它基于AuthorizationCode流的。
答案 1 :(得分:0)
好的,看起来非常简单。 adal配置所需的只是客户端ID和租户。
if (OfficeHelpers.Authenticator.isAuthDialog()) {
return;
}
var authenticator = new OfficeHelpers.Authenticator();
authenticator.endpoints.registerAzureADAuth('xxx-xxx-xxx-xxx-xxx', //clientId
'myprivatesite.onmicrosoft.com' // tenant
);
authenticator.authenticate(OfficeHelpers.DefaultEndpoints.AzureAD)
.then(function (token) {
console.log(token);
.catch(function(error) {
console.log(error);
});