[16.0.0.4 以及更新版本]

Liberty 中耗用「JSON Web 記號」

您可以採程式設計方式,來驗證和剖析「JSON Web 記號 (JWT)」的記號,作法是在伺服器配置中配置 JWT 消費者元素,並在您的應用程式中實作 com.ibm.websphere.security.jwt.JwtConsumercom.ibm.websphere.security.jwt.JwtToken API。

關於這項作業

如需 JWT API 的相關資訊,請參閱 JSON Web 記號 Java 說明文件,或產品之 ${wlp.install.dir}/dev 目錄中所包含的 API 說明文件。

程序

  1. server.xml 檔中,新增 jwt-1.0 特性。
    <featureManager>
        <feature>jwt-1.0</feature>
        ...
    </featureManager>
  2. 修改 jwtConsumer 元素,以配置 JWT 消費者。

    如需您可以配置之 jwtConsumer 屬性的相關資訊,請參閱 JWT 消費者 (jwtConsumer)

    在您新增 jwt-1.0 特性,並儲存您的變更時,Liberty 會新增下列的預設 jwtConsumer 元素。
    <jwtConsumer id="defaultJWTConsumer">
    </jwtConsumer>
    在這項預設配置中,假設有下列值:
    • 所耗用之 JWT 的 alg 標頭是 RS256。您可以在 signatureAlgorithm 屬性上配置此值。
    • 會將 JWT 視為在 expnbfiat 聲明的 5 分鐘內有效。您可以在 clockSkew 屬性上配置此值。

    您可以重新配置這個預設 jwtConsumer 元素,或是建立一或多個其他的 jwtConsumer 元素。每一個 jwtConsumer 元素必須有一個指定成 id 屬性,且可在 URL 中安全傳輸的唯一字串。如果遺漏該 ID,就不會處理 jwtConsumer

    如果是使用 RS256 和 X.509 憑證簽署的 JWT 記號,您必須配置 trustStoreReftrustAliasName 屬性,以便能找到簽章驗證金鑰。
    1. 將 JWT 發證者的 X.509 憑證匯入至信任儲存庫。
    2. jwtConsumer 元素中,指定信任儲存庫 ID 和憑證別名。
      <jwtConsumer id="defaultJWTConsumer" trustStoreRef="truststore_id" trustAliasName="certificate_alias">
      </jwtConsumer>
  3. 在您的應用程式中實作 com.ibm.websphere.security.jwt.JwtConsumercom.ibm.websphere.security.jwt.JwtToken API,以便以程式設計方式來驗證和剖析 JWT 記號。

    如需相關資訊,請參閱 JSON Web 記號 Java 說明文件

    1. 建立 JwtConsumer 物件
      如果您沒有指定配置 ID,則物件會關聯於預設 jwtConsumer 配置。
      com.ibm.websphere.security.jwt.JwtConsumer jwtConsumer = JwtConsumer.create();
      如果您有指定配置 ID,物件會關聯於具有指定 ID 的 jwtConsumer 配置。
      com.ibm.websphere.security.jwt.JwtConsumer jwtConsumer = JwtConsumer.create("jwtConsumer_configuration_id");
    2. 實作 com.ibm.websphere.security.jwt.JwtToken API,以驗證和剖析 JWT 記號。
      JwtToken jwtToken = jwtConsumer.createJwt("Base64_encoded_JWT_token>");

指示主題類型的圖示 作業主題

檔名:twlp_sec_consume_jwt.html