微软认证节点扩展
| 开始 | AAD 文档 | 图书馆参考文献 | 样本 |
|---|
关于
这个 msal-node-extensions 图书馆提供可选的功能,以加强 msal-node数字 :
- 客户端应用程序执行跨平台缓存序列化和持久性的安全机制
- 用于从本地代币经纪人处获取代币的接口,可与其他本地应用程序实现更高程度的安全和SSO
缓存持久性
MSAL 节点 默认支持内存缓存,并提供ICachePlugin接口来进行缓存序列化,但并不提供默认将令牌缓存存储到磁盘的方法. 微软的节点认证扩展是针对持续缓存到不同平台的磁盘的默认执行.
支持的平台有:Windows,Mac和Linux:
- Windows - DPAPI用于加密.
- MAC - MAC KeyChain被使用.
- Linux - LibSecret用于存储到"Secret Service".
注意:建议使用此库用于缓存持续支持公共客户端应用程序,如只用于桌面应用程序. 在网络应用中,这可能导致规模和性能问题. 建议Web应用程序在会话中坚持缓存.
经纪活动
当使用本地经纪人时,刷新令牌被绑定在它们被购买的设备上,并且不能被访问 msal-node 或申请。 这提供了更高的安全水平,无法通过 msal-node 一个人 有关代币经纪的更多信息可以找到 这里
先决条件
这个 msal-node-extensions 有预编二进制的图书馆船.
注意: 如果您正计划在 msal- node- extensions 上进行本地开发, 您可能需要安装一些额外的工具 . 节点-gyp 用于编译 加词 用于访问系统 API。 安装需求列于 节点- gyp 读取
在linux上,库使用 libsecret 所以你可能需要安装它。 根据您的分布, 您需要运行以下命令 :
- 德比安/乌班图:
sudo apt-get install libsecret-1-dev - 红帽型:
sudo yum install libsecret-devel - Arch Linux: sudo (中文(简体) )
pacman -S libsecret
安装
这个 msal-node-extensions 国家防范机制有一套软件包.
npm i @azure/msal-node-extensions --save
用法 - 缓存持久性
开始
这里有一个代码片段,介绍如何配置符号缓存 .
const {
DataProtectionScope,
Environment,
PersistenceCreator,
PersistenceCachePlugin,
} = require("@azure/msal-node-extensions");
// You can use the helper functions provided through the Environment class to construct your cache path
// The helper functions provide consistent implementations across Windows, Mac and Linux.
const cachePath = path.join(Environment.getUserRootDirectory(), "./cache.json");
const persistenceConfiguration = {
cachePath,
dataProtectionScope: DataProtectionScope.CurrentUser,
serviceName: "<SERVICE-NAME>",
accountName: "<ACCOUNT-NAME>",
usePlaintextFileOnLinux: false,
}
// The PersistenceCreator obfuscates a lot of the complexity by doing the following actions for you :-
// 1. Detects the environment the application is running on and initializes the right persistence instance for the environment.
// 2. Performs persistence validation for you.
// 3. Performs any fallbacks if necessary.
PersistenceCreator
.createPersistence(persistenceConfiguration)
.then(async (persistence) => {
const publicClientConfig = {
auth: {
clientId: "<CLIENT-ID>",
authority: "<AUTHORITY>",
},
// This hooks up the cross-platform cache into MSAL
cache: {
cachePlugin: new PersistenceCachePlugin(persistence)
}
};
const pca = new msal.PublicClientApplication(publicClientConfig);
// Use the public client application as required...
});
关于持久性配置的所有论据解释如下:
| 字段名称 | 说明 | 所需时间 |
|---|---|---|
| 缓存Path | 这是库用来同步读取和写入的锁文件的路径 | 视窗、Mac和Linux |
| 数据保护范围 | 指定当前用户或本地机上的数据保护范围. | 窗口 |
| 服务Name | 此指定用于 Mac 和/ 或 Linux 的服务名称 | 麦克和Linux |
| 账户Name | 此指定用于 Mac 和/ 或 Linux 的账户名称 | 麦克和Linux |
| 使用 PlaintextFileOnLinux 软件 | 如果 libsecret 失败, 此旗帜将默认为 linux 上的纯文本 。 默认为 false | 链接 |
安全边界
在Windows和Linux上,令牌缓存被扩展为用户会话,即代表用户运行的所有应用程序都可以访问缓存. Mac提供了更受限制的范围,确保只有创建缓存的应用程序才能访问它,如果其他人的应用程序想要访问,则会提示用户.
用法 - 经纪
促成代币经纪只需要一个新的配置参数:
import { PublicClientApplication, Configuration } from "@azure/msal-node";
import { NativeBrokerPlugin } from "@azure/msal-node-extensions";
const msalConfig: Configuration = {
auth: {
clientId: "your-client-id"
},
broker: {
nativeBrokerPlugin: new NativeBrokerPlugin()
}
};
const pca = new PublicClientApplication(msalConfig);
更详细的资料见本文件附件 中介文件
构建和测试
若您打算为图书馆的参观捐款 contributing section 更需要更多关于如何操作的信息.
在当地建立软件包
来建造两个 @azure/msal-node-extensions 图书馆和图书馆 @azure/msal-common 库,运行下列命令:
// Install dev dependencies from root of repo
npm install
// Change to the msal-node-extensions package directory
cd lib/msal-node-extensions/
// Build msal-common and msal-node-extensions
npm run build:all
运行测试
@azure/msal-node-extensions 用途 欢笑 进行单位测试和覆盖.
// To run tests
npm test
样本
- 带有缓存持久性的 Auth Code CLI 样本。可以在Windows、Mac和Linux上运行.
- 带有缓存持久性的电样
- 经纪样本
安全报告
如果你发现我们的图书馆或服务有安全问题,请报告 安全性@ microsoft.com 尽可能详细。 您的呈文可能有资格通过 微软慷慨 程序。 请不要将安全问题张贴到 GitHub 问题或任何其他公共网站。 我们收到消息后马上联系你 我们鼓励您通过访问了解安全事件何时发生 此页面 并签署安全咨询警报.
许可证
版权 (c) 微软公司。 版权所有。 根据麻省理工学院的许可.
捐款
该项目欢迎各方的贡献和建议。 大多数捐款要求您同意 撰稿人许可协议(CLA)宣布,你有权并且实际上确实给了我们 有权使用您的贡献。 详情请访问 https://cla.opensource.microsoft.com 互联网档案馆的存檔,存档日期2014-10-02。 。 。 .
当您提交拉拉请求时, CLA bot 会自动确定您是否需要提供 a CLA并适当装饰PR(如状态检查、评论)。 只要听从指示 由机器人提供。 你只需要用我们的CLA 一次就能完成.
该项目通过了 Microsoft 开源行为守则。 。 。 . 更多信息见 《行为守则》 或者说 联系人 打开码@ microsoft.com 并附上任何其他问题或评论.
我们重视并遵守微软开放源码行为守则
该项目通过了 Microsoft 开源行为守则。更多信息见 《行为守则》 或联系人 打开码@ microsoft.com 并附上任何其他问题或评论.