OpenID Connect 認証のサポート
Windchill 13.0.2.0 以降では、Windchill 製品に追加の認証オプション OpenID Connect を使用できます。この新しい認証メカニズムは既存の認証フローには影響しません。OIDC を設定する際:
認証に SAML または OIDC を選択してください。これはコンフィギュレーション可能なオプションです。
OIDC は、PingFederate や Entra ID など、既存のすべての Windchill SSO 認証コンフィギュレーションで設定できます。
OIDC メカニズム
OIDC は OAuth とよく似ていますが、OAuth ではユーザーがユーザー名とパスワードを入力せずに、あるアプリケーションに別のアプリケーションのデータにアクセスするためのアクセス許可を付与するのに対し、OIDC ではトークンを使用して認証プロセスと承認プロセスの両方が実行されます。
クライアントが読み取るアイデンティティトークンは、ユーザーが認証済みであることを証明する JSON Web トークン (JWT) です。これらのファイルには、ユーザー名、アプリケーションまたはサービスへのサインオンを試みた時刻、オンラインリソースへのアクセスが許可される時間など、ユーザーに関する情報が含まれています。
API によって読み取りおよび検証されるアクセストークンは、保護されたリソースにアクセスするために使用されます。これらのトークンは JWT ですが、別のフォーマットでも構いません。その目的は、このトークンの所有者が API にアクセスして (付与されている範囲によって定められている) 特定の操作を実行する権限が付与されていることを API に通知することです
ID トークンは API へのアクセスには使用できず、アクセストークンは認証には使用できません。次の図は、一般的な OIDC 認証プロセスの仕組みを示しています。
Windchill での OIDC コンフィギュレーションの必要条件
OIDC のコンフィギュレーションを開始する前に、次の必要条件が満たされている必要があります。
IDP は、認証 APP Ex に必要な client_id、シークレット、コールバック/リダイレクト URL を使用して設定する必要があります。
SAML または OIDC のコンフィギュレーションが同時に機能することはなく、SAML または OIDC のどちらかが機能します。
Windchill での OIDC コンフィギュレーション
1. <Apache_ホーム>/envvars ファイルの末尾にある LD_LIBRARY_PATH に以下のテキストを追加します (Linux のみ)。
“:<APACHE_HOME>/mod_oidc_Linux<OS_VERSION>/lib_curl/usr?lib64\:<APACHE_HOME>/mod_oidc_Linux<OS_VERSION>/jansson/usr/lib64\:<APACHE_HOME>/mod_oidc_Linux<OS_VERSION>/cjose/usr/lib64\:<APACHE_HOME>/mod_oidc_Linux<OS_VERSION>/hiredis”“:<APACHE_HOME>/mod_oidc_Linux
2. <APACHE_ホーム>/conf/conf.d/30-app-Windchill-Auth.conf をコピーし、名前を 30-app-Windchill-Auth1.conf に変更します。コピー先の場所は <APACHE_ホーム>/conf/conf.d となります。
3. 以下の例に示すように、コピーしたファイル 30-app-Windchill-Auth1.conf から認証プロバイダ情報を除去します。
4. 以下の例に示すように、認証済みリソースを除去します。
5. 30-app-Windchill-Auth1.conf ファイルの先頭に以下のテキストを追加します。
# Location of mod_auth_openidc.so
LoadModule auth_openidc_module
<Apache_Home>/mod_oidc_Linux<OS_Version>/mod_auth_openidc/usr/lib64/httpd/modules/mod_auth_openidc.so
les/mod_auth_openidc.so
OS_Version: should be 8/9 based on the OS version
#Windows
LoadModule auth_openidc_module modules/mod_auth_openidc.so
# Metadata URL of OIDC configuration
OIDCProviderMetadataURL "<OIDCProviderMetadataURL>"
# Client identifier used in calls to the statically configured OpenID Connect Provider.
OIDCClientID "<client_id>"
# Client secret used in calls to the statically configured OpenID Connect Provider.
OIDCClientSecret "<client_secret>"
# Define the OpenID Connect scope that is requested from the OP (eg. "openid email profile").
OIDCScope "<scope>"
# The claim that is used when setting the REMOTE_USER variable on OpenID Connect protected paths.
OIDCRemoteUserClaim "<OIDCRemoteUserCLaim>"
# Set a password for crypto purposes
OIDCCryptoPassphrase "random string"
# Define the way in which the claims and tokens are passed to the application environment:
OIDCPassClaimsAs "environment"
#The redirect_uri for this OpenID Connect client; this is a vanity URL that must ONLY point to a path on your server protected by this module but it must NOT point to any actual content that needs to be served.
OIDCRedirectURI "<OIDC redirect URL>"
# Indicates whether POST data will be preserved across authentication requests (and discovery in case of multiple OPs). This is designed to prevent data loss when a session timeout occurs in a (long) user filled HTML form.
OIDCPreservePost "on"
# Defines the action to be taken when an unauthenticated request is made.
# "auth" means that the user is redirected to the OpenID Connect Provider or Discovery page.
# To disable auto-detection of XML HTTP request altogether and unconditionally return "auth"
# for all clients
OIDCUnAuthAction auth true
# Require a valid SSL server certificate when communicating with the OP. Default “On”
OIDCSSLValidateServer "off"
# Authenticated resources
<LocationMatch ^/+<WebAppName>/+(;.*)?>
AuthType openid-connect
Require valid-user
</LocationMatch>
#“<WebAppName>”: it should be web app name that you provided at install time. Ex. Default: Windchill
OIDC コンフィギュレーションの例を次に示します。
#Overall OIDC config
LoadModule auth_openidc_module modules/mod_auth_openidc.so
#Metadata URL of OIDC configuration
OIDCProviderMetadataURL "https://loqin.microsoftonline.com/‭ ‬/.well-known/openid-confiquration"
#Client identifier used in calls to the statically configured OpenID Connect Provider.
OIDCClientID " "
#Client secret used in calls to the statically configured OpenID Connect Provider.
OIDCClientsecret " "
#Define the OpenID Connect scope that is requested from the OP (eg. "openid email profile").
OIDCScope "openid"
#The claim that is used when setting the REMOTE_USER variable on OpenID Connect protected paths.
OIDCRemoteUserClaim "unique_name"
#Extra parameters that will be sent along with the Authorization Request.
#Set a password for crypto purposes
OIDCCryptoPassphrase "oidccryptopassphrase21122"
#Define the way in which the claims and tokens are passed to the application environment:
OIDCPassClaimsAs "environment"
#The redirect_uri for this OpenID Connect client; this is a vanity URL that must ONLY point to a path on your server protected by this module but it must NOT point to any actual content that needs to be served.
OIDCRedirectURI "https:// /Wlndchlll/app/redlrectUI"
#Overall Delegate OAuth configuration config
#The JWKs URL on which the Authorization Server publishes the keys used to sign its JWT access tokens.
OIDCOAuthVerifyJwksUri "https://loqin.microsoftonline.com/common/di3covery/keys"
#Indicates whether POST data will be preserved across authentication requests (and discovery in case of multiple OPs).
#This is designed to prevent data loss when a session timeout occurs in a (long) user filled HTML form.
OIDCPreservePost "on"
#Defines the action to be taken when an unauthenticated request is made.
#"auth" means that the user is redirected to the OpenID Connect Provider or Discovery page.
#To disable auto-detection of XML HTTP request altogether and unconditionally return "auth"
#for all clients
OIDCUnAuthAction auth true
#OIDC authenticated resources
これは役に立ちましたか?