我正在创建一个asp.net核心站点,该站点已完成,并且使用Azure AD进行了身份验证。我进行身份验证的方式是通过遵循microsoft文档,在Azure中注册应用程序,获取客户端ID等。等等... 它在浏览器中工作正常,但是当我尝试进入“ Microsoft团队”标签时,它甚至根本不会加载任何内容。 我也听说我可以进行SSO身份验证,但是如果这样做,则我在浏览器中的身份验证将不起作用!我想同时对浏览器和团队应用进行身份验证! 我不知道我是否提供足够的信息,或者我不够清楚,所以请问任何问题或建议我更改问题... 任何帮助对此表示赞赏!谢谢:)
更新:
microsoftTeams.initialize();
var authTokenRequest = {
successCallback: function (result) {
var token = jwtDecode(result);
document.getElementById("userAqui").innerHTML = "Welcome " + token.payload.name;
},
failureCallback: function (error) {
//window.location.href = "Home/Index";
//alert('Invalid user! Error:' + error);
}
};
microsoftTeams.authentication.getAuthToken(authTokenRequest);
我使用类似的方法获取令牌,然后我收到该令牌..但是,如果我这样做,当我在浏览器中打开应用但不参加团队活动时,我就没有得到该令牌... 我想要的是一种可以双向工作的东西...
现在为了使身份验证在浏览器中起作用,我将其放置在json中:
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Domain": "[Enter the domain of your tenant, e.g. contoso.onmicrosoft.com]",
"ClientId": "***",
"TenantId": "***",
"ClientSecret": "***",
"CallbackPath": "/signin-oidc"
}
并且我在启动时具有身份验证部分,它将进行身份验证(我已经将我的azure广告应用程序注册为azure)...
您能为我指出一个示例代码,该代码在.net核心的团队和浏览器上均可工作吗?我可以从中得到指南的东西:)谢谢
答案 0 :(得分:1)
如果您自己的身份验证是通过脚本启动的,则可以检查microsoftTeams
对象,并根据其是否存在来启动您自己的身份验证(我假设为ADAL或MSAL),或发起团队SSO身份验证。请注意,SSO身份验证不允许您调用Graph(您尚未说出为什么需要完全身份验证),因此,如果需要这样做,则需要征得管理员同意或实施后端将您的令牌转换为代用令牌(SSO documentation涵盖了这一点)。
更新:有一个MSAL 2.0示例,显示了如何在同一应用程序(例如“团队”标签和独立的网页)中同时处理Teams和常规Web身份验证。参见here。
作为一个例子,我关于检查microsoftTeams
的意思是,您的代码可能看起来像这样:
if (microsoftTeams) {
startTeamsSSO();
} else {
startStandaloneWebAuth();
}