首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在自定义Web中绝对确定登录到SharePoint的是谁

在自定义Web中绝对确定登录到SharePoint的是谁
EN

Stack Overflow用户
提问于 2018-01-10 08:04:59
回答 1查看 123关注 0票数 1

我的用户在线登录SharePoint并进行身份验证。

我有一个定制的Web应用程序,我的客户端调用它。

我想绝对确切地知道哪个用户正在调用我的API.

到目前为止,我的想法是在SharePoint (成功)中的cookie中找到JWT,它声明了登录的人。通过将它发送到我的自定义API中,我可以合理地知道是谁在调用,但我如何信任它呢?

我可以以某种方式验证JWT,即使它不是由我发布的?

还有其他的想法来实现同样的目标吗?(注意,我不想在我的web应用程序中引入Azure认证。我想在一个API调用中识别用户,而不必先重定向)

FYI:这是登录到SharePoint后发布的JWT的头:

代码语言:javascript
复制
{
  "typ": "JWT",
  "alg": "RS256",
  "x5t": "x478xyOplsM1H7NXk7Sx17x1upc",
  "kid": "x478xyOplsM1H7NXk7Sx17x1upc"
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-10 14:42:54

以下是O365:https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration的公共配置

.NET核心中的这个示例验证了JWT:

代码语言:javascript
复制
string stsDiscoveryEndpoint = "https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration";

ConfigurationManager<OpenIdConnectConfiguration> configManager = new ConfigurationManager<OpenIdConnectConfiguration>(stsDiscoveryEndpoint, new OpenIdConnectConfigurationRetriever());

OpenIdConnectConfiguration config = configManager.GetConfigurationAsync().Result;

TokenValidationParameters validationParameters = new TokenValidationParameters
{
    ValidateAudience = false,
    ValidateIssuer = false,
    ValidateLifetime = false,
    IssuerSigningKeys = config.SigningKeys
};

JwtSecurityTokenHandler tokendHandler = new JwtSecurityTokenHandler();

var token = "JWT TOKEN TO VALIDATE HERE";

SecurityToken jwt;
var result = tokendHandler.ValidateToken(token, validationParameters, out jwt);

return jwt as JwtSecurityToken;

它需要使用这些语句。

代码语言:javascript
复制
using Microsoft.IdentityModel.Protocols;
using Microsoft.IdentityModel.Protocols.OpenIdConnect;
using Microsoft.IdentityModel.Tokens;
using System.IdentityModel.Tokens.Jwt;

我用这个例子开始了,但是它在.NET核心中没有发挥作用。https://blogs.msdn.microsoft.com/practice-sharing/2016/03/22/office-365-dev-how-to-validate-the-access-token-issued-by-microsoft-azure-ad/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48182806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档