ユーザーに使用可能なチャレンジのリストを返す。
post
/authn/v1
ユーザーの使用可能なチャレンジに関する情報を返します。チャレンジ・オプションが1つのみの場合は、チャレンジを自動的に開始できます。
APIコールは、正規のuniqueUserIdと、userIdおよびグループを使用して行う必要があります。ユーザー・レコードは、正規のuniqueUserIdを使用してフェッチされます。正規のuniqueUserIdを指定しない場合、userIdとグループの組合せを使用してユーザーを検索します。
APIコールは、正規のuniqueUserIdと、userIdおよびグループを使用して行う必要があります。ユーザー・レコードは、正規のuniqueUserIdを使用してフェッチされます。正規のuniqueUserIdを指定しない場合、userIdとグループの組合せを使用してユーザーを検索します。
リクエスト
この操作にはリクエスト・パラメータはありません。
サポートされているメディア・タイプ
- application/xml
- application/json
ルート・スキーマ: schema
型:
objectAuthnRequestには、チャレンジをフェッチして認証を初期化するためのユーザーおよびコンテキスト情報が含まれています
ソースの表示
-
clientInfo(required): object ClientInfo
コール元サービス・プロバイダに関する情報。
-
context(required): object UserContext
保証レベル、Cookie、ヘッダー、IPアドレス、リソースURL、ユーザー・エージェントなど、プリファレンスAPIをコール中にコール元が提供できる追加コンテキスト。
-
timeToLiveInSec: integer
ブロッキング・コールの開始時のブロッキング・コールの期間。期間の経過後、ブロッキング・コールが無効になります。デフォルトは300秒(5分)です
-
userInfo: object UserInfo
システム内のユーザーを識別するためにコール元によって指定されるユーザー情報。これはオプションのパラメータです。
ネストされたスキーマ: ClientInfo
型:
objectコール元サービス・プロバイダに関する情報。
ソースの表示
-
clientId(required): string
クライアントを一意に識別するクライアントの識別子
-
clientSecret(required): string
クライアントの検証に使用されるクライアント・シークレット
-
ctype: string
ユーザーとの対話に使用できるメカニズムに関する情報を提供します。
ネストされたスキーマ: UserContext
型:
object保証レベル、Cookie、ヘッダー、IPアドレス、リソースURL、ユーザー・エージェントなど、プリファレンスAPIをコール中にコール元が提供できる追加コンテキスト。
ソースの表示
-
assuranceLevel: object assuranceLevel
エンド・ユーザーがリクエストした保証レベル。このフィールドは、リクエストされたリソースに基づいてサービス・プロバイダによって移入される必要があります。
-
correlationId: string
チャレンジAPIによって指定されたトランザクションID (以前にコールされた場合)。
-
customContext(required): object CustomContext
ユーザー・リクエストに存在する追加のコンテキスト。
ネストされたスキーマ: UserInfo
型:
objectシステム内のユーザーを識別するためにコール元によって指定されるユーザー情報。これはオプションのパラメータです。
ソースの表示
-
groups(必須): array groups
ユーザーが属するグループ。OAAでは、配列内の1つのグループ要素のみがサポートされます。
-
locale: string
ユーザー・プリファレンスで優先ロケールを上書きするユーザーの現在のロケール。
-
uniqueUserId: string
外部システムのユーザーの正規のID。これが存在する場合は、userId + groupIdの組合せよりも優先されます。
-
userId(required): string
ユーザーのログインID。
ネストされたスキーマ: assuranceLevel
型:
objectエンド・ユーザーがリクエストした保証レベル。このフィールドは、リクエストされたリソースに基づいてサービス・プロバイダによって移入される必要があります。
ネストされたスキーマ: CustomContext
型:
objectユーザー・リクエストに存在する追加のコンテキスト。
ソースの表示
-
currentauthlevel: integer
チャレンジ・リクエストを行う時点でのユーザーの現在の認証レベル(存在する場合)。
-
headers: array headers
ユーザー・アクセス・リクエストに存在するヘッダー(存在する場合)。コンテンツはルール実行の入力として提供されます。
-
ipAddr(required): string
受信IPアドレス
-
ipforwarded: string
ユーザー環境からのx-Forwarded-for
-
ldapattributes: array ldapattributes
ユーザーのLDAP属性
-
ldapgroup: array ldapgroup
ユーザーのLDAPグループ
-
requestedauthlevel: integer
リクエストされたユーザーの認証レベル
-
resource: string
ユーザーによってリクエストされたリソース。
-
userAgent: string
ユーザー・リクエストからのユーザー・エージェント文字列
-
userCookies: array userCookies
ユーザー・アクセス・リクエストに存在するCookie。
ネストされたスキーマ: headers
型:
arrayユーザー・アクセス・リクエストに存在するヘッダー(存在する場合)。コンテンツはルール実行の入力として提供されます。
ソースの表示
- 配列: object KeyValPair
一般的に使用できるキーと値のペア。
ネストされたスキーマ: userCookies
型:
arrayユーザー・アクセス・リクエストに存在するCookie。
ソースの表示
- 配列: object KeyValPair
一般的に使用できるキーと値のペア。
ネストされたスキーマ: KeyValPair
型:
object一般的に使用できるキーと値のペア。
ソースの表示
-
key(required): string
関連値のフェッチに使用できるキー。
-
value(required): object value
関連付けられた値。
ネストされたスキーマ: value
型:
object関連付けられた値。
ルート・スキーマ: schema
型:
objectAuthnRequestには、チャレンジをフェッチして認証を初期化するためのユーザーおよびコンテキスト情報が含まれています
ソースの表示
-
clientInfo(required): object ClientInfo
コール元サービス・プロバイダに関する情報。
-
context(required): object UserContext
保証レベル、Cookie、ヘッダー、IPアドレス、リソースURL、ユーザー・エージェントなど、プリファレンスAPIをコール中にコール元が提供できる追加コンテキスト。
-
timeToLiveInSec: integer
ブロッキング・コールの開始時のブロッキング・コールの期間。期間の経過後、ブロッキング・コールが無効になります。デフォルトは300秒(5分)です
-
userInfo: object UserInfo
システム内のユーザーを識別するためにコール元によって指定されるユーザー情報。これはオプションのパラメータです。
ネストされたスキーマ: ClientInfo
型:
objectコール元サービス・プロバイダに関する情報。
ソースの表示
-
clientId(required): string
クライアントを一意に識別するクライアントの識別子
-
clientSecret(required): string
クライアントの検証に使用されるクライアント・シークレット
-
ctype: string
ユーザーとの対話に使用できるメカニズムに関する情報を提供します。
ネストされたスキーマ: UserContext
型:
object保証レベル、Cookie、ヘッダー、IPアドレス、リソースURL、ユーザー・エージェントなど、プリファレンスAPIをコール中にコール元が提供できる追加コンテキスト。
ソースの表示
-
assuranceLevel: object assuranceLevel
エンド・ユーザーがリクエストした保証レベル。このフィールドは、リクエストされたリソースに基づいてサービス・プロバイダによって移入される必要があります。
-
correlationId: string
チャレンジAPIによって指定されたトランザクションID (以前にコールされた場合)。
-
customContext(required): object CustomContext
ユーザー・リクエストに存在する追加のコンテキスト。
ネストされたスキーマ: UserInfo
型:
objectシステム内のユーザーを識別するためにコール元によって指定されるユーザー情報。これはオプションのパラメータです。
ソースの表示
-
groups(必須): array groups
ユーザーが属するグループ。OAAでは、配列内の1つのグループ要素のみがサポートされます。
-
locale: string
ユーザー・プリファレンスで優先ロケールを上書きするユーザーの現在のロケール。
-
uniqueUserId: string
外部システムのユーザーの正規のID。これが存在する場合は、userId + groupIdの組合せよりも優先されます。
-
userId(required): string
ユーザーのログインID。
ネストされたスキーマ: assuranceLevel
型:
objectエンド・ユーザーがリクエストした保証レベル。このフィールドは、リクエストされたリソースに基づいてサービス・プロバイダによって移入される必要があります。
ネストされたスキーマ: CustomContext
型:
objectユーザー・リクエストに存在する追加のコンテキスト。
ソースの表示
-
currentauthlevel: integer
チャレンジ・リクエストを行う時点でのユーザーの現在の認証レベル(存在する場合)。
-
headers: array headers
ユーザー・アクセス・リクエストに存在するヘッダー(存在する場合)。コンテンツはルール実行の入力として提供されます。
-
ipAddr(required): string
受信IPアドレス
-
ipforwarded: string
ユーザー環境からのx-Forwarded-for
-
ldapattributes: array ldapattributes
ユーザーのLDAP属性
-
ldapgroup: array ldapgroup
ユーザーのLDAPグループ
-
requestedauthlevel: integer
リクエストされたユーザーの認証レベル
-
resource: string
ユーザーによってリクエストされたリソース。
-
userAgent: string
ユーザー・リクエストからのユーザー・エージェント文字列
-
userCookies: array userCookies
ユーザー・アクセス・リクエストに存在するCookie。
ネストされたスキーマ: headers
型:
arrayユーザー・アクセス・リクエストに存在するヘッダー(存在する場合)。コンテンツはルール実行の入力として提供されます。
ソースの表示
- 配列: object KeyValPair
一般的に使用できるキーと値のペア。
ネストされたスキーマ: userCookies
型:
arrayユーザー・アクセス・リクエストに存在するCookie。
ソースの表示
- 配列: object KeyValPair
一般的に使用できるキーと値のペア。
ネストされたスキーマ: KeyValPair
型:
object一般的に使用できるキーと値のペア。
ソースの表示
-
key(required): string
関連値のフェッチに使用できるキー。
-
value(required): object value
関連付けられた値。
ネストされたスキーマ: value
型:
object関連付けられた値。
レスポンス
サポートされているメディア・タイプ
- application/xml
- application/json
200レスポンス
成功
ルート・スキーマ: AuthnResponse
型:
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が期待されます。
-
resource: string
アクセスがリクエストされたリソース。これは、ユーザーが認証され、これ以上のチャレンジが不要な場合にのみ返されます。
ネストされたスキーマ: 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レスポンス
パラメータの検証のために認証リクエストに失敗した場合。
例
次の例は、ユーザーが優先するチャレンジのリストを取得するサンプルのリクエストとレスポンスを示します。
JSON形式でチャレンジのリストを取得するcURLコマンド
curl --location --request POST '<OAAService>/oaa/runtime/authn/v1' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <Base64Encoded(<username>:<password>)>' \
--data '{"userInfo": {
"userId": "user1",
"groups": [
"financeapp"
],
"uniqueUserId": "user1",
},
"clientInfo": {
"ctype": "api",
"clientSecret": "9e32ba0a-fd8f-4e17-a5f3-283198bb758e",
"clientId": "0c13659b-c7f7-4200-8a12-f94f545eb756"
},
"context": {
"assuranceLevel": "AssuranceLevel7",
"customContext": {
"ipAddr": "198.51.100.2"
}
},
"timeToLiveInSec": 300
}'
JSON形式のサンプル・レスポンス
{
"apiResponse": {
"code": "OAA-40001",
"status": "Pending",
"message": "Authentication Required"
},
"correlationId": "bcd724de-1717-4faa-b7b8-221be5e183fd",
"challengeselectiontext": "Choose a method to login.",
"challengeInfo": [
{
"displayOrder": 1,
"factorName": "Oracle Mobile Authenticator",
"factorKey": "ChallengeOMATOTP",
"factorContext": {
"prompts": [
{
"prompttext": "Enter OTP from registered phone",
"prompt": "ON************LZ",
"challengeText": "Enter OTP from device Device1",
"requiredInputType": "text",
"selected": false,
"name": "Device1",
"verified": true,
"validated": true
}
],
"isSelected": false,
"challengeAttrMap": [
{
"factorAttributeName": "PIN_EXPIRY",
"factorAttributeValue": "300000"
},
{
"factorAttributeName": "retrycount",
"factorAttributeValue": "7"
},
{
"factorAttributeName": "defaultimplementation",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "factorGenerateEndpoint",
"factorAttributeValue": "generateChallenge/v1"
},
{
"factorAttributeName": "otpexpirytimeMs",
"factorAttributeValue": "300000"
},
{
"factorAttributeName": "available",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "pinOnExpiryIncFailureCounter",
"factorAttributeValue": "false"
},
{
"factorAttributeName": "requiredInfo",
"factorAttributeValue": "omatotpsecretkey"
},
{
"factorAttributeName": "type",
"factorAttributeValue": "totp"
},
{
"factorAttributeName": "htmlLabel",
"factorAttributeValue": "OMA TOTP Code"
},
{
"factorAttributeName": "registration.otpEncode",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "isverified",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "otpLength",
"factorAttributeValue": "6"
},
{
"factorAttributeName": "windowSize",
"factorAttributeValue": "3"
},
{
"factorAttributeName": "keyExpiryTimeMinutes",
"factorAttributeValue": "60"
},
{
"factorAttributeName": "OTP_TIME_STEP_SIZE",
"factorAttributeValue": "30"
},
{
"factorAttributeName": "encyptKey",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "runtime.ui.field1.placeholder",
"factorAttributeValue": "Enter OTP"
},
{
"factorAttributeName": "runtime.ui.verifyButtonMessage",
"factorAttributeValue": "Verify"
},
{
"factorAttributeName": "runtime.ui.field1.label",
"factorAttributeValue": "Enter OTP from the registered phone %SelectedPrompt%"
},
{
"factorAttributeName": "maxRegistrations",
"factorAttributeValue": "5"
},
{
"factorAttributeName": "availableforpreferencesui",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "registration.otpexpirytimeMs",
"factorAttributeValue": "300000"
},
{
"factorAttributeName": "isenabled",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "image",
"factorAttributeValue": "js/libs/imcs/images/totp.png"
},
{
"factorAttributeName": "adddesc",
"factorAttributeValue": "Add security key for Oracle Mobile Authenticator"
},
{
"factorAttributeName": "oua.enabled",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "ignoreresync",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "challengeText",
"factorAttributeValue": "Enter OTP from device {1}"
},
{
"factorAttributeName": "addkey",
"factorAttributeValue": "Key"
},
{
"factorAttributeName": "maskregexp",
"factorAttributeValue": "\\w{1,2}(\\w+)\\w{2}"
},
{
"factorAttributeName": "otp",
"factorAttributeValue": "false"
},
{
"factorAttributeName": "otpTimeSkew",
"factorAttributeValue": "5"
},
{
"factorAttributeName": "processor",
"factorAttributeValue": "oracle.security.uas.core.uio.processor.challenge.SMSUMSOTPChallengeProcessor"
},
{
"factorAttributeName": "maskchar",
"factorAttributeValue": "*"
},
{
"factorAttributeName": "registration.url",
"factorAttributeValue": "otpauth://totp/:%ACCOUNT_NAME%?secret=%SECRET_KEY%&issuer=Oracle"
},
{
"factorAttributeName": "runtime.ui.incorrectOtpMessage",
"factorAttributeValue": "Entered OTP is incorrect."
},
{
"factorAttributeName": "registration.showSecretKeyText",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "maxAttempts",
"factorAttributeValue": "0"
},
{
"factorAttributeName": "registration.otpChars",
"factorAttributeValue": "1234567890"
},
{
"factorAttributeName": "promptselectmessage",
"factorAttributeValue": "Please select one of following channels"
},
{
"factorAttributeName": "availableforpreferencesuireg",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "authClientType",
"factorAttributeValue": "totp"
},
{
"factorAttributeName": "runtime.ui.clickHereMessage",
"factorAttributeValue": "Click Here"
},
{
"factorAttributeName": "ispreferred",
"factorAttributeValue": "false"
},
{
"factorAttributeName": "keyExpiryEnabled",
"factorAttributeValue": "false"
},
{
"factorAttributeName": "scheme",
"factorAttributeValue": "https"
},
{
"factorAttributeName": "oua.trustLevel",
"factorAttributeValue": "2"
},
{
"factorAttributeName": "displayedInfo",
"factorAttributeValue": "omatotpsecretkey"
},
{
"factorAttributeName": "HMAC",
"factorAttributeValue": "HmacSHA1"
},
{
"factorAttributeName": "runtime.ui.cancelMessage",
"factorAttributeValue": "Return to All Options"
},
{
"factorAttributeName": "OTP_PAIR_SEP",
"factorAttributeValue": "="
},
{
"factorAttributeName": "runtime.ui.formSubmitActionPath",
"factorAttributeValue": "/oaa-totp-factor/login/v1"
},
{
"factorAttributeName": "factorEndpoint",
"factorAttributeValue": "oaa-totp-factor/runtime"
},
{
"factorAttributeName": "enabled",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "challengeCounterExpiryTime",
"factorAttributeValue": "1800000"
},
{
"factorAttributeName": "registration.useUserIdOnDevice",
"factorAttributeValue": "false"
},
{
"factorAttributeName": "default",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "registration.showQrcode",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "runtime.ui.fields",
"factorAttributeValue": "field1"
},
{
"factorAttributeName": "addkeyhint",
"factorAttributeValue": "Enter an alphanumeric key"
},
{
"factorAttributeName": "runtime.ui.factorHeading",
"factorAttributeValue": "TOTP"
},
{
"factorAttributeName": "runtime.ui.field1.fieldType",
"factorAttributeValue": "inputText"
},
{
"factorAttributeName": "promptmessage",
"factorAttributeValue": "Enter OTP from registered phone"
},
{
"factorAttributeName": "registration.otpLength",
"factorAttributeValue": "6"
},
{
"factorAttributeName": "factorBrowserEndpoint",
"factorAttributeValue": "oaa-totp-factor/pages/login.jsp"
},
{
"factorAttributeName": "addheader",
"factorAttributeValue": "Add Oracle Mobile Authenticator"
},
{
"factorAttributeName": "loginpage",
"factorAttributeValue": "rui/index.html"
},
{
"factorAttributeName": "ldapalias.omatotpsecretkey",
"factorAttributeValue": "street"
},
{
"factorAttributeName": "passive",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "factorValidateEndpoint",
"factorAttributeValue": "validateChallenge/v1"
},
{
"factorAttributeName": "runtime.ui.field1.fieldId",
"factorAttributeValue": "otpValue"
},
{
"factorAttributeName": "oua.admin.allowed",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "runtime.ui.signInAsDifferentUserMessage",
"factorAttributeValue": "Not %USERID%?"
},
{
"factorAttributeName": "runtime.ui.field1.required",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "autogeneratefields",
"factorAttributeValue": "omatotpsecretkey"
},
{
"factorAttributeName": "htmlInputType",
"factorAttributeValue": "text"
},
{
"factorAttributeName": "OTP_SEP",
"factorAttributeValue": ";"
},
{
"factorAttributeName": "registration.oma.config",
"factorAttributeValue": "oraclemobileauthenticator://settings?ServiceName::=%deviceName%&ServiceType::=SharedSecret&SharedSecretAuthServerType::=HTTPBasicAuthentication&LoginURL::=%totpRegistrationEndpoint%/oaa/rui/totpPreferences/v1"
}
]
}
},
{
"displayOrder": 2,
"factorName": "Email Challenge",
"factorKey": "ChallengeEmail",
"factorContext": {
"prompts": [
{
"prompttext": "Enter OTP sent to us***@*******.com",
"prompt": "us***@*******.com",
"challengeText": "Enter OTP sent to us***@*******.com.",
"requiredInputType": "text",
"selected": false,
"name": "Device1",
"verified": true,
"validated": true
}
],
"isSelected": false,
"challengeAttrMap": [
{
"factorAttributeName": "factorGenerateEndpoint",
"factorAttributeValue": "generateChallenge/v1"
},
{
"factorAttributeName": "otpChars",
"factorAttributeValue": "1234567890"
},
{
"factorAttributeName": "msgIPTemplate",
"factorAttributeValue": "IP Address:"
},
{
"factorAttributeName": "otpexpirytimeMs",
"factorAttributeValue": "300000"
},
{
"factorAttributeName": "available",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "umsPolicyStr",
"factorAttributeValue": ""
},
{
"factorAttributeName": "runtime.ui.expiredCancelMessage",
"factorAttributeValue": "Retry authentication"
},
{
"factorAttributeName": "requiredInfo",
"factorAttributeValue": "email"
},
{
"factorAttributeName": "umsClientURL",
"factorAttributeValue": "http://100.94.12.121:7003/ucs/messaging/webservice"
},
{
"factorAttributeName": "type",
"factorAttributeValue": "email"
},
{
"factorAttributeName": "htmlLabel",
"factorAttributeValue": "Email Code"
},
{
"factorAttributeName": "isverified",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "otpLength",
"factorAttributeValue": "6"
},
{
"factorAttributeName": "customizedProvider",
"factorAttributeValue": ""
},
{
"factorAttributeName": "msgSubject",
"factorAttributeValue": "One Time Pin: OAA"
},
{
"factorAttributeName": "resendotponvalidationfailure",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "runtime.ui.field1.placeholder",
"factorAttributeValue": "Enter OTP"
},
{
"factorAttributeName": "fromName",
"factorAttributeValue": "OAA"
},
{
"factorAttributeName": "runtime.ui.verifyButtonMessage",
"factorAttributeValue": "Verify"
},
{
"factorAttributeName": "maxRegistrations",
"factorAttributeValue": "5"
},
{
"factorAttributeName": "runtime.ui.field1.label",
"factorAttributeValue": "Enter OTP from the registered email %SelectedPrompt%"
},
{
"factorAttributeName": "availableforpreferencesui",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "isenabled",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "image",
"factorAttributeValue": "js/libs/imcs/images/email.png"
},
{
"factorAttributeName": "adddesc",
"factorAttributeValue": "Add email factor"
},
{
"factorAttributeName": "ignoreresync",
"factorAttributeValue": "false"
},
{
"factorAttributeName": "challengeText",
"factorAttributeValue": "Enter OTP sent to {0}."
},
{
"factorAttributeName": "maskregexp",
"factorAttributeValue": ".{1,2}(.*)@([a-zA-Z_]+)\\.[a-zA-Z]{2,3}"
},
{
"factorAttributeName": "otp",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "processor",
"factorAttributeValue": "oracle.security.uas.core.uio.processor.challenge.EmailUMSOTPChallengeProcessor"
},
{
"factorAttributeName": "maskchar",
"factorAttributeValue": "*"
},
{
"factorAttributeName": "runtime.ui.incorrectOtpMessage",
"factorAttributeValue": "Entered OTP is incorrect."
},
{
"factorAttributeName": "ldapalias.email",
"factorAttributeValue": "mail"
},
{
"factorAttributeName": "addemail",
"factorAttributeValue": "Email"
},
{
"factorAttributeName": "availableforpreferencesuireg",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "promptselectmessage",
"factorAttributeValue": "Please select one of following addresses to receive OTP."
},
{
"factorAttributeName": "msgPinTemplate",
"factorAttributeValue": "Please use following one time pin to login to protected resource:"
},
{
"factorAttributeName": "authClientType",
"factorAttributeValue": "email"
},
{
"factorAttributeName": "runtime.ui.expiredOtpMessage",
"factorAttributeValue": "OTP expired."
},
{
"factorAttributeName": "addResourceURL",
"factorAttributeValue": "false"
},
{
"factorAttributeName": "ispreferred",
"factorAttributeValue": "false"
},
{
"factorAttributeName": "runtime.ui.clickHereMessage",
"factorAttributeValue": "Click Here"
},
{
"factorAttributeName": "msgTimeTemplate",
"factorAttributeValue": "Time of Access:"
},
{
"factorAttributeName": "msgType",
"factorAttributeValue": "text/plain; charset=UTF-8"
},
{
"factorAttributeName": "scheme",
"factorAttributeValue": "https"
},
{
"factorAttributeName": "oua.trustLevel",
"factorAttributeValue": "3"
},
{
"factorAttributeName": "msgResourceURLTemplate",
"factorAttributeValue": "Resource URL Access:"
},
{
"factorAttributeName": "displayedInfo",
"factorAttributeValue": "email"
},
{
"factorAttributeName": "runtime.ui.cancelMessage",
"factorAttributeValue": "Return to All Options"
},
{
"factorAttributeName": "senderSpecificProperties",
"factorAttributeValue": "otpexpirytimeMs,msgSubject,msgType,msgPinTemplate,msgTimeTemplate,msgIPTemplate,msgResourceURLTemplate,fromName,appName"
},
{
"factorAttributeName": "runtime.ui.formSubmitActionPath",
"factorAttributeValue": "/oaa-email-factor/login/v1/index.html"
},
{
"factorAttributeName": "enabled",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "challengeCounterExpiryTime",
"factorAttributeValue": "1800000"
},
{
"factorAttributeName": "factorEndpoint",
"factorAttributeValue": "oaa-email-factor/runtime"
},
{
"factorAttributeName": "default",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "runtime.ui.fields",
"factorAttributeValue": "field1"
},
{
"factorAttributeName": "fromAddress",
"factorAttributeValue": "oaa@oracle.com"
},
{
"factorAttributeName": "runtime.ui.factorHeading",
"factorAttributeValue": "Email"
},
{
"factorAttributeName": "runtime.ui.field1.fieldType",
"factorAttributeValue": "inputText"
},
{
"factorAttributeName": "promptmessage",
"factorAttributeValue": "Enter OTP sent to {0}"
},
{
"factorAttributeName": "addemailhint",
"factorAttributeValue": "Enter an email"
},
{
"factorAttributeName": "msgPinPlaceHolder",
"factorAttributeValue": "@@"
},
{
"factorAttributeName": "factorBrowserEndpoint",
"factorAttributeValue": "oaa-email-factor/pages/login.jsp"
},
{
"factorAttributeName": "appName",
"factorAttributeValue": "OAA"
},
{
"factorAttributeName": "addheader",
"factorAttributeValue": "Add Email"
},
{
"factorAttributeName": "loginpage",
"factorAttributeValue": "rui/index.html"
},
{
"factorAttributeName": "umsAvailable",
"factorAttributeValue": "false"
},
{
"factorAttributeName": "passive",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "factorValidateEndpoint",
"factorAttributeValue": "validateChallenge/v1"
},
{
"factorAttributeName": "umsClientPass",
"factorAttributeValue": "Welcome1"
},
{
"factorAttributeName": "runtime.ui.field1.fieldId",
"factorAttributeValue": "otpValue"
},
{
"factorAttributeName": "runtime.ui.signInAsDifferentUserMessage",
"factorAttributeValue": "Not %USERID%?"
},
{
"factorAttributeName": "runtime.ui.field1.required",
"factorAttributeValue": "true"
},
{
"factorAttributeName": "umsClientName",
"factorAttributeValue": "umsuser"
},
{
"factorAttributeName": "htmlInputType",
"factorAttributeValue": "text"
}
]
}
}
],
"cookies": [
{
"key": "secure",
"value": "8744bf30-65ee-41c5-8721-f642b718f75d"
},
{
"key": "digital",
"value": "e93e4dc0-5cdb-45a0-a950-1cef83bfed36"
}
]
}
XML形式でユーザー・プリファレンスを更新するcURLコマンド
curl --location --request POST '<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" ?><AuthnRequest>
<userInfo>
<userId>user1</userId>
<groups>financeapp</groups>
<uniqueUserId>user1</uniqueUserId>
</userInfo>
<clientInfo>
<ctype>api</ctype>
<clientSecret>9e32ba0a-fd8f-4e17-a5f3-283198bb758e</clientSecret>
<clientId>0c13659b-c7f7-4200-8a12-f94f545eb756</clientId>
</clientInfo>
<context>
<assuranceLevel>AssuranceLevel7</assuranceLevel>
<customContext>
<ipAddr>198.51.100.2</ipAddr>
</customContext>
</context>
<timeToLiveInSec>300</timeToLiveInSec>
</AuthnRequest>
'
XML形式のサンプル・レスポンス
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AuthnResponse>
<correlationId>570e3c32-c970-4789-ad5a-b9a23ea703d7</correlationId>
<apiResponse>
<code>OAA-40001</code>
<status>Pending</status>
<message>Authentication Required</message>
</apiResponse>
<challengeselectiontext>Choose a method to login.</challengeselectiontext>
<challengeInfo>
<displayOrder>1</displayOrder>
<factorName>Oracle Mobile Authenticator</factorName>
<factorKey>ChallengeOMATOTP</factorKey>
<factorContext>
<prompts>
<prompttext>Enter OTP from registered phone</prompttext>
<prompt>ON************LZ</prompt>
<challengeText>Enter OTP from device Device1</challengeText>
<requiredInputType>text</requiredInputType>
<selected>false</selected>
<name>Device1</name>
<verified>true</verified>
<validated>true</validated>
</prompts>
<isSelected>false</isSelected>
<challengeAttrMap>
<factorAttributeName>PIN_EXPIRY</factorAttributeName>
<factorAttributeValue>300000</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>retrycount</factorAttributeName>
<factorAttributeValue>7</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>defaultimplementation</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>factorGenerateEndpoint</factorAttributeName>
<factorAttributeValue>generateChallenge/v1</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>otpexpirytimeMs</factorAttributeName>
<factorAttributeValue>300000</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>available</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>pinOnExpiryIncFailureCounter</factorAttributeName>
<factorAttributeValue>false</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>requiredInfo</factorAttributeName>
<factorAttributeValue>omatotpsecretkey</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>type</factorAttributeName>
<factorAttributeValue>totp</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>htmlLabel</factorAttributeName>
<factorAttributeValue>OMA TOTP Code</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>registration.otpEncode</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>isverified</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>otpLength</factorAttributeName>
<factorAttributeValue>6</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>windowSize</factorAttributeName>
<factorAttributeValue>3</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>keyExpiryTimeMinutes</factorAttributeName>
<factorAttributeValue>60</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>OTP_TIME_STEP_SIZE</factorAttributeName>
<factorAttributeValue>30</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>encyptKey</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.field1.placeholder</factorAttributeName>
<factorAttributeValue>Enter OTP</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.verifyButtonMessage</factorAttributeName>
<factorAttributeValue>Verify</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.field1.label</factorAttributeName>
<factorAttributeValue>Enter OTP from the registered phone %SelectedPrompt%</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>maxRegistrations</factorAttributeName>
<factorAttributeValue>5</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>availableforpreferencesui</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>registration.otpexpirytimeMs</factorAttributeName>
<factorAttributeValue>300000</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>isenabled</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>image</factorAttributeName>
<factorAttributeValue>js/libs/imcs/images/totp.png</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>adddesc</factorAttributeName>
<factorAttributeValue>Add security key for Oracle Mobile Authenticator</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>oua.enabled</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>ignoreresync</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>challengeText</factorAttributeName>
<factorAttributeValue>Enter OTP from device {1}</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>addkey</factorAttributeName>
<factorAttributeValue>Key</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>maskregexp</factorAttributeName>
<factorAttributeValue>\w{1,2}(\w+)\w{2}</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>otp</factorAttributeName>
<factorAttributeValue>false</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>otpTimeSkew</factorAttributeName>
<factorAttributeValue>5</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>processor</factorAttributeName>
<factorAttributeValue>oracle.security.uas.core.uio.processor.challenge.SMSUMSOTPChallengeProcessor</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>maskchar</factorAttributeName>
<factorAttributeValue>*</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>registration.url</factorAttributeName>
<factorAttributeValue>otpauth://totp/:%ACCOUNT_NAME%?secret=%SECRET_KEY%&issuer=Oracle</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.incorrectOtpMessage</factorAttributeName>
<factorAttributeValue>Entered OTP is incorrect.</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>registration.showSecretKeyText</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>maxAttempts</factorAttributeName>
<factorAttributeValue>0</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>registration.otpChars</factorAttributeName>
<factorAttributeValue>1234567890</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>promptselectmessage</factorAttributeName>
<factorAttributeValue>Please select one of following channels</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>availableforpreferencesuireg</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>authClientType</factorAttributeName>
<factorAttributeValue>totp</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.clickHereMessage</factorAttributeName>
<factorAttributeValue>Click Here</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>ispreferred</factorAttributeName>
<factorAttributeValue>false</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>keyExpiryEnabled</factorAttributeName>
<factorAttributeValue>false</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>scheme</factorAttributeName>
<factorAttributeValue>https</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>oua.trustLevel</factorAttributeName>
<factorAttributeValue>2</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>displayedInfo</factorAttributeName>
<factorAttributeValue>omatotpsecretkey</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>HMAC</factorAttributeName>
<factorAttributeValue>HmacSHA1</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.cancelMessage</factorAttributeName>
<factorAttributeValue>Return to All Options</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>OTP_PAIR_SEP</factorAttributeName>
<factorAttributeValue>=</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.formSubmitActionPath</factorAttributeName>
<factorAttributeValue>/oaa-totp-factor/login/v1</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>factorEndpoint</factorAttributeName>
<factorAttributeValue>oaa-totp-factor/runtime</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>enabled</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>challengeCounterExpiryTime</factorAttributeName>
<factorAttributeValue>1800000</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>registration.useUserIdOnDevice</factorAttributeName>
<factorAttributeValue>false</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>default</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>registration.showQrcode</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.fields</factorAttributeName>
<factorAttributeValue>field1</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>addkeyhint</factorAttributeName>
<factorAttributeValue>Enter an alphanumeric key</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.factorHeading</factorAttributeName>
<factorAttributeValue>TOTP</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.field1.fieldType</factorAttributeName>
<factorAttributeValue>inputText</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>promptmessage</factorAttributeName>
<factorAttributeValue>Enter OTP from registered phone</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>registration.otpLength</factorAttributeName>
<factorAttributeValue>6</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>factorBrowserEndpoint</factorAttributeName>
<factorAttributeValue>oaa-totp-factor/pages/login.jsp</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>addheader</factorAttributeName>
<factorAttributeValue>Add Oracle Mobile Authenticator</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>loginpage</factorAttributeName>
<factorAttributeValue>rui/index.html</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>ldapalias.omatotpsecretkey</factorAttributeName>
<factorAttributeValue>street</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>passive</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>factorValidateEndpoint</factorAttributeName>
<factorAttributeValue>validateChallenge/v1</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.field1.fieldId</factorAttributeName>
<factorAttributeValue>otpValue</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>oua.admin.allowed</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.signInAsDifferentUserMessage</factorAttributeName>
<factorAttributeValue>Not %USERID%?</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.field1.required</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>autogeneratefields</factorAttributeName>
<factorAttributeValue>omatotpsecretkey</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>htmlInputType</factorAttributeName>
<factorAttributeValue>text</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>OTP_SEP</factorAttributeName>
<factorAttributeValue>;</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>registration.oma.config</factorAttributeName>
<factorAttributeValue>oraclemobileauthenticator://settings?ServiceName::=%deviceName%&ServiceType::=SharedSecret&SharedSecretAuthServerType::=HTTPBasicAuthentication&LoginURL::=%totpRegistrationEndpoint%/oaa/rui/totpPreferences/v1</factorAttributeValue>
</challengeAttrMap>
</factorContext>
</challengeInfo>
<challengeInfo>
<displayOrder>2</displayOrder>
<factorName>Email Challenge</factorName>
<factorKey>ChallengeEmail</factorKey>
<factorContext>
<prompts>
<prompttext>Enter OTP sent to us***@*******.com</prompttext>
<prompt>us***@*******.com</prompt>
<challengeText>Enter OTP sent to us***@*******.com.</challengeText>
<requiredInputType>text</requiredInputType>
<selected>false</selected>
<name>Device1</name>
<verified>true</verified>
<validated>true</validated>
</prompts>
<isSelected>false</isSelected>
<challengeAttrMap>
<factorAttributeName>factorGenerateEndpoint</factorAttributeName>
<factorAttributeValue>generateChallenge/v1</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>otpChars</factorAttributeName>
<factorAttributeValue>1234567890</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>msgIPTemplate</factorAttributeName>
<factorAttributeValue>IP Address:</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>otpexpirytimeMs</factorAttributeName>
<factorAttributeValue>300000</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>available</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>umsPolicyStr</factorAttributeName>
<factorAttributeValue></factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.expiredCancelMessage</factorAttributeName>
<factorAttributeValue>Retry authentication</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>requiredInfo</factorAttributeName>
<factorAttributeValue>email</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>umsClientURL</factorAttributeName>
<factorAttributeValue>http://100.94.12.121:7003/ucs/messaging/webservice</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>type</factorAttributeName>
<factorAttributeValue>email</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>htmlLabel</factorAttributeName>
<factorAttributeValue>Email Code</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>isverified</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>otpLength</factorAttributeName>
<factorAttributeValue>6</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>customizedProvider</factorAttributeName>
<factorAttributeValue></factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>msgSubject</factorAttributeName>
<factorAttributeValue>One Time Pin: OAA</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>resendotponvalidationfailure</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.field1.placeholder</factorAttributeName>
<factorAttributeValue>Enter OTP</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>fromName</factorAttributeName>
<factorAttributeValue>OAA</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.verifyButtonMessage</factorAttributeName>
<factorAttributeValue>Verify</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>maxRegistrations</factorAttributeName>
<factorAttributeValue>5</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.field1.label</factorAttributeName>
<factorAttributeValue>Enter OTP from the registered email %SelectedPrompt%</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>availableforpreferencesui</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>isenabled</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>image</factorAttributeName>
<factorAttributeValue>js/libs/imcs/images/email.png</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>adddesc</factorAttributeName>
<factorAttributeValue>Add email factor</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>ignoreresync</factorAttributeName>
<factorAttributeValue>false</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>challengeText</factorAttributeName>
<factorAttributeValue>Enter OTP sent to {0}.</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>maskregexp</factorAttributeName>
<factorAttributeValue>.{1,2}(.*)@([a-zA-Z_]+)\.[a-zA-Z]{2,3}</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>otp</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>processor</factorAttributeName>
<factorAttributeValue>oracle.security.uas.core.uio.processor.challenge.EmailUMSOTPChallengeProcessor</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>maskchar</factorAttributeName>
<factorAttributeValue>*</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.incorrectOtpMessage</factorAttributeName>
<factorAttributeValue>Entered OTP is incorrect.</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>ldapalias.email</factorAttributeName>
<factorAttributeValue>mail</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>addemail</factorAttributeName>
<factorAttributeValue>Email</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>availableforpreferencesuireg</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>promptselectmessage</factorAttributeName>
<factorAttributeValue>Please select one of following addresses to receive OTP.</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>msgPinTemplate</factorAttributeName>
<factorAttributeValue>Please use following one time pin to login to protected resource:</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>authClientType</factorAttributeName>
<factorAttributeValue>email</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.expiredOtpMessage</factorAttributeName>
<factorAttributeValue>OTP expired.</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>addResourceURL</factorAttributeName>
<factorAttributeValue>false</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>ispreferred</factorAttributeName>
<factorAttributeValue>false</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.clickHereMessage</factorAttributeName>
<factorAttributeValue>Click Here</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>msgTimeTemplate</factorAttributeName>
<factorAttributeValue>Time of Access:</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>msgType</factorAttributeName>
<factorAttributeValue>text/plain; charset=UTF-8</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>scheme</factorAttributeName>
<factorAttributeValue>https</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>oua.trustLevel</factorAttributeName>
<factorAttributeValue>3</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>msgResourceURLTemplate</factorAttributeName>
<factorAttributeValue>Resource URL Access:</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>displayedInfo</factorAttributeName>
<factorAttributeValue>email</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.cancelMessage</factorAttributeName>
<factorAttributeValue>Return to All Options</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>senderSpecificProperties</factorAttributeName>
<factorAttributeValue>otpexpirytimeMs,msgSubject,msgType,msgPinTemplate,msgTimeTemplate,msgIPTemplate,msgResourceURLTemplate,fromName,appName</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.formSubmitActionPath</factorAttributeName>
<factorAttributeValue>/oaa-email-factor/login/v1/index.html</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>enabled</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>challengeCounterExpiryTime</factorAttributeName>
<factorAttributeValue>1800000</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>factorEndpoint</factorAttributeName>
<factorAttributeValue>oaa-email-factor/runtime</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>default</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.fields</factorAttributeName>
<factorAttributeValue>field1</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>fromAddress</factorAttributeName>
<factorAttributeValue>oaa@oracle.com</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.factorHeading</factorAttributeName>
<factorAttributeValue>Email</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.field1.fieldType</factorAttributeName>
<factorAttributeValue>inputText</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>promptmessage</factorAttributeName>
<factorAttributeValue>Enter OTP sent to {0}</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>addemailhint</factorAttributeName>
<factorAttributeValue>Enter an email</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>msgPinPlaceHolder</factorAttributeName>
<factorAttributeValue>@@</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>factorBrowserEndpoint</factorAttributeName>
<factorAttributeValue>oaa-email-factor/pages/login.jsp</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>appName</factorAttributeName>
<factorAttributeValue>OAA</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>addheader</factorAttributeName>
<factorAttributeValue>Add Email</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>loginpage</factorAttributeName>
<factorAttributeValue>rui/index.html</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>umsAvailable</factorAttributeName>
<factorAttributeValue>false</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>passive</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>factorValidateEndpoint</factorAttributeName>
<factorAttributeValue>validateChallenge/v1</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>umsClientPass</factorAttributeName>
<factorAttributeValue>Welcome1</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.field1.fieldId</factorAttributeName>
<factorAttributeValue>otpValue</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.signInAsDifferentUserMessage</factorAttributeName>
<factorAttributeValue>Not %USERID%?</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>runtime.ui.field1.required</factorAttributeName>
<factorAttributeValue>true</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>umsClientName</factorAttributeName>
<factorAttributeValue>umsuser</factorAttributeValue>
</challengeAttrMap>
<challengeAttrMap>
<factorAttributeName>htmlInputType</factorAttributeName>
<factorAttributeValue>text</factorAttributeValue>
</challengeAttrMap>
</factorContext>
</challengeInfo>
<cookies>
<key>secure</key>
<value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">87164f8b-ea19-4a08-9d65-5e49f6fae37d</value>
</cookies>
<cookies>
<key>digital</key>
<value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">7482adee-ad66-474f-ae54-9dcb8e1d47c0</value>
</cookies>
</AuthnResponse>