小编use*_*730的帖子

Azure KeyVault - 签署 JWT 令牌

我开始使用 Azure Keyvault 为我的应用程序存储私钥。

我有一个用例,我需要使用 RSA 私钥对 JWT 令牌进行签名。

当我的应用程序内存中有私钥时,这很容易,我会这样做

var token = new JwtSecurityToken(
                issuer,
                ...,
                claims,
                ...,
                ...,
                signingCredentials_PrivateKey);
Run Code Online (Sandbox Code Playgroud)

既然开始使用Azure Keyvault,我想看看是否可以通过该KeyVaultClient.SignAsync方法对JWT令牌进行签名。

类似的东西

KeyVaultClient client = ...;
var token = new JwtSecurityToken(
                issuer,
                ...,
                claims,
                ...,
                ...);
var tokenString = client.SignAsync(myKeyIdentifier, token);
Run Code Online (Sandbox Code Playgroud)

c# azure .net-core azure-keyvault asp.net-core

6
推荐指数
2
解决办法
4245
查看次数

Azure Active Directory B2C 自定义邀请策略 - 在步骤之间传递自定义声明

我已通过此示例实施了邀请策略(通过向用户发送电子邮件链接来邀请用户访问该站点)https://github.com/azure-ad-b2c/samples/tree/master/policies/invite

我有这个用户旅程

<UserJourney Id="SignUpInvitation">
      <OrchestrationSteps>

        <OrchestrationStep Order="1" Type="GetClaims" CpimIssuerTechnicalProfileReferenceId="IdTokenHint_ExtractClaims" />

        <OrchestrationStep Order="2" Type="ClaimsExchange">
         <Preconditions>
            <Precondition Type="ClaimsExist" ExecuteActionsIf="true">
              <Value>email</Value>
              <Action>SkipThisOrchestrationStep</Action>
            </Precondition>
          </Preconditions>        
          <ClaimsExchanges>
            <ClaimsExchange Id="SelfAsserted-Unsolicited" TechnicalProfileReferenceId="SelfAsserted-Unsolicited"/>
          </ClaimsExchanges>
        </OrchestrationStep>

        <OrchestrationStep Order="3" Type="ClaimsExchange">
          <ClaimsExchanges>
            <ClaimsExchange Id="LocalAccountSignUpWithReadOnlyEmail" TechnicalProfileReferenceId="LocalAccountSignUpWithReadOnlyEmail"/>
          </ClaimsExchanges>
        </OrchestrationStep>

        <OrchestrationStep Order="4" Type="ClaimsExchange">
          <ClaimsExchanges>
            <ClaimsExchange Id="AADUserReadWithObjectId" TechnicalProfileReferenceId="AAD-UserReadUsingObjectId" />
          </ClaimsExchanges>
        </OrchestrationStep>

        <OrchestrationStep Order="5" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer"/>

      </OrchestrationSteps>
      <ClientDefinition ReferenceId="DefaultWeb"/>
    </UserJourney>
Run Code Online (Sandbox Code Playgroud)

在第一步中,我从 JWT 中提取声明。一封电子邮件和一份自定义声明,

<TechnicalProfiles>
        <TechnicalProfile Id="IdTokenHint_ExtractClaims">
          <DisplayName> My ID Token Hint TechnicalProfile</DisplayName>
          <Protocol Name="None" />
          <Metadata>

            <Item Key="METADATA">https://mywebsite.com/internal/v1/invitation/.well-known/openid-configuration</Item>

          </Metadata>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="email" />  
            <OutputClaim ClaimTypeReferenceId="extension_DBId" …
Run Code Online (Sandbox Code Playgroud)

azure azure-active-directory azure-ad-b2c identity-experience-framework

4
推荐指数
1
解决办法
570
查看次数

当前的.NET SDK不支持定位.NET Core 3.0

我刚刚下载了.NET Core 3.0.100的发行版本。
它与旧版本一起安装:

在此处输入图片说明

当我尝试运行dotnet restore针对.NET Core 3(<TargetFramework>netcoreapp3.0</TargetFramework>)的项目时,出现此错误

C:\Program Files\dotnet\sdk\2.2.202\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.TargetFrameworkInference.targets(137,5): error NETSDK1045: The current .NET SDK does not support targeting .NET Core 3.0.  Either target .NET Core 2.2 or lower, or use a version of the .NET SDK that supports .NET Core 3.0.
Run Code Online (Sandbox Code Playgroud)

我有一个global.json文件,该文件明确指出我需要3.0.100SDK

{
  "sdk": {
    "version": "3.0.100"
  }
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以编辑MSBuildSDKsPathenv变量以指向3.0.100SDK,并且它可以工作,但是我不想这样做,因为我的计算机上还有其他项目仍需要使用旧版本的.NET Core。

有没有一种方法可以使该dotnet工具使用所述的SDK global.json而不是其中的SDK MSBuildSDKsPath

编辑:我使用Visual Studio代码

.net msbuild .net-core

3
推荐指数
1
解决办法
1315
查看次数