ユーザーに使用可能なチャレンジのリストを返す。
post
/authn/v1
ユーザーのチャレンジに関する情報を返します。チャレンジ・オプションが1つのみの場合は、チャレンジを自動的に開始できます。
リクエスト
この操作にはリクエスト・パラメータはありません。
サポートされているメディア・タイプ
- application/xml
- application/json
ルート・スキーマ: schema
型:
object
AuthnRequestには、チャレンジをフェッチして認証を初期化するためのユーザーおよびコンテキスト情報が含まれています
ソースの表示
-
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
ユーザーが属するグループ。
-
locale: string
ユーザー・プリファレンスで優先ロケールを上書きするユーザーの現在のロケール。
-
uniqueUserId: string
外部システムのユーザーの不変ID。これが存在する場合は、userId + groupIdの組合せよりも優先されます。
-
userId(required): string
UASシステム内のユーザーの一意の識別子。
ネストされたスキーマ: 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
型:
object
AuthnRequestには、チャレンジをフェッチして認証を初期化するためのユーザーおよびコンテキスト情報が含まれています
ソースの表示
-
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
ユーザーが属するグループ。
-
locale: string
ユーザー・プリファレンスで優先ロケールを上書きするユーザーの現在のロケール。
-
uniqueUserId: string
外部システムのユーザーの不変ID。これが存在する場合は、userId + groupIdの組合せよりも優先されます。
-
userId(required): string
UASシステム内のユーザーの一意の識別子。
ネストされたスキーマ: 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: string
このユーザーのファクタ固有属性の名前。
-
userAttributeValue: 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": "user7", "groups": [ "Default" ] }, "clientInfo": { "ctype": "api", "clientSecret": "892ab316-b5ed-4ded-aed3-21465de2069b", "clientId": "bedd5d50-ca9d-406f-abc0-2a4c8fb07f2c" }, "context": { "assuranceLevel": "AssuranceLevel7", "customContext": { "ipAddr": "198.51.100.2" } }, "timeToLiveInSec": 300 }'
JSON形式のサンプル・レスポンス
{ "apiResponse": { "code": "OAA-40001", "status": "Pending", "message": "Challenge Required" }, "correlationId": "6e1e7a91-ef6b-404b-bb06-daecfa4d22ac", "challengeselectiontext": "Choose a method to login.", "challengeInfo": [ { "displayOrder": 1, "factorName": "Email Challenge", "factorKey": "ChallengeEmail", "factorContext": { "prompts": [ { "prompttext": "Enter OTP sent to kr*************************@******.com", "prompt": "kr*************************@******.com", "challengeText": "Enter OTP sent to kr*************************@******.com.", "requiredInputType": "text", "selected": false, "name": "Device1", "verified": true, "validated": true } ], "isSelected": false, "challengeAttrMap": [ { "factorAttributeName": "retrycount", "factorAttributeValue": "10" }, { "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": "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": "600000" }, { "factorAttributeName": "factorEndpoint", "factorAttributeValue": "oaa-email-factor/runtime" }, { "factorAttributeName": "default", "factorAttributeValue": "true" }, { "factorAttributeName": "generateMode", "factorAttributeValue": "generatesendandreturn" }, { "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": "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": "c846af87-c349-41a4-9eee-41ed68a1a2f8" }, { "key": "digital", "value": "049a01d6-678a-4eda-a12f-a848e24a8d6d" } ] }
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>user7</userId> <groups>Default</groups> </userInfo> <clientInfo> <ctype>api</ctype> <clientSecret>892ab316-b5ed-4ded-aed3-21465de2069b</clientSecret> <clientId>bedd5d50-ca9d-406f-abc0-2a4c8fb07f2c</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>6842ad29-a802-46ef-98c3-242353927174</correlationId> <apiResponse> <code>OAA-40001</code> <status>Pending</status> <message>Challenge Required</message> </apiResponse> <challengeselectiontext>Choose a method to login.</challengeselectiontext> <challengeInfo> <displayOrder>1</displayOrder> <factorName>Email Challenge</factorName> <factorKey>ChallengeEmail</factorKey> <factorContext> <prompts> <prompttext>Enter OTP sent to kr*************************@******.com</prompttext> <prompt>kr*************************@******.com</prompt> <challengeText>Enter OTP sent to kr*************************@******.com.</challengeText> <requiredInputType>text</requiredInputType> <selected>false</selected> <name>Device1</name> <verified>true</verified> <validated>true</validated> </prompts> <isSelected>false</isSelected> <challengeAttrMap> <factorAttributeName>retrycount</factorAttributeName> <factorAttributeValue>10</factorAttributeValue> </challengeAttrMap> <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>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>600000</factorAttributeValue> </challengeAttrMap> <challengeAttrMap> <factorAttributeName>factorEndpoint</factorAttributeName> <factorAttributeValue>oaa-email-factor/runtime</factorAttributeValue> </challengeAttrMap> <challengeAttrMap> <factorAttributeName>default</factorAttributeName> <factorAttributeValue>true</factorAttributeValue> </challengeAttrMap> <challengeAttrMap> <factorAttributeName>generateMode</factorAttributeName> <factorAttributeValue>generatesendandreturn</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>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">cfd7fd44-dd8f-42c4-b5dc-097c19bcd7f6</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">d0f8cddb-1956-4724-a32c-db47b63c521c</value> </cookies> </AuthnResponse>