Azure Microsoft Bot-验证公开的API终结点(IDX10205:颁发者验证失败)
试图通过Microsoft Team Bot将身份验证/授权添加到公开的终结点。Azure Microsoft Bot-验证公开的API终结点(IDX10205:颁发者验证失败),azure,authentication,authorization,botframework,Azure,Authentication,Authorization,Botframework,试图通过Microsoft Team Bot将身份验证/授权添加到公开的终结点。 机器人部署在Azure上;到目前为止一切正常 它公开了两个端点: /api/messages:这用作机器人URL /api/notify:这是我要添加身份验证和授权的端点 上下文:Bot正在公开/api/notify,因此外部服务将在此调用,使Bot将活动发送到公共频道 Azure总体配置 Bot频道注册链接到Active Directory上已注册的应用程序。此注册应用具有永不过期的秘密。src代码本身使用此
机器人部署在Azure上;到目前为止一切正常 它公开了两个端点:
:这用作机器人URL/api/messages
:这是我要添加身份验证和授权的端点/api/notify
/api/notify
,因此外部服务将在此调用,使Bot将活动发送到公共频道
Azure总体配置
Bot频道注册链接到Active Directory上已注册的应用程序。此注册应用具有永不过期的秘密。src代码本身使用此applicationId
和secretId
我试过的
- 应用程序服务>身份验证:在Azure Active Directory上进行应用程序服务身份验证/登录
- ClientId:applicationId
- 发卡机构URL:
https://login.microsoftonline.com/{tenantId}
- ClientId:applicationId
- 身份验证选项卡:我添加了一个Web平台:
- https://{my service}.azurewebsites.net/.auth/login/aad/callback
- 支持的帐户类型:任何组织目录中的帐户(任何Azure AD目录-多租户)
- 启用隐式授权流>开放ID令牌
- 不确定是否需要“公开API”并将bot服务的基本URL设置为应用程序URI(https://{my service}.azurewebsites.net)
- 我不确定是否需要在Active Directory中注册第二个应用程序,并有一个元组:“bot-app”/“authentication provider”,然后重新考虑整个过程
- 无令牌->401
- 有效令牌->确定
applicationId+secret
凭据,则bot将停止自身身份验证,发送到/api/消息的初始POST将接收:
{
"value": {
"code": 401,
"message": "IDX10205: Issuer validation failed. Issuer: '[PII is hidden]'. Did not match: validationParameters.ValidIssuer: ..."
}
}
如果您试图在调用Web API时进行身份验证,我认为您需要类似这样的内容来演示“如何使用Passport.js库使用Azure AD B2C保护Node.js Web API”。您在上面使用的方法更多的是在用户积极使用bot时登录用户(即,向用户显示登录提示,单击该提示并启动身份验证过程)。@StevenKanberg谢谢:)