- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 JWT 访问 token 生成方面的新手。我有公钥、私钥和 ClientID。我需要生成 Client_Assertion。
client_assertion:JWT(由客户端 ID、公共(public)证书和私钥使用RS256作为签名算法)。
我找到了一些 Node.JS 代码,但我想使用 .Net Framework(不是 .Net Core)来实现Node.Js 代码可以在 this link 上看到
我需要用 C# 来完成。从哪里开始以及如何实现?
最佳答案
我使用了 .NET 库
我还假设,正如您所说,您有一个私钥,并且您已将其加载到 RSACryptoServiceProvider
这是我的示例代码
首先创建您的领地。这是您的 JWT 负载
var claims = new Claim[]
{
new Claim(MicrosoftJwt.JwtRegisteredClaimNames.Sub, "your subject"),
new Claim(MicrosoftJwt.JwtRegisteredClaimNames.Iat, DateTime.Now.ToEpochSeconds().ToString(), ClaimValueTypes.Integer),
new Claim(MicrosoftJwt.JwtRegisteredClaimNames.Exp, DateTime.Now.AddMinutes(60).ToEpochSeconds().ToString(), ClaimValueTypes.Integer),
};
然后您需要使用您的私钥配置您的签名凭据。
// Assuming you already have your key loaded into an RSACryptoServiceProvider
var key = new MicrosoftTokens.RsaSecurityKey(csp)
var signingCredentials = new SigningCredentials(signingKey, SecurityAlgorithms.RsaSha256);
现在您可以创建您的 token
var jwt = new JwtSecurityToken(
issuer : issuer,
audience : audience,
claims : claims,
signingCredentials: signingCredentials
);
// You can add extra items to your Header if necessary
jwt.Header.Add("kid", deviceId);
然后您可以将 token 写入字符串
var assertion = new JwtSecurityTokenHandler().WriteToken(jwt);
我认为 assertion
的值(value)就是你想要得到的
关于c# - JWT TOKEN 生成 Client_Assertion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67821344/
对于用户身份验证,我使用最新的@azure/msal-angular 包。这个 Angular 库基于用于 AD 身份验证的最新 MSAL 库。但是库会抛出以下错误: ServerError: inv
我是 JWT 访问 token 生成方面的新手。我有公钥、私钥和 ClientID。我需要生成 Client_Assertion。 client_assertion:JWT(由客户端 ID、公共(pu
我想通过证书获取访问 token 。 我从我的应用程序中知道这些 client_id、grant_type、scope 的值。 但是我在哪里可以找到assertion和client_assertion
尝试使用以下代码从 clientid 和证书生成 AAD token 时收到此错误。 Error: "AADSTS50012: Client is public so a 'client_assert
我想在没有授权码的情况下获取访问 token ,所以使用下面的方法来获取它。但我面临的问题是“请求正文必须包含以下参数‘client_secret 或 client_assertion’” 你能就此提
我使用这个库https://github.com/AzureAD/azure-activedirectory-library-for-cordova ,这就是我编写代码的方式: document.ad
我使用这个库https://github.com/AzureAD/azure-activedirectory-library-for-cordova ,这就是我编写代码的方式: document.ad
我遇到以下问题: 异常:OAuth token 端点失败:状态:正文:{“error”:“invalid_client”,“error_description”:“AADSTS700025:客户端是公
我遇到以下问题: 异常:OAuth token 端点失败:状态:正文:{“error”:“invalid_client”,“error_description”:“AADSTS700025:客户端是公
这就是我编写代码并尝试获取输出的方式。 The request body must contain the following parameter: client_secret or client_a
我使用了https://github.com/AzureAD/azure-activedirectory-library-for-java/blob/master/src/samples/public
我正在尝试编写来自 here 的 Azure AD 用户身份验证代码。我正在提交有效的客户端 ID、用户名、密码、租户 ID、资源 ID。 它给了我以下错误: java.util.concurrent
我正在尝试编写来自 here 的 Azure AD 用户身份验证代码。我正在提交有效的客户端 ID、用户名、密码、租户 ID、资源 ID。 它给了我以下错误: java.util.concurrent
我是一名优秀的程序员,十分优秀!