前のトピック: 手順 1: ArcotID PKI のダウンロード次のトピック: 質問と回答認証


手順 2: ArcotID PKI 認証

ArcotID PKI はチャレンジ レスポンス認証に基づいています。 ArcotID PKI クライアントは、まず AuthMinder サーバからチャレンジを取得し、それに署名した後、署名済みチャレンジを確認するためのリクエストを AuthMinder サーバに送信します。

このセクションでは、以下の手順について説明します。

リクエスト メッセージの準備

ArcotID PKI 認証では、以下のリクエスト メッセージを準備する必要があります。

チャレンジの取得

AuthMinder サーバからのチャレンジを取得するには、GetArcotIDChallengeRequestMessage を使用します。 以下の表に、このメッセージの要素のリストを示します。

要素

必須

説明

clientTxnId

いいえ

呼び出し元アプリケーションが含めることができる一意のトランザクション識別子を指定します。 この識別子は、関連するトランザクションの追跡に役立ちます。

additionalInput/pairs

いいえ

AuthMinder の additionalInput 要素を使用すると、追加情報を指定して AuthMinder の認証機能を拡張したい場合に、追加入力を設定できます。 その場合、名前と値のペアで追加情報を設定する必要があります。

  • name (作成するキー ペアの名前)
  • value (名前に対応する値)

    注: これらの要素は複数追加できます。

事前定義済みの追加入力パラメータの一部を以下に示します。

  • AR_WF_LOCALE_ID
    呼び出し元アプリケーションにメッセージを返す際に AuthMinder で使用するロケールを指定します。
  • AR_WF_CALLER_ID
    トランザクションの追跡に役立ちます。 この情報は、セッション ID またはクライアント トランザクション ID (clientTxnId)を使用して指定できます。

署名済みチャレンジの確認

署名済みチャレンジを確認するには、VerifySignedChallengeRequestMessage を使用します。 以下の表に、このメッセージの要素のリストを示します。

要素

必須

説明

clientTxnId

いいえ

呼び出し元アプリケーションが含めることができる一意のトランザクション識別子を指定します。 この識別子は、関連するトランザクションの追跡に役立ちます。

orgName

いいえ

ユーザが属する組織の名前。

signedChallenge

はい

ユーザの ArcotID PKI パスワードを使用して ArcotID PKI クライアントによって署名されたチャレンジ。

tokenType

いいえ

認証が成功した後に、AuthMinder サーバから受け取る認証トークンのタイプ。 詳細については、「認証トークンの検証」を参照してください。

additionalInput/pairs

いいえ

AuthMinder の additionalInput 要素を使用すると、追加情報を指定して AuthMinder の認証機能を拡張したい場合に、追加入力を設定できます。 その場合、名前と値のペアで追加情報を設定する必要があります。

  • name (作成するキー ペアの名前)
  • value (名前に対応する値)

    注: これらの要素は複数追加できます。

事前定義済みの追加入力パラメータの一部を以下に示します。

  • AR_WF_LOCALE_ID
    呼び出し元アプリケーションにメッセージを返す際に AuthMinder で使用するロケールを指定します。
  • AR_WF_CALLER_ID
    トランザクションの追跡に役立ちます。 この情報は、セッション ID またはクライアント トランザクション ID (clientTxnId)を使用して指定できます。

Web サービスの起動

ArcotID PKI 認証を実行する方法

  1. オプション) SOAP ヘッダまたは GetArcotIDChallenge 操作の additionalInput 要素に認証および許可の詳細を含めます。 これらの詳細については、「Web サービス セキュリティの管理」の章を参照してください。
  2. GetArcotIDChallengeRequestMessage を使用して、入力メッセージを作成します。
  3. オプション)プラグインを実装する場合は、additionalInput 要素タイプを呼び出して追加入力を指定します。
  4. ArcotWebFortAuthSvc サービスの GetArcotIDChallenge 操作を呼び出して、AuthMinder サーバからチャレンジを取得します。

    この操作では、トランザクションの詳細とサーバからのチャレンジを格納した GetArcotIDChallengeResponseMessage が返されます。

  5. チャレンジが HTML ページを通じてエンド ユーザに送信されます。
  6. ArcotID PKI クライアント側の SignChallengeEx() メソッドを呼び出して、チャレンジに署名します。

    アプリケーションが ArcotID PKI パスワードを収集し、その ArcotID PKI パスワードを使用して ArcotID PKI クライアントがチャレンジに署名します。

  7. オプション) SOAP ヘッダまたは VerifyArcotIDSignedChallenge 操作の additionalInput 要素に認証および許可の詳細を含めます。 これらの詳細については、「Web サービス セキュリティの管理」の章を参照してください。
  8. VerifySignedChallengeRequestMessage を使用して、入力メッセージを作成します。
  9. オプション)プラグインを実装する場合は、additionalInput 要素タイプを呼び出して追加入力を指定します。
  10. ArcotWebFortAuthSvc サービスの VerifyArcotIDSignedChallenge 操作を使用して、署名されたチャレンジを確認します。 必要に応じて、tokenType 要素を使用して、認証が成功した後にユーザに返す必要があるトークンのタイプを指定できます。

    この操作では、トランザクションの詳細、認証情報の詳細、およびトークン情報を格納した VerifySignedChallengeResponseMessage のインスタンスが返されます。

レスポンス メッセージの解釈

ArcotID PKI 認証の一部として返されるレスポンス メッセージを以下に示します。

チャレンジ取得レスポンス メッセージ

成功したトランザクションでは、GetArcotIDChallengeResponseMessage レスポンス メッセージに、以下の表で説明されている要素が返されます。 これらの要素は SOAP本文に含まれます。 エラーがある場合、エラー レスポンスは SOAP 本文に含まれます。 SOAP エラー メッセージの詳細については、付録「エラー コード」を参照してください。

要素

説明

challenge

AuthMinder サーバによって返されるチャレンジ。

transactionDetails

以下のトランザクションの詳細が含まれます。

  • message
    操作のステータスを定義する文字列。
  • reasoncode
    操作の失敗時に AuthMinder サーバが送信する一意のコード。
  • responseCode
    操作の失敗時に AuthMinder サーバが送信する一意のコード。
  • transactionID
    トランザクションの一意の識別子。
  • additionalOutput
    AuthMinder サーバに渡された additionalInput に対する出力。

署名済みチャレンジ確認レスポンス メッセージ

成功したトランザクションでは、VerifySignedChallengeResponseMessage レスポンス メッセージに、以下の表で説明されている要素が返されます。 これらの要素は SOAP本文に含まれます。 エラーがある場合、エラー レスポンスは SOAP 本文に含まれます。 SOAP エラー メッセージの詳細については、付録「エラー コード」を参照してください。

Method

説明

userName

認証ユーザの名前。

orgName

ユーザが属する組織。

authToken

成功した認証の後に AuthMinder サーバによって返される認証トークン。

tokenType

成功した認証の後に AuthMinder サーバによって返される認証トークンのタイプ。 詳細については、「認証トークンの検証」を参照してください。

daysLeftToExpire

パスワードが失効するまでの日数。

status

認証情報のステータスです。

remainingUsageCount

認証情報を使用できる回数。

createTime

認証情報の作成時刻。

lastUpdatedTime

認証情報の最終更新時刻。

validityStartTime

認証情報の有効期間の開始日。

validityEndTime

認証情報の有効期間の終了日。

disableStartTime

認証情報が無効化される時刻。

disableEndTime

無効化された認証情報が有効化される時刻。

numberOfFailedAuthAttempts

ユーザの認証試行の失敗総数。

lastSuccessAuthAttemptTime

認証試行が前回正常終了した時刻。

lastFailedAuthAttemptTime

認証試行が前回失敗した時刻。

profileName

認証情報の作成に使用されたプロファイル名。

profileVersion

プロファイルのバージョン番号。

参照してください。

認証情報に設定されているカスタム属性。

transactionDetails

以下のトランザクションの詳細が含まれます。

  • message
    操作のステータスを定義する文字列。
  • reasoncode
    操作の失敗時に AuthMinder サーバが送信する一意のコード。
  • responseCode
    操作の失敗時に AuthMinder サーバが送信する一意のコード。
  • transactionID
    トランザクションの一意の識別子。
  • additionalOutput
    AuthMinder サーバに渡された additionalInput に対する出力。