Langchain SharePointLoader如何设置租户ID以获取OAuth令牌
核心逻辑
Langchain的SharePointLoader底层依赖O365库,默认使用common端点请求OAuth令牌,但单租户应用不支持这个端点。只要在配置中传入租户ID(目录ID),就能让O365库切换到租户专属的认证端点,无需将应用改为多租户。
具体操作步骤
- 获取租户ID:登录Azure门户,进入「Azure Active Directory」→「概述」,页面右侧即可找到「租户ID」(又称目录ID),复制该值。
- 初始化SharePointLoader时传入租户ID:利用
auth_kwargs参数将租户ID传递给底层O365库,示例代码如下:
from langchain.document_loaders import SharePointLoader # 替换为你的实际配置 CLIENT_ID = "你的O365客户端ID" CLIENT_SECRET = "你的O365客户端密钥" TENANT_ID = "复制的租户ID" SITE_URL = "你的SharePoint站点URL" # 初始化Loader并指定租户ID loader = SharePointLoader( site_url=SITE_URL, client_id=CLIENT_ID, client_secret=CLIENT_SECRET, auth_kwargs={"tenant_id": TENANT_ID} ) # 加载SharePoint内容 docs = loader.load()
- 验证结果:运行代码后,O365库会自动使用租户专属端点
https://login.microsoftonline.com/{TENANT_ID}/oauth2/nativeclient请求令牌,不会再触发AADSTS50194错误,同时保持单租户应用的安全性。
说明
单租户应用只能在指定租户内完成认证,传入租户ID后,O365库会替换默认的common路径为租户ID,确保认证请求符合Azure AD的单租户应用规则。
内容的提问来源于stack exchange,提问作者AlwaysCuriousSincethe80s
相关产品推荐
相关产品推荐

