使用 OfficeDev/office-js-helpers 而不是 adal 进行身份验证
Authenticating using OfficeDev/office-js-helpers rather than adal
我正在开发当前使用 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)
});
更新:
我的 React 应用程序中有 adal.js
库。我使用了 adalAuthenticationService
angular 提供程序中 init
函数的一些代码来检索身份验证令牌。
所以问题依然存在。我可以使用 office-js-helpers
做同样的事情吗?
Adal.js 不能直接用于 Web 插件身份验证,因为在 Web 插件的沙盒 iFrame 上下文中,您无法简单地导航到域外托管的身份验证登录页面。
Office-js-helpers 在可用时使用 dialogAPI,在不可用时使用弹出窗口作为后备解决方案。
如果我没记错的话,Office-js-helpers 仅针对 Azure AD v2.0(与 Azure AD 相比,它具有许多不错的新功能)。我想这是个不错的选择。
我创建了一个 Open source sample 文档,您可能会感兴趣。但是,这并不是您想要的,它是基于 AuthorizationCode 流程的,而您正在寻找隐式流程。
OK 看来非常简单。 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);
});
我正在开发当前使用 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)
});
更新:
我的 React 应用程序中有 adal.js
库。我使用了 adalAuthenticationService
angular 提供程序中 init
函数的一些代码来检索身份验证令牌。
所以问题依然存在。我可以使用 office-js-helpers
做同样的事情吗?
Adal.js 不能直接用于 Web 插件身份验证,因为在 Web 插件的沙盒 iFrame 上下文中,您无法简单地导航到域外托管的身份验证登录页面。
Office-js-helpers 在可用时使用 dialogAPI,在不可用时使用弹出窗口作为后备解决方案。
如果我没记错的话,Office-js-helpers 仅针对 Azure AD v2.0(与 Azure AD 相比,它具有许多不错的新功能)。我想这是个不错的选择。
我创建了一个 Open source sample 文档,您可能会感兴趣。但是,这并不是您想要的,它是基于 AuthorizationCode 流程的,而您正在寻找隐式流程。
OK 看来非常简单。 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);
});