8.5. X.509 クライアント証明書ユーザー認証
相互 SSL 認証を使用するようにサーバーを設定した場合、Red Hat Single Sign-On は、X.509 クライアント証明書を使用したログインをサポートします。
通常のワークフロー:
- クライアントは SSL/TLS チャンネルで認証リクエストを送信します。
- SSL/TLS ハンドシェイクの間、サーバーとクライアントは x.509/v3 証明書を交換します。
- コンテナー (JBoss EAP) は、証明書 PKIX パスと証明書の有効期限を検証します。
X.509 クライアント証明書オーセンティケーターは、以下の方法を使用してクライアント証明書を検証します。
- CRL または CRL Distribution Points を使用して、証明書失効ステータスを確認します。
- OCSP (Online Certificate Status Protocol) を使用して、証明書失効ステータスを確認します。
- 証明書の鍵が予想される鍵と一致するかどうかを確認します。
- 証明書の拡張鍵が、想定された拡張鍵と一致するかどうかを検証します。
- これらのチェックのいずれかが失敗すると、x.509 認証は失敗します。それ以外の場合は、オーセンティケーターは証明書のアイデンティティーを抽出し、これを既存ユーザーにマッピングします。
証明書が既存のユーザーにマッピングされると、認証フローに応じてさまざまな動作が行われます。
- Browser Flow では、サーバーはユーザーに対してアイデンティティーを確認するか、ユーザー名とパスワードを使用してサインインするよう要求します。
- Direct Grant Flow では、サーバーはユーザーにサインインします。
証明書 PKIX パスを検証するのは Web コンテナーのロールであることに注意してください。Red Hat Single Sign-On 側の X.509 オーセンティケーターは、証明書の有効期限、証明書失効ステータス、およびキーの使用を確認する追加のサポートのみを提供します。リバースプロキシーの背後にデプロイされた Red Hat Single Sign-On を使用している場合は、リバースプロキシーが PKIX パスを検証するように設定されていることを確認します。リバースプロキシーを使用せず、ユーザーが JBoss EAP に直接アクセスする場合は、以下のように PKIX パスが設定されている限り、JBoss EAP が PKIX パスが検証された状態を維持するので問題ありません。
8.5.1. 機能
サポートされる証明書アイデンティティーソース:
- 正規表現を使用した SubjectDN の一致
- X500 サブジェクトの email 属性
- Subject Alternative Name Extension からの X500 サブジェクトの email (RFC822Name General Name)
- サブジェクトの別名エクステンションの X500 サブジェクトの他の名前。通常、この他の名前は User Principal Name (UPN) です。
- X500 サブジェクトのコモンネーム属性
- 正規表現を使用した IssuerDN の一致
- 証明書のシリアル番号
- Certificate Serial Number および IssuerDN
- SHA-256 証明書サムプリント
- PEM 形式の完全な証明書
8.5.1.1. 正規表現
Red Hat Single Sign-On は、正規表現をフィルターとして使用して、サブジェクト DN または発行者 DN から証明書のアイデンティティーを抽出します。たとえば、以下の正規表現は email 属性とマッチします。
emailAddress=(.*?)(?:,|$)
正規表現のフィルターは、Identity Source
が、Match SubjectDN using regular expression
または Match IssuerDN using regular expression
のいずれかに設定されている場合にのみ適用されます。
8.5.1.1.1. 既存のユーザーへの証明書 ID のマッピング
証明書アイデンティティーマッピングは、抽出したユーザー ID を、既存のユーザーのユーザー名、メール、または値が証明書 ID とマッチするカスタム属性にマッピングできます。たとえば、Identity source
を Subject's email に設定するか、User mapping method
を Username or email に設定すると、X.509 クライアント証明書オーセンティケーターは、ユーザー名または電子メールで既存のユーザーを検索するときに、証明書の Subject DN の email 属性を検索条件として使用します。
- レルム設定で Login with email を無効にすると、同じルールが証明書認証に適用されます。ユーザーは email 属性を使用してログインできません。
-
Certificate Serial Number and IssuerDN
を ID ソースとして使用するには、シリアル番号と IssuerDN に 2 つのカスタム属性が必要です。 -
SHA-256 Certificate thumbprint
は、SHA-256 証明書のサムプリントの小文字の 16 進数表記です。 -
ID ソースとしての
Full certificate in PEM format
の使用は、LDAP などの外部フェデレーションソースにマッピングされたカスタム属性に限定されます。Red Hat Single Sign-On は、長さの制限によりデータベースに証明書を保存できません。そのため、LDAP の場合は、Always Read Value From LDAP
を有効にする必要があります。
8.5.1.1.2. 拡張証明書の検証
- CRL を使用した失効ステータスの確認。
- CRL/分散ポイントを使用した失効ステータスの確認。
- OCSP/Responder URI を使用した失効ステータスの確認。
- 証明書 KeyUsage の検証。
- 証明書 ExtendedKeyUsage の検証。
8.5.2. X.509 クライアント証明書ユーザー認証の有効化
ここでは、JBoss EAP/Undertow および Red Hat Single Sign-On Server を設定して、X.509 クライアント証明書認証を有効にする方法を説明します。
8.5.2.1. JBoss EAP での相互 SSL の有効化
JBoss EAP で SSL を有効にする手順は、Enable SSL を参照してください。
- RHSSO_HOME/standalone/configuration/standalone.xml を開き、新しいレルムを追加します。
<security-realms> <security-realm name="ssl-realm"> <server-identities> <ssl> <keystore path="servercert.jks" relative-to="jboss.server.config.dir" keystore-password="servercert password"/> </ssl> </server-identities> <authentication> <truststore path="truststore.jks" relative-to="jboss.server.config.dir" keystore-password="truststore password"/> </authentication> </security-realm> </security-realms>
ssl/keystore
-
ssl
要素には、JKS キーストアからサーバーの公開鍵ペアを読み込むための詳細が含まれるkeystore
要素が含まれます。 ssl/keystore/path
- JKS キーストアへのパス。
ssl/keystore/relative-to
- キーストアパスの起点となるパス。
ssl/keystore/keystore-password
- キーストアを開くためのパスワード。
ssl/keystore/alias
(オプション)- キーストアのエントリーのエイリアス。キーストアに複数のエントリーが含まれる場合に設定します。
ssl/keystore/key-password
(オプション)- 秘密のキーパスワード (キーストアパスワードと異なる場合)。
authentication/truststore
- トラストストアをロードして、インバウンド/ルーティング接続のリモート側に表示される証明書を検証する方法を定義します。通常、トラストストアには信頼される CA 証明書の集合が含まれます。
authentication/truststore/path
- 信頼される認証局の証明書が含まれる JKS キーストアへのパス。
authentication/truststore/relative-to
- トラストストアパスの起点となるパス。
authentication/truststore/keystore-password
- トラストストアを開くパスワード。
8.5.2.2. HTTPS リスナーの有効化
WildFly で HTTPS を有効にする方法については、HTTPS Listener を参照してください。
- <https-listener> 要素を追加します。
<subsystem xmlns="urn:jboss:domain:undertow:12.0"> .... <server name="default-server"> <https-listener name="default" socket-binding="https" security-realm="ssl-realm" verify-client="REQUESTED"/> </server> </subsystem>
https-listener/security-realm
- この値は、前のセクションのレルムの名前に一致する必要があります。
https-listener/verify-client
- REQUESTED に設定した場合、サーバーは必要に応じてクライアント証明書を要求します。REQUIRED に設定すると、クライアント証明書が提供されていない場合、サーバーは受信接続を拒否します。
8.5.3. ブラウザーフローへの X.509 クライアント証明書認証の追加
- メニューで Authentication をクリックします。
- Browser フローをクリックします。
- Copy をクリックして、ビルトインの Browser フローのコピーを作成します。
- コピーの名前を入力します。
- Ok をクリックします。
- Add policy ドロップダウンボックスでコピーをクリックします。
- Add execution をクリックします。
- X509/Validate Username Form をクリックします。
Save をクリックします。
X509 実行
- 上下の矢印ボタンをクリックして、Browser Forms 実行の上に X509/Validate Username Form を移動します。
要件を ALTERNATIVE に設定します。
X509 ブラウザーフロー
- Bindings タブをクリックします。
- Browser Flow ドロップダウンリストをクリックします。
- ドロップダウンリストからブラウザーフローのコピーをクリックします。
Save をクリックします。
X509 ブラウザーフローバインディング
8.5.4. X.509 クライアント証明書認証の設定
X509 設定
- User Identity Source
- クライアント証明書からユーザーアイデンティティーを抽出する方法を定義します。
- Canonical DN representation enabled
- 正規の形式を使用して識別名を判断するかどうかを定義します。公式の Java API ドキュメント で形式が説明されています。このオプションは、2 つのユーザーアイデンティティーソース Match SubjectDN using regular expression および Match IssuerDN using regular expression にのみ影響します。新しい Red Hat Single Sign-On インスタンスをセットアップする際に、このオプションを有効にします。既存の Red Hat Single Sign-On インスタンスとの後方互換性を維持するには、このオプションを無効にします。
- Enable Serial Number hexadecimal representation
- シリアル番号を 16 進数で表します。符号ビットに 1 が設定されているシリアル番号は、00 オクテットを左に追加する必要があります。たとえば、10 進値が161のシリアル番号、または 16 進表現のa1は、RFC5280 に従って00a1としてエンコードされます。詳細は、RFC5280, appendix-B を参照してください。
- A regular expression
- 証明書 ID を抽出するフィルターとして使用する正規表現。表現には 1 つのグループを含める必要があります。
- User Mapping Method
- 証明書 ID を既存ユーザーに一致させる方法を定義します。Username or email は、ユーザー名またはメールアドレスで既存のユーザーを検索します。Custom Attribute Mapperは、証明書 ID と一致するカスタム属性を持つ既存のユーザーを検索します。カスタム属性の名前は設定可能です。
- A name of user attribute
- 値が証明書アイデンティティーと照合されるカスタム属性。属性マッピングが複数の値に関連する場合は、複数のカスタム属性を使用します (例:Certificate Serial Number and IssuerDN)。
- CRL Checking Enabled
- Certificate Revocation List を使用して、証明書の失効ステータスを確認します。リストの場所は、CRL file path 属性で定義されます。
- Enable CRL Distribution Point to check certificate revocation status
- CDP を使用して、証明書失効ステータスを確認します。ほとんどの PKI 認証局には、証明書に CDP が含まれます。
- CRL file path
- CRL リストが含まれるファイルへのパス。CRL Checking Enabled オプションが有効になっている場合、値は有効なファイルへのパスである必要があります。
- OCSP Checking Enabled
- Online Certificate Status Protocol を使用して、証明書失効ステータスを確認します。
- OCSP Fail-Open Behavior
- デフォルトでは、認証を成功させるために、OCSP チェックは肯定応答を返す必要があります。ただし、このチェックが決定的でない場合があります。たとえば、OCSP サーバーに到達できない、過負荷になっている、またはクライアント証明書に OCSP レスポンダー URI が含まれていない可能性があります。この設定をオンにすると、OCSP レスポンダーが明示的な否定応答を受信し、証明書が確実に取り消された場合にのみ、認証が拒否されます。有効な OCSP 応答がない場合は、認証試行が許可されます。
- OCSP Responder URI
- 証明書の OCSP レスポンダー URI の値を上書きします。
- Validate Key Usage
- 証明書の KeyUsage 拡張ビットが設定されていることを検証します。たとえば、digitalSignature,KeyEncipherment は、KeyUsage 拡張のビット 0 と 2 が設定されているかどうかを検証します。Key Usage の検証を無効にするには、このパラメーターを空欄のままにします。詳細は、RFC5280, Section-4.2.1.3 を参照してください。キーの使用が一致しないと、Red Hat Single Sign-On はエラーを発生させます。
- Validate Extended Key Usage
- Extended Key Usage 拡張で定義された 1 つまたは複数の目的を検証します。詳細は、RFC5280, Section-4.2.1.12 を参照してください。Extended Key Usage の検証を無効にするには、このパラメーターを空欄のままにします。発行元の CA によってクリティカルとフラグが付けられ、キーの使用拡張の不一致が発生した場合、Red Hat Single Sign-On はエラーを発生させます。
- 証明書ポリシーの検証
- 証明書ポリシー拡張で定義されている 1 つ以上のポリシー OID を確認します。RFC5280 のセクション -4.2.1.4 を参照してください。証明書要求の検証を無効にするには、パラメーターを空のままにします。複数のポリシーはコンマで区切る必要があります。
- 証明書ポリシーの検証モード
-
Validate Certificate Policy
設定で複数のポリシーが指定されている場合、要求されたすべてのポリシーが存在するかどうかを照合で確認するか、認証を成功させるには 1 つの照合で十分かを判断します。デフォルト値はAll
です。つまり、要求されたポリシーすべてがクライアント証明書に存在する必要があることを意味します。 - Bypass identity confirmation
- 有効にすると、X.509 クライアント証明書認証は、証明書 ID を確認するようにユーザーに要求しません。Red Hat Single Sign-On は、認証に成功するとユーザーにサインインします。
- Revalidate client certificate
- 設定された場合、クライアント証明書のトラストチェーンは、設定されたトラストストアにある証明書を使用して、アプリケーションレベルで常に検証されます。これは、基礎となる Web サーバーがクライアント証明書チェーンの検証を強制しない場合に便利です (非検証のロードバランサーやリバースプロキシーの背後にある場合や、相互 SSL ネゴシエーションについて許可される CA の数が大きすぎる場合など (ほとんどのブラウザーは最大の SSL ネゴシエーションパケットのサイズを 32767 バイトに制限します。これは、約 200 の広告済み CA に対応します)。デフォルトでは、このオプションは無効です。
8.5.5. X.509 クライアント証明書認証の Direct Grant Flow への追加
- メニューで Authentication をクリックします。
- Direct Grant フローをクリックします。
- Copy をクリックして、Direct Grant フローのコピーを作成します。
- コピーの名前を入力します。
- Ok をクリックします。
- Username Validation の Actions リンクをクリックし、Delete をクリックします。
- Delete をクリックします。
- Password の Actions リンクをクリックし、Delete をクリックします。
- Delete をクリックします。
- Add execution をクリックします。
- X509/Validate Username をクリックします。
Save をクリックします。
X509 直接付与実行
- x509 ブラウザーフロー セクションで説明されている手順に従って、x509 認証設定をセットアップします。
- Bindings タブをクリックします。
- Direct Grant Flow ドロップダウンリストをクリックします。
- 新規作成された x509 Direct Grant フローをクリックします。
Save をクリックします。
X509 直接付与フローバインディング
8.5.6. クライアント証明書ルックアップ
Red Hat Single Sign-On サーバーが直接 HTTP リクエストを受け取ると、JBoss EAP undertow サブシステムは SSL ハンドシェイクを確立し、クライアント証明書を抽出します。JBoss EAP は、サーブレット仕様で指定されたように、HTTP リクエストの javax.servlet.request.X509Certificate
属性にクライアント証明書を保存します。Red Hat Single Sign-On X509 オーセンティケーターは、この属性から証明書を検索できます。
ただし、Red Hat Single Sign-On サーバーがロードバランサーまたはリバースプロキシーの背後で HTTP リクエストをリッスンする場合は、プロキシーサーバーはクライアント証明書を抽出し、相互 SSL 接続を確立する場合があります。リバースプロキシーは通常、認証されたクライアント証明書をベースのリクエストの HTTP ヘッダーに配置します。プロキシーはリクエストをバックエンド Red Hat Single Sign-On サーバーに転送します。この場合、Red Hat Single Sign-On は、HTTP リクエストの属性ではなく、HTTP ヘッダーから X.509 証明書チェーンを検索する必要があります。
Red Hat Single Sign-On がリバースプロキシーの背後にある場合は、通常 RHSSO_HOME/standalone/configuration/standalone.xml で x509cert-lookup
SPI の代替プロバイダーを設定する必要があります。HTTP ヘッダー証明書を検索する default
のプロバイダーでは、さらに haproxy
と apache
の 2 つの組み込みプロバイダーが存在します。
8.5.6.1. HAProxy 証明書ルックアッププロバイダー
Red Hat Single Sign-On サーバーが HAProxy リバースプロキシーの背後に配置されると、このプロバイダーを使用します。サーバーには以下の設定を使用します。
<spi name="x509cert-lookup"> <default-provider>haproxy</default-provider> <provider name="haproxy" enabled="true"> <properties> <property name="sslClientCert" value="SSL_CLIENT_CERT"/> <property name="sslCertChainPrefix" value="CERT_CHAIN"/> <property name="certificateChainLength" value="10"/> </properties> </provider> </spi>
この設定例では、クライアント証明書が HTTP ヘッダー SSL_CLIENT_CERT
から検索され、そのチェーンからの他の証明書が CERT_CHAIN_0
から CERT_CHAIN_9
までの HTTP ヘッダーから検索されます。属性 certificateChainLength
はチェーンの最大長であるため、最後の属性は CERT_CHAIN_9
になります。
クライアント証明書の HTTP ヘッダーおよびクライアント証明書チェーンの設定についての詳細は、HAProxy のドキュメントを参照してください。
8.5.6.2. Apache 証明書ルックアッププロバイダー
Red Hat Single Sign-On サーバーが Apache リバースプロキシーの背後にある場合は、このプロバイダーを使用できます。サーバーには以下の設定を使用します。
<spi name="x509cert-lookup"> <default-provider>apache</default-provider> <provider name="apache" enabled="true"> <properties> <property name="sslClientCert" value="SSL_CLIENT_CERT"/> <property name="sslCertChainPrefix" value="CERT_CHAIN"/> <property name="certificateChainLength" value="10"/> </properties> </provider> </spi>
この設定は、haproxy
プロバイダーと同じです。クライアント証明書の HTTP ヘッダーおよびクライアント証明書チェーンの設定方法の詳細については、mod_ssl および mod_headers の Apache ドキュメントを参照してください。
8.5.6.3. NGINX 証明書ルックアッププロバイダー
Red Hat Single Sign-On サーバーが NGINX リバースプロキシーの背後に配置されると、このプロバイダーを使用できます。サーバーには以下の設定を使用します。
<spi name="x509cert-lookup"> <default-provider>nginx</default-provider> <provider name="nginx" enabled="true"> <properties> <property name="sslClientCert" value="ssl-client-cert"/> <property name="sslCertChainPrefix" value="USELESS"/> <property name="certificateChainLength" value="2"/> </properties> </provider> </spi>
NGINX SSL/TLS モジュール は、クライアント証明書チェーンを公開しません。Red Hat Single Sign-On の NGINX 証明書ルックアッププロバイダーは、Keycloak トラストストア を使用して再ビルドします。クライアント証明書チェーンを再構築するために、すべてのルートおよび中間 CA で keytool CLI を使用して Red Hat Single Sign-On トラストストアに反映させます。
クライアント証明書の HTTP ヘッダーの設定の詳細については、NGINX のドキュメントを参照してください。
NGINX 設定ファイルの例:
... server { ... ssl_client_certificate trusted-ca-list-for-client-auth.pem; ssl_verify_client optional_no_ca; ssl_verify_depth 2; ... location / { ... proxy_set_header ssl-client-cert $ssl_client_escaped_cert; ... } ... }
trusted-ca-list-for-client-auth.pem のすべての証明書を Keycloak トラストストア に追加する必要があります。
8.5.6.4. 他のリバースプロキシーの実装
Red Hat Single Sign-On には、他のリバースプロキシー実装に対する組み込みサポートはありません。ただし、apache
または haproxy
と同様に動作する、他のリバースプロキシーを作成できます。これらのいずれも機能しない場合、org.keycloak.services.x509.X509ClientCertificateLookupFactory
および org.keycloak.services.x509.X509ClientCertificateLookup
プロバイダーの独自の実装を作成します。プロバイダーの追加方法に関する詳細は、Server Developer Guide を参照してください。
8.5.7. トラブルシューティング
- HTTP ヘッダーのダンプ
-
リバースプロキシーが Keycloak に何を送信するかを確認するには、
RequestDumpingHandler
Undertow フィルターを有効にし、server.log
ファイルを参照してください。 - logging サブシステムで TRACE ロギングを有効化
... <profile> <subsystem xmlns="urn:jboss:domain:logging:8.0"> ... <logger category="org.keycloak.authentication.authenticators.x509"> <level name="TRACE"/> </logger> <logger category="org.keycloak.services.x509"> <level name="TRACE"/> </logger>
実稼働環境では、RequestDumpingHandler または TRACE ロギングを使用しないでください。
- X.509 での直接認証
この認証を実行するには、以下が必要です。
- ルート CA と中間 CA
- ルート CA/中間 CA で署名されたユーザー署名証明書要求
以下のテンプレートを使用して、Resource Owner Password Credentials Grant を使用してトークンを要求できます。
$ LOC=<install-dir>/intermediate1/user-certificate $ curl --insecure https://localhost:8443/auth/realms/X509_demo/protocol/openid-connect/token --data "grant_type=password" -E $LOC/user1.crt --key $LOC/user1.key --cacert $LOC/intermediate-ca-chain.crt -d client_id=account -d client_secret=BNm5AQPJGEtbayIAoiKUetr0lkXKSlF4 | jq % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2097 100 2013 100 84 25481 1063 -::- -::- -::- 26544 { "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJ1OUNpN0tzUjBIOEFCQXEtQ1Z4SEFDSUo1M1hNYWVhclJrYkw4cFd1VW4wIn0.eyJleHAiOjE2Njc4MzA5NjAsImlhdCI6MTY2NzgzMDY2MCwianRpIjoiNDU5YzE2OGMtODU3ZS00OWRjLTgxYjItZjVhM2M3M2MwODMzIiwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My9hdXRoL3JlYWxtcy9YNTA5X2RlbW8iLCJzdWIiOiIwODZiMTgyZC00MzdhLTQzZDItYTRmZS05ZGZmYTNmOTBiZDAiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJhY2NvdW50Iiwic2Vzc2lvbl9zdGF0ZSI6ImMwYjNiMTJjLTM5YmEtNGQ0Ni1iNDNlLTZkMTM0MGJmNTA5OCIsImFjciI6IjEiLCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJwcm9maWxlIGVtYWlsIiwic2lkIjoiYzBiM2IxMmMtMzliYS00ZDQ2LWI0M2UtNmQxMzQwYmY1MDk4IiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJ1c2VyMSIsImVtYWlsIjoidXNlckByZWRoYXQuY29tIn0.CDtltEkmITloDpqU5alq4U1JopqEJVeoglT-wA43edQ_DfeWSgefL0BIrPlt1SKhFMOVitwyq_9XZvfiS5ZiObE33cDmhr6eohbUtDPibU2GuEIYP9WjlVpZDMaSKQVu5SwM91m6yei22PtH-ApPOBeG4Ru0xZtNXjwGQpuIJEi_H1rZdPY3I4U2lPuQo4Uono5gnF7re_nUvf90FJi0uaOOrsvUhUkj1xEwQ0Diy1oIymcbrDL0Ek7B30StBcjn-fe3-0GpLttLQju0OGTkwD7Eb0UWTKoWAwspMlgpf9NaIGj8rmBsz6eBlGIGWBN2Qg6v3PzbJ2NXKvq435f9Zg", "expires_in": 300, "refresh_expires_in": 1800, "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIyMmFkZDdhMy0xN2RjLTQ5NmQtYTk4NS05YWZhNGZhODVhMTEifQ.eyJleHAiOjE2Njc4MzI0NjAsImlhdCI6MTY2NzgzMDY2MCwianRpIjoiZWU4MjJhMzYtMWEzMS00ZGEzLWIxMGEtNmY1ODkxYmI0MzlhIiwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My9hdXRoL3JlYWxtcy9YNTA5X2RlbW8iLCJhdWQiOiJodHRwczovL2xvY2FsaG9zdDo4NDQzL2F1dGgvcmVhbG1zL1g1MDlfZGVtbyIsInN1YiI6IjA4NmIxODJkLTQzN2EtNDNkMi1hNGZlLTlkZmZhM2Y5MGJkMCIsInR5cCI6IlJlZnJlc2giLCJhenAiOiJhY2NvdW50Iiwic2Vzc2lvbl9zdGF0ZSI6ImMwYjNiMTJjLTM5YmEtNGQ0Ni1iNDNlLTZkMTM0MGJmNTA5OCIsInNjb3BlIjoicHJvZmlsZSBlbWFpbCIsInNpZCI6ImMwYjNiMTJjLTM5YmEtNGQ0Ni1iNDNlLTZkMTM0MGJmNTA5OCJ9.MubgR9rvyrmSOcaq5ce-qVTPenVQye1KsEHJr7nh9-A", "token_type": "Bearer", "not-before-policy": 0, "session_state": "c0b3b12c-39ba-4d46-b43e-6d1340bf5098", "scope": "profile email" }
[host][:port]
- リモート Red Hat Single Sign-On サーバーのホストおよびポート番号。
user_cert.crt
- ユーザーの公開鍵。
user_cert.key
- ユーザーの秘密鍵。この鍵は、公開鍵が偽造されていないことを確認します。秘密鍵は、公開鍵と同じハッシュを指します。
CLIENT_ID
- クライアント ID。
CLIENT_SECRET
- 機密クライアントの場合は、クライアントシークレットです。