如何在 Microsoft 团队选项卡中进行身份验证?
How to authenticate in microsoft teams tab?
我正在创建一个 asp.net 核心站点,该站点已完成并使用 Azure AD 进行身份验证。我进行身份验证的方式是遵循 Microsoft 文档,在 azure 中注册一个应用程序,获取客户端 ID 等等......
它在浏览器中运行良好,但是当我尝试进入我的 Microsoft Teams 选项卡时,它甚至没有加载任何东西。
我还听说我可以进行 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 核心?我可以从中得到指导的东西:)谢谢
如果您自己的身份验证是从脚本启动的,您可以检查 microsoftTeams
对象,并根据它是否存在,启动您自己的身份验证(我假设是 ADAL 或 MSAL),或者启动团队 SSO 身份验证。请注意,SSO 身份验证不允许您调用 Graph(您还没有说明为什么需要准确进行身份验证),因此如果您需要这样做,您需要提供管理员同意或实施后端将您的令牌转换为 on-behalf-of 令牌(SSO documentation 涵盖了这一点)。
更新:有一个 MSAL 2.0 示例展示了如何在同一个应用程序(例如 Teams 选项卡和独立网页)中同时处理 Teams 和普通 Web 身份验证。参见 here。
举个例子,我的意思是检查 microsoftTeams
,您的代码可能看起来像这样:
if (microsoftTeams) {
startTeamsSSO();
} else {
startStandaloneWebAuth();
}
我正在创建一个 asp.net 核心站点,该站点已完成并使用 Azure AD 进行身份验证。我进行身份验证的方式是遵循 Microsoft 文档,在 azure 中注册一个应用程序,获取客户端 ID 等等...... 它在浏览器中运行良好,但是当我尝试进入我的 Microsoft Teams 选项卡时,它甚至没有加载任何东西。 我还听说我可以进行 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 核心?我可以从中得到指导的东西:)谢谢
如果您自己的身份验证是从脚本启动的,您可以检查 microsoftTeams
对象,并根据它是否存在,启动您自己的身份验证(我假设是 ADAL 或 MSAL),或者启动团队 SSO 身份验证。请注意,SSO 身份验证不允许您调用 Graph(您还没有说明为什么需要准确进行身份验证),因此如果您需要这样做,您需要提供管理员同意或实施后端将您的令牌转换为 on-behalf-of 令牌(SSO documentation 涵盖了这一点)。
更新:有一个 MSAL 2.0 示例展示了如何在同一个应用程序(例如 Teams 选项卡和独立网页)中同时处理 Teams 和普通 Web 身份验证。参见 here。
举个例子,我的意思是检查 microsoftTeams
,您的代码可能看起来像这样:
if (microsoftTeams) {
startTeamsSSO();
} else {
startStandaloneWebAuth();
}