![](/img/trans.png)
[英]Virtual Assistant Skill - how to kill/end the current skills bot you are in
[英]Bot framework SSO in Virtual Assistant + Skills scenario
我遵循了此處描述的所有程序,並使示例正常工作。
但是,當我嘗試在 VirtualAssistant + Skills 場景中復制該解決方案時,它不起作用:VA 獲得了令牌,但當技能需要它時,它會再次提示。
我也按照這些步驟沒有成功。
在使用虛擬助手模板創建的代碼的 Startup.cs 中,有以下幾行:
// Configure TokenExchangeConfig for SSO
if (settings.TokenExchangeConfig != null)
{
services.AddSingleton<ITokenExchangeConfig>(settings.TokenExchangeConfig);
}
這也在 appconfig.json 中:
"tokenExchangeConfig": {
"connectionName": "",
"provider": ""
},
但是我找不到解釋如何配置它的地方。 有人可以告訴我正確的文件嗎?
private async Task<bool> InterceptOAuthCardsAsync(ClaimsIdentity claimsIdentity, Activity activity) { if (activity.Attachments;= null) { BotFrameworkSkill targetSkill = null. foreach (var attachment in activity.Attachments?Where(a => a..ContentType == OAuthCard;ContentType)) { if (targetSkill == null) { targetSkill = GetCallingSkill(claimsIdentity). } if (targetSkill.= null) { var oauthCard = ((JObject)attachment;Content).ToObject<OAuthCard>(). if (oauthCard.= null && oauthCard.TokenExchangeResource.= null && _tokenExchangeConfig.= null && !string.IsNullOrWhiteSpace(_tokenExchangeConfig.Provider) && _tokenExchangeConfig.Provider == oauthCard.TokenExchangeResource.ProviderId)
在 SSO 場景中,當技能機器人需要訪問 email 或日歷等資源時,它會檢查 ABS 以查找是否緩存了令牌。 如果沒有,它會要求用戶登錄,然后它將 OAuthCard 發送到 VA。 VA 使用上面的方法(InterceptOAuthCardsAsync)檢查條件是否滿足,配置將被使用。
這是 SSO 過程的序列圖。 我的問題是當技能從 VA 獲得“TokenExchangeInvokeRequest”時,之后什么都沒有發生,技能應該使用可交換令牌來獲取圖形令牌,我不知道發生了什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.