如何使用证书在AAD B2C中签署id令牌

时间:2017-09-27 14:36:00

标签: azure azure-ad-b2c

最近,我一直在寻找一种使用证书在Azure AD B2C中签署id令牌的方法。我发现我们必须使用自定义策略来执行此操作。

以下是如何做到的。

  1. 将pfx文件(例如B2C_1A_signing)上传到" 政策密钥"通过"身份体验框架"。

  2. 在您的依赖方策略中覆盖令牌颁发者声明提供程序。如果您使用的是Active Directory B2C自定义策略Starterpack,则默认情况下可以覆盖TrustFrameworkBase.xml

  3.  <ClaimsProvider>
       <DisplayName>Token Issuer</DisplayName>
       <TechnicalProfiles>
         <TechnicalProfile Id="JwtIssuer">
           <DisplayName>JWT Issuer</DisplayName>
           <CryptographicKeys>
             <Key Id="issuer_secret" StorageReferenceId="B2C_1A_signing" />
           </CryptographicKeys>
         </TechnicalProfile>
       </TechnicalProfiles>
     </ClaimsProvider>
    

    请注意,issuer_secret已更改为引用证书的存储引用ID。

    1. 检查元数据
    2. {
        "keys": [
          {"kid":"E62C82DD3E3CED17DFE23D0FFB837E46C5B36182","exp":4652954830,"nbf":1497280630,"key_ops":["sign"],"x5c":["<Certificate>"}
        ]
      }
      

      Kid引用证书的指纹,证书列为x5c。

      1. 发送身份验证请求。
      2. {
            "typ": "JWT",
            "alg": "RS256",
            "kid": "E62C82DD3E3CED17DFE23D0FFB837E46C5B36182",
            "x5t": "5iyC3T487Rff4j0P-4N-RsWzYYI"
        }.{
            "exp": 1505922183,
            "nbf": 1505918583,
            "ver": "1.0",
            "iss": "https://login.microsoftonline.com/<>/v2.0/",
            "sub": "<>",
            "aud": "<>",
            "acr": "b2c_1a_signup_signin",
            "nonce": "defaultNonce",
            "iat": 1505918583,
            "auth_time": 1505918583,
            "name": "Chi Yao"
        }.[Signature]
        

0 个答案:

没有答案