ユーザー・チャレンジの初期化または検証
put
/authn/v1
OAAの認証ステータスを更新します。チャレンジが成功したかどうか、またはそれ以上のチャレンジが必要かどうかに関する情報を返します。内部でvalidateをコールしてチャレンジ・データを検証します。
correlationIdとともに、正規のuniqueUserIdと、userIdおよびグループを使用して、APIコールを実行できます。userIdとグループの組合せを使用してユーザーを検索します。
correlationIdとともに、正規のuniqueUserIdと、userIdおよびグループを使用して、APIコールを実行できます。userIdとグループの組合せを使用してユーザーを検索します。
リクエスト
この操作にはリクエスト・パラメータはありません。
サポートされているメディア・タイプ
- application/xml
- application/json
ルート・スキーマ: schema
型:
objectオブジェクトは、認証リクエストの更新のリクエスト・パラメータを定義します。
ソースの表示
-
challengeAnswer: string
ファクタに渡す、ユーザーが指定した回答。
-
challengedata: object InitChallengeData
チャレンジ・ファクタに対するユーザーおよびユーザーの登録に関する情報。
-
challengeop(required): string
チャレンジAPIで実行するようにリクエストされた操作。Init/Validate/Finalizeのいずれかです。initの場合、nonceはオプションです。Validate/Finalizeの場合は、nonceが必要です。
-
challengeResult: string
チャレンジの結果。Success/Error/Failureのいずれか。検証の結果、パッシブ・ファクタAPIが呼び出され、ChallengeAnswerが検証されます。ファクタがパッシブでない場合は、例外がスローされます。他の結果は、チャレンジ・コールを確定するために直接渡されます。
-
challengeResultReason: string
チャレンジ結果が失敗した場合の理由。wrong_answer/too_many_attempts/channel_comm_error/other_error/unavailable_for_user/user_abandoned/user_timedoutのいずれかです。
-
correlationId(required): string
チャレンジAPIによって提供されるトランザクションID。また、このフィールドには、ストアを更新するためにセッション内で使用された以前のIDも含まれます。
-
nonce: string
将来のリクエストを識別するランダムな文字列。これは応答ごとに変化し、確定コールでは最新のnonceが期待されます。
ネストされたスキーマ: InitChallengeData
型:
objectチャレンジ・ファクタに対するユーザーおよびユーザーの登録に関する情報。
ソースの表示
-
abandonedChallenge: boolean
このチャレンジがユーザーによって破棄されたかどうかを示すフラグ。
-
correlationId(required): string
このチャレンジの相関ID。ファクタ実装では、finishChallengeコール中にSP/UASへのコールバックでこれを使用する必要があります。
-
factorAttributes: array factorAttributes
-
factorKey(required): string
エンド・ユーザーによって選択されたファクタの名前。
-
failureURL: string
チャレンジが失敗した場合にフローをリダイレクトする必要があるリソース。ほとんどの場合、これはfinalizerChallengeのURLになります。
-
groupId(required): string
ユーザーに適用可能なグループIDまたはアプリケーション名。
-
isRetry: boolean
これが再試行かどうか。
-
successURL: string
チャレンジが成功した場合にフローをリダイレクトする必要があるリソース。
-
timeToLiveInSec: integer
ブロッキング・コールの開始時のブロッキング・コールの期間。期間の経過後、ブロッキング・コールが無効になります。
-
uniqueUserId: string
外部システムのユーザーの正規のID。これが存在する場合は、userId + groupIdの組合せよりも優先されます。
-
userId(required): string
ユーザーのログインID。さらにgroupIdで修飾できます。
ネストされたスキーマ: factorAttributes
型:
ソースの表示
array- Array of: object UserFactorAttribute
エントリの配列として表されるマップ。
ネストされたスキーマ: UserFactorAttribute
型:
objectエントリの配列として表されるマップ。
ソースの表示
-
userAttributeName(required): string
このユーザーのファクタ固有属性の名前。
-
userAttributeValue(required): string
このユーザーのファクタ固有属性の値。
ルート・スキーマ: schema
型:
objectオブジェクトは、認証リクエストの更新のリクエスト・パラメータを定義します。
ソースの表示
-
challengeAnswer: string
ファクタに渡す、ユーザーが指定した回答。
-
challengedata: object InitChallengeData
チャレンジ・ファクタに対するユーザーおよびユーザーの登録に関する情報。
-
challengeop(required): string
チャレンジAPIで実行するようにリクエストされた操作。Init/Validate/Finalizeのいずれかです。initの場合、nonceはオプションです。Validate/Finalizeの場合は、nonceが必要です。
-
challengeResult: string
チャレンジの結果。Success/Error/Failureのいずれか。検証の結果、パッシブ・ファクタAPIが呼び出され、ChallengeAnswerが検証されます。ファクタがパッシブでない場合は、例外がスローされます。他の結果は、チャレンジ・コールを確定するために直接渡されます。
-
challengeResultReason: string
チャレンジ結果が失敗した場合の理由。wrong_answer/too_many_attempts/channel_comm_error/other_error/unavailable_for_user/user_abandoned/user_timedoutのいずれかです。
-
correlationId(required): string
チャレンジAPIによって提供されるトランザクションID。また、このフィールドには、ストアを更新するためにセッション内で使用された以前のIDも含まれます。
-
nonce: string
将来のリクエストを識別するランダムな文字列。これは応答ごとに変化し、確定コールでは最新のnonceが期待されます。
ネストされたスキーマ: InitChallengeData
型:
objectチャレンジ・ファクタに対するユーザーおよびユーザーの登録に関する情報。
ソースの表示
-
abandonedChallenge: boolean
このチャレンジがユーザーによって破棄されたかどうかを示すフラグ。
-
correlationId(required): string
このチャレンジの相関ID。ファクタ実装では、finishChallengeコール中にSP/UASへのコールバックでこれを使用する必要があります。
-
factorAttributes: array factorAttributes
-
factorKey(required): string
エンド・ユーザーによって選択されたファクタの名前。
-
failureURL: string
チャレンジが失敗した場合にフローをリダイレクトする必要があるリソース。ほとんどの場合、これはfinalizerChallengeのURLになります。
-
groupId(required): string
ユーザーに適用可能なグループIDまたはアプリケーション名。
-
isRetry: boolean
これが再試行かどうか。
-
successURL: string
チャレンジが成功した場合にフローをリダイレクトする必要があるリソース。
-
timeToLiveInSec: integer
ブロッキング・コールの開始時のブロッキング・コールの期間。期間の経過後、ブロッキング・コールが無効になります。
-
uniqueUserId: string
外部システムのユーザーの正規のID。これが存在する場合は、userId + groupIdの組合せよりも優先されます。
-
userId(required): string
ユーザーのログインID。さらにgroupIdで修飾できます。
ネストされたスキーマ: factorAttributes
型:
ソースの表示
array- Array of: object UserFactorAttribute
エントリの配列として表されるマップ。
ネストされたスキーマ: UserFactorAttribute
型:
objectエントリの配列として表されるマップ。
ソースの表示
-
userAttributeName(required): string
このユーザーのファクタ固有属性の名前。
-
userAttributeValue(required): string
このユーザーのファクタ固有属性の値。
レスポンス
サポートされているメディア・タイプ
- application/xml
- application/json
200レスポンス
成功
ルート・スキーマ: UpdateAuthnResponse
型:
object更新レスポンス・オブジェクト。
ソースの表示
-
apiResponse: object StatusInfo
フェッチ・チャレンジ情報リクエストのステータス。これには、ユーザー認証リクエストの処理に必要な情報が含まれています。
-
challengecontext: object InitContext
-
challengeInfo: array challengeInfo
ユーザーは様々な方法でチャレンジできます。オブジェクトには、ユーザーが認証可能なすべての方法が含まれています。リクエストでユーザー情報を使用できない場合、サービス・プロバイダ構成に従ってデフォルトのチャレンジ・メカニズムが提供されます。
-
challengeselectiontext: string
複数のチャレンジのうち1つを選択するために表示するメッセージ
-
cookies: array cookies
ユーザー・アクセス・リクエストに存在するCookie。
-
correlationId: string
チャレンジAPIによって提供されるトランザクションID。また、このフィールドには、ストアを更新するためにセッション内で使用された以前のIDも含まれます。
-
nonce: string
将来のリクエストを識別するランダムな文字列。これは応答ごとに変化し、確定コールでは最新のnonceが期待されます。
ネストされたスキーマ: StatusInfo
型:
objectフェッチ・チャレンジ情報リクエストのステータス。これには、ユーザー認証リクエストの処理に必要な情報が含まれています。
ソースの表示
-
code: integer
チャレンジ・ステータスを表すコード。
-
message: string
サーバーがリクエストを処理できない場合に生成されるエラー・メッセージ。
-
status(required): string
ユーザー・リクエストのフェッチ・チャレンジ情報のステータス。これは、authenticated/pending verification/pending identification/failed/error/missing registration/challenge blockedのいずれかになります。
ネストされたスキーマ: InitContext
型:
ソースの表示
object-
factorAttributes: array factorAttributes
-
factorKey: string
エンド・ユーザーによって選択されたファクタの名前。
-
failureURL: string
チャレンジが失敗した場合にフローをリダイレクトする必要があるリソース。ほとんどの場合、これはfinalizerChallengeのURLになります。
-
groupId: string
ユーザーに適用可能なグループIDまたはアプリケーション名。
-
requestParams: array requestParams
-
successURL: string
チャレンジが成功した場合にフローをリダイレクトする必要があるリソース。
-
timeToLiveInSec: integer
ブロッキング・コールの開始時のブロッキング・コールの期間。期間の経過後、ブロッキング・コールが無効になります。
-
uniqueUserId: string
外部システムのユーザーの不変ID。これが存在する場合は、userId + groupIdの組合せよりも優先されます。
-
userId: string
ユーザーの識別子さらにgroupIdで修飾できます。
ネストされたスキーマ: challengeInfo
型:
arrayユーザーは様々な方法でチャレンジできます。オブジェクトには、ユーザーが認証可能なすべての方法が含まれています。リクエストでユーザー情報を使用できない場合、サービス・プロバイダ構成に従ってデフォルトのチャレンジ・メカニズムが提供されます。
ソースの表示
- Array of: object FactorChallengeInfo
使用可能なファクタを使用してユーザー・リクエストを処理するために必要な情報がオブジェクトに存在します。
ネストされたスキーマ: factorAttributes
型:
ソースの表示
array- Array of: object UserFactorAttribute
エントリの配列として表されるマップ。
ネストされたスキーマ: UserFactorAttribute
型:
objectエントリの配列として表されるマップ。
ソースの表示
-
userAttributeName(required): string
このユーザーのファクタ固有属性の名前。
-
userAttributeValue(required): string
このユーザーのファクタ固有属性の値。
ネストされたスキーマ: KeyValPair_2
型:
object一般的に使用できるキーと値のペア。
ソースの表示
-
key(required): string
関連値のフェッチに使用できるキー。
-
value(required): object value
指定する必要があるコンテンツ。
ネストされたスキーマ: value
型:
object指定する必要があるコンテンツ。
ネストされたスキーマ: FactorChallengeInfo
型:
object使用可能なファクタを使用してユーザー・リクエストを処理するために必要な情報がオブジェクトに存在します。
ソースの表示
-
displayOrder(required): integer
複数のファクタが存在する場合のユーザーへの表示順序
-
factorContext(required): object FactorContext
ユーザー認証リクエストを処理するためにファクタに必要なコンテキスト。
-
factorKey: string
登録に使用できるファクタのキー。
-
factorName(required): string
ファクタの名前
-
factorUrl(required): string
ファクタのURL
ネストされたスキーマ: FactorContext
型:
objectユーザー認証リクエストを処理するためにファクタに必要なコンテキスト。
ソースの表示
-
challengeAttrMap(required): array challengeAttrMap
-
isSelected(required): boolean
これがユーザー・プリファレンスに従って選択されたオプションかどうか。
-
prompts(required): array prompts
表示プロンプトには、ユーザーがさらに選択できる1つ以上のプロンプトが含まれます。
-
promptselectmessage: string
チャレンジ・プロンプトの1つを選択するためのメッセージ。
ネストされたスキーマ: prompts
型:
array表示プロンプトには、ユーザーがさらに選択できる1つ以上のプロンプトが含まれます。
ソースの表示
- Array of: object Prompt
エンド・ユーザーに表示できるプロンプト
ネストされたスキーマ: FactorAttribute
型:
objectエントリの配列として表されるマップ。
ソースの表示
-
factorAttributeName: string
ファクタ固有属性の名前。
-
factorAttributeValue: string
ファクタ固有属性の値。
-
isValidated: boolean
指定された属性が検証されているかどうか。一部の属性には検証が不要なため、このフィールドはオプションです。
-
isVerified: boolean
指定された属性が検証されているかどうか。一部の属性には検証が不要なため、このフィールドはオプションです。
ネストされたスキーマ: Prompt
型:
objectエンド・ユーザーに表示できるプロンプト
ソースの表示
-
challengeText: string
チャレンジ画面に表示されるメッセージ。
-
name: string
デバイスまたはプロンプトのわかりやすい名前。
-
prompt: string
マスクされたデバイス情報。
-
prompttext: string
選択のためにエンド・ユーザーに表示できるメッセージ文字列。
-
requiredInputType: string
none/text/radio/checkbox/textarea/waitingpageの列挙
-
selected: boolean
この特定のプロンプトが選択されているかどうか。
-
validated: boolean
プロンプトが検証されているかどうか
-
verified: boolean
プロンプトが検証されているかどうか
ネストされたスキーマ: KeyValPair
型:
object一般的に使用できるキーと値のペア。
ソースの表示
-
key(required): string
関連値のフェッチに使用できるキー。
-
value(required): object value
関連付けられた値。
ネストされたスキーマ: value
型:
object関連付けられた値。
400レスポンス
パラメータの検証のために更新認証に失敗した場合。
例
次の例は、UAS内の認証ステータスを更新するサンプルのリクエストとレスポンスを示します。
JSON形式でUAS内の認証ステータスを更新するcURLコマンド
curl --location --request PUT '<OAAService>/oaa/runtime/authn/v1' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <Base64Encoded(<username>:<password>)>' \
--data '{
"correlationId": "7e704d80-01d1-4916-8736-7aaf8241373c",
"challengeop": "Init",
"challengedata": {
"userId": "user7",
"groupId": "Default",
"factorKey": "ChallengeOMATOTP",
"successURL": "https://www.oracle.com/index.html",
"failureURL": "https://www.google.com"
}
}'
JSON形式のサンプル・レスポンス
{
"apiResponse": {
"code": "OAA-40001",
"status": "Pending",
"message": "Authentication Required"
},
"correlationId": "7e704d80-01d1-4916-8736-7aaf8241373c",
"nonce": "0a8e3757-fe72-4ceb-8a39-35269bfcf4bb",
"challengecontext": {
"factorKey": "ChallengeOMATOTP",
"successURL": "https://www.oracle.com/index.html",
"failureURL": "https://www.google.com",
"timeToLiveInSec": 300,
"factorAttributes": [
{
"userAttributeName": "PIN_EXPIRY",
"userAttributeValue": "300000"
},
{
"userAttributeName": "retrycount",
"userAttributeValue": "7"
},
{
"userAttributeName": "defaultimplementation",
"userAttributeValue": "true"
},
{
"userAttributeName": "factorGenerateEndpoint",
"userAttributeValue": "generateChallenge/v1"
},
{
"userAttributeName": "otpexpirytimeMs",
"userAttributeValue": "300000"
},
{
"userAttributeName": "available",
"userAttributeValue": "true"
},
{
"userAttributeName": "pinOnExpiryIncFailureCounter",
"userAttributeValue": "false"
},
{
"userAttributeName": "requiredInfo",
"userAttributeValue": "omatotpsecretkey"
},
{
"userAttributeName": "type",
"userAttributeValue": "totp"
},
{
"userAttributeName": "htmlLabel",
"userAttributeValue": "OMA TOTP Code"
},
{
"userAttributeName": "registration.otpEncode",
"userAttributeValue": "true"
},
{
"userAttributeName": "isverified",
"userAttributeValue": "true"
},
{
"userAttributeName": "otpLength",
"userAttributeValue": "6"
},
{
"userAttributeName": "windowSize",
"userAttributeValue": "3"
},
{
"userAttributeName": "keyExpiryTimeMinutes",
"userAttributeValue": "60"
},
{
"userAttributeName": "OTP_TIME_STEP_SIZE",
"userAttributeValue": "30"
},
{
"userAttributeName": "encyptKey",
"userAttributeValue": "true"
},
{
"userAttributeName": "runtime.ui.field1.placeholder",
"userAttributeValue": "Enter OTP"
},
{
"userAttributeName": "runtime.ui.verifyButtonMessage",
"userAttributeValue": "Verify"
},
{
"userAttributeName": "runtime.ui.field1.label",
"userAttributeValue": "Enter OTP from the registered phone %SelectedPrompt%"
},
{
"userAttributeName": "maxRegistrations",
"userAttributeValue": "5"
},
{
"userAttributeName": "availableforpreferencesui",
"userAttributeValue": "true"
},
{
"userAttributeName": "registration.otpexpirytimeMs",
"userAttributeValue": "300000"
},
{
"userAttributeName": "isenabled",
"userAttributeValue": "true"
},
{
"userAttributeName": "image",
"userAttributeValue": "images/totp.png"
},
{
"userAttributeName": "adddesc",
"userAttributeValue": "Add security key for Oracle Mobile Authenticator"
},
{
"userAttributeName": "oua.enabled",
"userAttributeValue": "true"
},
{
"userAttributeName": "ignoreresync",
"userAttributeValue": "true"
},
{
"userAttributeName": "challengeText",
"userAttributeValue": "Enter OTP from device {1}"
},
{
"userAttributeName": "addkey",
"userAttributeValue": "Key"
},
{
"userAttributeName": "maskregexp",
"userAttributeValue": "\\w{1,2}(\\w+)\\w{2}"
},
{
"userAttributeName": "otp",
"userAttributeValue": "false"
},
{
"userAttributeName": "otpTimeSkew",
"userAttributeValue": "5"
},
{
"userAttributeName": "processor",
"userAttributeValue": "oracle.security.uas.core.uio.processor.challenge.SMSUMSOTPChallengeProcessor"
},
{
"userAttributeName": "maskchar",
"userAttributeValue": "*"
},
{
"userAttributeName": "registration.url",
"userAttributeValue": "otpauth://totp/:%ACCOUNT_NAME%?secret=%SECRET_KEY%&issuer=Oracle"
},
{
"userAttributeName": "runtime.ui.incorrectOtpMessage",
"userAttributeValue": "Entered OTP is incorrect."
},
{
"userAttributeName": "registration.showSecretKeyText",
"userAttributeValue": "true"
},
{
"userAttributeName": "maxAttempts",
"userAttributeValue": "0"
},
{
"userAttributeName": "registration.otpChars",
"userAttributeValue": "1234567890"
},
{
"userAttributeName": "promptselectmessage",
"userAttributeValue": "Please select one of following channels"
},
{
"userAttributeName": "availableforpreferencesuireg",
"userAttributeValue": "true"
},
{
"userAttributeName": "authClientType",
"userAttributeValue": "totp"
},
{
"userAttributeName": "runtime.ui.clickHereMessage",
"userAttributeValue": "Click Here"
},
{
"userAttributeName": "ispreferred",
"userAttributeValue": "false"
},
{
"userAttributeName": "keyExpiryEnabled",
"userAttributeValue": "false"
},
{
"userAttributeName": "scheme",
"userAttributeValue": "https"
},
{
"userAttributeName": "oua.trustLevel",
"userAttributeValue": "2"
},
{
"userAttributeName": "displayedInfo",
"userAttributeValue": "omatotpsecretkey"
},
{
"userAttributeName": "HMAC",
"userAttributeValue": "HmacSHA1"
},
{
"userAttributeName": "runtime.ui.cancelMessage",
"userAttributeValue": "Return to All Options"
},
{
"userAttributeName": "OTP_PAIR_SEP",
"userAttributeValue": "="
},
{
"userAttributeName": "runtime.ui.formSubmitActionPath",
"userAttributeValue": "/oaa-totp-factor/login/v1"
},
{
"userAttributeName": "factorEndpoint",
"userAttributeValue": "oaa-totp-factor/runtime"
},
{
"userAttributeName": "enabled",
"userAttributeValue": "true"
},
{
"userAttributeName": "challengeCounterExpiryTime",
"userAttributeValue": "1800000"
},
{
"userAttributeName": "registration.useUserIdOnDevice",
"userAttributeValue": "false"
},
{
"userAttributeName": "default",
"userAttributeValue": "true"
},
{
"userAttributeName": "registration.showQrcode",
"userAttributeValue": "true"
},
{
"userAttributeName": "runtime.ui.fields",
"userAttributeValue": "field1"
},
{
"userAttributeName": "addkeyhint",
"userAttributeValue": "Enter an alphanumeric key"
},
{
"userAttributeName": "runtime.ui.factorHeading",
"userAttributeValue": "TOTP"
},
{
"userAttributeName": "runtime.ui.field1.fieldType",
"userAttributeValue": "inputText"
},
{
"userAttributeName": "promptmessage",
"userAttributeValue": "Enter OTP from registered phone"
},
{
"userAttributeName": "registration.otpLength",
"userAttributeValue": "6"
},
{
"userAttributeName": "factorBrowserEndpoint",
"userAttributeValue": "oaa-totp-factor/pages/login.jsp"
},
{
"userAttributeName": "addheader",
"userAttributeValue": "Add Oracle Mobile Authenticator"
},
{
"userAttributeName": "loginpage",
"userAttributeValue": "rui/index.html"
},
{
"userAttributeName": "ldapalias.omatotpsecretkey",
"userAttributeValue": "street"
},
{
"userAttributeName": "passive",
"userAttributeValue": "true"
},
{
"userAttributeName": "factorValidateEndpoint",
"userAttributeValue": "validateChallenge/v1"
},
{
"userAttributeName": "runtime.ui.field1.fieldId",
"userAttributeValue": "otpValue"
},
{
"userAttributeName": "oua.admin.allowed",
"userAttributeValue": "true"
},
{
"userAttributeName": "runtime.ui.signInAsDifferentUserMessage",
"userAttributeValue": "Not %USERID%?"
},
{
"userAttributeName": "runtime.ui.field1.required",
"userAttributeValue": "true"
},
{
"userAttributeName": "autogeneratefields",
"userAttributeValue": "omatotpsecretkey"
},
{
"userAttributeName": "htmlInputType",
"userAttributeValue": "text"
},
{
"userAttributeName": "OTP_SEP",
"userAttributeValue": ";"
},
{
"userAttributeName": "registration.oma.config",
"userAttributeValue": "oraclemobileauthenticator://settings?ServiceName::=%deviceName%&ServiceType::=SharedSecret&SharedSecretAuthServerType::=HTTPBasicAuthentication&LoginURL::=%totpRegistrationEndpoint%/oaa/rui/totpPreferences/v1"
},
{
"userAttributeName": "generatedChallenge",
"userAttributeValue": "052565"
},
{
"userAttributeName": "validationToken",
"userAttributeValue": "user717292455860307e704d80-01d1-4916-8736-7aaf8241373c"
}
],
"userId": "user7",
"groupId": "Default"
}
}
XML形式でUAS内の認証ステータスを更新するcURLコマンド
curl --location --request PUT '<OAAService>/oaa/runtime/authn/v1' \
--header 'Content-Type: application/xml' \
--header 'Accept: application/xml' \
--header 'Authorization: Basic <Base64Encoded(<username>:<password>)>' \
--data '<?xml version="1.0" encoding="UTF-8" ?>
<UpdateAuthnRequest>
<correlationId>7e704d80-01d1-4916-8736-7aaf8241373c</correlationId>
<challengeop>Init</challengeop>
<challengedata>
<userId>user7</userId>
<groupId>Default</groupId>
<factorKey>ChallengeOMATOTP</factorKey>
<successURL>https://www.oracle.com/index.html</successURL>
<failureURL>https://www.google.com</failureURL>
</challengedata>
</UpdateAuthnRequest>'XML形式のサンプル・レスポンス
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<UpdateAuthnResponse>
<correlationId>7e704d80-01d1-4916-8736-7aaf8241373c</correlationId>
<apiResponse>
<code>OAA-40001</code>
<status>Pending</status>
<message>Authentication Required</message>
</apiResponse>
<nonce>d707e720-62d6-4961-90ae-c348b81eb69d</nonce>
<challengecontext>
<factorKey>ChallengeOMATOTP</factorKey>
<successURL>https://www.oracle.com/index.html</successURL>
<failureURL>https://www.google.com</failureURL>
<timeToLiveInSec>300</timeToLiveInSec>
<factorAttributes>
<userAttributeName>PIN_EXPIRY</userAttributeName>
<userAttributeValue>300000</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>retrycount</userAttributeName>
<userAttributeValue>7</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>defaultimplementation</userAttributeName>
<userAttributeValue>true</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>factorGenerateEndpoint</userAttributeName>
<userAttributeValue>generateChallenge/v1</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>otpexpirytimeMs</userAttributeName>
<userAttributeValue>300000</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>available</userAttributeName>
<userAttributeValue>true</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>pinOnExpiryIncFailureCounter</userAttributeName>
<userAttributeValue>false</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>requiredInfo</userAttributeName>
<userAttributeValue>omatotpsecretkey</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>type</userAttributeName>
<userAttributeValue>totp</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>htmlLabel</userAttributeName>
<userAttributeValue>OMA TOTP Code</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>registration.otpEncode</userAttributeName>
<userAttributeValue>true</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>isverified</userAttributeName>
<userAttributeValue>true</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>otpLength</userAttributeName>
<userAttributeValue>6</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>windowSize</userAttributeName>
<userAttributeValue>3</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>keyExpiryTimeMinutes</userAttributeName>
<userAttributeValue>60</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>OTP_TIME_STEP_SIZE</userAttributeName>
<userAttributeValue>30</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>encyptKey</userAttributeName>
<userAttributeValue>true</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>runtime.ui.field1.placeholder</userAttributeName>
<userAttributeValue>Enter OTP</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>runtime.ui.verifyButtonMessage</userAttributeName>
<userAttributeValue>Verify</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>runtime.ui.field1.label</userAttributeName>
<userAttributeValue>Enter OTP from the registered phone %SelectedPrompt%</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>maxRegistrations</userAttributeName>
<userAttributeValue>5</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>availableforpreferencesui</userAttributeName>
<userAttributeValue>true</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>registration.otpexpirytimeMs</userAttributeName>
<userAttributeValue>300000</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>isenabled</userAttributeName>
<userAttributeValue>true</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>image</userAttributeName>
<userAttributeValue>images/totp.png</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>adddesc</userAttributeName>
<userAttributeValue>Add security key for Oracle Mobile Authenticator</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>oua.enabled</userAttributeName>
<userAttributeValue>true</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>ignoreresync</userAttributeName>
<userAttributeValue>true</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>challengeText</userAttributeName>
<userAttributeValue>Enter OTP from device {1}</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>addkey</userAttributeName>
<userAttributeValue>Key</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>maskregexp</userAttributeName>
<userAttributeValue>\w{1,2}(\w+)\w{2}</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>otp</userAttributeName>
<userAttributeValue>false</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>otpTimeSkew</userAttributeName>
<userAttributeValue>5</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>processor</userAttributeName>
<userAttributeValue>oracle.security.uas.core.uio.processor.challenge.SMSUMSOTPChallengeProcessor</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>maskchar</userAttributeName>
<userAttributeValue>*</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>registration.url</userAttributeName>
<userAttributeValue>otpauth://totp/:%ACCOUNT_NAME%?secret=%SECRET_KEY%&issuer=Oracle</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>runtime.ui.incorrectOtpMessage</userAttributeName>
<userAttributeValue>Entered OTP is incorrect.</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>registration.showSecretKeyText</userAttributeName>
<userAttributeValue>true</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>maxAttempts</userAttributeName>
<userAttributeValue>0</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>registration.otpChars</userAttributeName>
<userAttributeValue>1234567890</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>promptselectmessage</userAttributeName>
<userAttributeValue>Please select one of following channels</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>availableforpreferencesuireg</userAttributeName>
<userAttributeValue>true</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>authClientType</userAttributeName>
<userAttributeValue>totp</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>runtime.ui.clickHereMessage</userAttributeName>
<userAttributeValue>Click Here</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>ispreferred</userAttributeName>
<userAttributeValue>false</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>keyExpiryEnabled</userAttributeName>
<userAttributeValue>false</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>scheme</userAttributeName>
<userAttributeValue>https</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>oua.trustLevel</userAttributeName>
<userAttributeValue>2</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>displayedInfo</userAttributeName>
<userAttributeValue>omatotpsecretkey</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>HMAC</userAttributeName>
<userAttributeValue>HmacSHA1</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>runtime.ui.cancelMessage</userAttributeName>
<userAttributeValue>Return to All Options</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>OTP_PAIR_SEP</userAttributeName>
<userAttributeValue>=</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>runtime.ui.formSubmitActionPath</userAttributeName>
<userAttributeValue>/oaa-totp-factor/login/v1</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>factorEndpoint</userAttributeName>
<userAttributeValue>oaa-totp-factor/runtime</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>enabled</userAttributeName>
<userAttributeValue>true</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>challengeCounterExpiryTime</userAttributeName>
<userAttributeValue>1800000</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>registration.useUserIdOnDevice</userAttributeName>
<userAttributeValue>false</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>default</userAttributeName>
<userAttributeValue>true</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>registration.showQrcode</userAttributeName>
<userAttributeValue>true</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>runtime.ui.fields</userAttributeName>
<userAttributeValue>field1</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>addkeyhint</userAttributeName>
<userAttributeValue>Enter an alphanumeric key</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>runtime.ui.factorHeading</userAttributeName>
<userAttributeValue>TOTP</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>runtime.ui.field1.fieldType</userAttributeName>
<userAttributeValue>inputText</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>promptmessage</userAttributeName>
<userAttributeValue>Enter OTP from registered phone</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>registration.otpLength</userAttributeName>
<userAttributeValue>6</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>factorBrowserEndpoint</userAttributeName>
<userAttributeValue>oaa-totp-factor/pages/login.jsp</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>addheader</userAttributeName>
<userAttributeValue>Add Oracle Mobile Authenticator</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>loginpage</userAttributeName>
<userAttributeValue>rui/index.html</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>ldapalias.omatotpsecretkey</userAttributeName>
<userAttributeValue>street</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>passive</userAttributeName>
<userAttributeValue>true</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>factorValidateEndpoint</userAttributeName>
<userAttributeValue>validateChallenge/v1</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>runtime.ui.field1.fieldId</userAttributeName>
<userAttributeValue>otpValue</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>oua.admin.allowed</userAttributeName>
<userAttributeValue>true</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>runtime.ui.signInAsDifferentUserMessage</userAttributeName>
<userAttributeValue>Not %USERID%?</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>runtime.ui.field1.required</userAttributeName>
<userAttributeValue>true</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>autogeneratefields</userAttributeName>
<userAttributeValue>omatotpsecretkey</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>htmlInputType</userAttributeName>
<userAttributeValue>text</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>OTP_SEP</userAttributeName>
<userAttributeValue>;</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>registration.oma.config</userAttributeName>
<userAttributeValue>oraclemobileauthenticator://settings?ServiceName::=%deviceName%&ServiceType::=SharedSecret&SharedSecretAuthServerType::=HTTPBasicAuthentication&LoginURL::=%totpRegistrationEndpoint%/oaa/rui/totpPreferences/v1</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>generatedChallenge</userAttributeName>
<userAttributeValue>289042</userAttributeValue>
</factorAttributes>
<factorAttributes>
<userAttributeName>validationToken</userAttributeName>
<userAttributeValue>user717296343082387e704d80-01d1-4916-8736-7aaf8241373c</userAttributeValue>
</factorAttributes>
<userId>user7</userId>
<groupId>Default</groupId>
</challengecontext>
</UpdateAuthnResponse>