OIDC による SSO での電子署名の検証
このトピックは以下のユーザーに関連します。
サイトでワークフロープロセスの一環として電子署名が使用されている。詳細については、電子署名の設定を参照してください。
電子署名を提出する前に資格証明の提供をユーザーに求める必要がある。
サイトでシングルサインオン (SSO) 構成とアイデンティティプロバイダ (IdP) による認証を行っている。
* 
電子署名機能を SSO コンフィギュレーションで使用し、証明書ベースの認証 (CAC/PKI) を使用している場合、2 つ目の認証ポリシー、つまり多要素認証を設定することをお勧めします。ブラウザに証明書がキャッシュされているので、必要な再認証を強制できません。このため、ユーザーに再認証が確実に提示されるように、多要素認証などの 2 つ目の認証ポリシーが必要になることがあります。
* 
以下の説明は、Windchill に基本 SSO コンフィギュレーションをすでに設定していることを前提としています。詳細については、OpenID Connect 認証のサポートを参照してください。
Open ID Connect での電子署名の設定
以下のコンフィギュレーションの手順に従います。
* 
Microsoft Entra ID の場合、アプリケーション登録で ID トークンタイプとして auth_time 要求を追加する必要があります。
PingFederate では、auth_time 要求はデフォルトで定義されており、トークンから除去できません。これを行うと、Windchill の電子署名機能に不具合が生じる可能性があります。
2. これらの URL を電子署名アプリケーションの IDP で設定します。
https://<ホスト:ポート>/<Web アプリケーション名>/reauthsecure/SSOReAuthentication.jsp?buttonId=workflowEsignCompleteButton。
https://<ホスト:ポート>/<Web アプリケーション名>/reauthsecure/SSOReAuthentication.jsp
3. 以下のプロパティを wt.properties から site.xconf まで追加します。
プロパティ
説明
wt.jwt.oidc.esign.providerURL
IDP で ID コンフィギュレーションを開きます。これは IDP に存在する openid-configuration のパスです。
PingFederate の場合: https://<ホスト名>:9031/.well-known/openid-configuration
Microsoft Entra ID の場合: https://login.microsoftonline.com/..well-known/openid-configuration
wt.jwt.oidc.esign.clientId
IDP からのクライアント ID
wt.jwt.oidc.esign.clientSecrets
IDP からのクライアントシークレット。Windchill キーストアに保存し、デフォルト値 encrypted.esign.clientSecrets を使用する必要があります。「Manage esign secrets」のセクションを確認してください。
wt.jwt.oidc.esign.scope
IDP で定義されている範囲 (デフォルトは「openid」)
openid
wt.jwt.oidc.esign.audience
対象者検証に使用する値を指定します。
wt.org.electronicIdentification.class
wt.workflow.engine.SSOConfiguredSignatureEngine
wt.jwt.oauth2.token.userAttrName
Windchill ユーザー名として使用する IDP、認証トークンからの属性を指定します。
wt.auth.sso.type
値は OIDC でなければなりません
wt.auth.oidc.validation.jwt.tokentype
値は ID_TOKEN でなければなりません
wt.jwt.oauth2.token.kidUrl
Microsoft Entra ID の場合は、値を https://login.microsoftonline.com/<テナント ID>/discovery/v2.0/keys に設定します。
PingFederate の場合は、値を https://<ホスト名>:9031/pf/JWKS に設定します。
wt.jwt.oauth2.token.tokenIssuer
IDP でのトークン発行者
PingFederate: 値は https://<ホスト名>:9031 です
Microsoft Entra ID: 値は https://sts.windows.net//<テナント id>/ です
wt.jwt.id.token.extraClaimsToBeValidated
この値には iss、aud、exp、sub、typ のいずれかまたは複数の値を設定できます。これはデフォルトの必須の要求のリストを値としてとります。このプロパティは、iat、nbf などの JWT トークンからの追加の要求を検証するときに使用されます。
PingFederate JWT の場合、このプロパティは必要ありません。
wt.jwt.oauth2.token.authtime.tolerance
再認証用トークンに含まれる auth_time 要求の検証。この許容時間が経過すると期限切れになります。
デフォルト: 10。値は秒単位です。
電子署名のシークレットの管理
* 
シークレットを管理するように暗号化が設定されていることを確認します。
Windchill キーストアで電子署名のシークレットを設定および管理するには、次のコマンドを実行します。
ant -f <WT_HOME>/bin/adminTools/sip/EncryptPasswords.xml addValueToKeyStore -DpropertyName=esign.clientSecrets -Dpassword=<esign_ clientSecrets >
# esign_ clientSecrets: should be defined in IDP for Esign App and set in Windchill
これは役に立ちましたか?