PostmanでのOracle Advanced Authentication REST APIの使用
イントロダクション
このチュートリアルでは、Postmanを使用したOracle Advanced AuthenticationへのREST APIコール(通常はREST APIテストに使用されるソフトウェア)について説明します。
目的
Oracle Advanced Authentication REST APIは、Oracle Advanced Authenticationを構成および管理できるように、Oracle Advanced AuthenticationとRESTクライアントを統合する方法を提供します。REST APIエンドポイントの完全なリストは、OAA管理APIを参照してください。
このチュートリアルでは、Oracle Advanced Authentication Postmanコレクションをダウンロードしてインポートし、最も一般的なPostmanリクエストの一部をテストする方法を学習します。
前提条件
このチュートリアルを完了するには、次のものが必要です。
- 実行中のOracle Advanced Authenticationインストール
- モバイル・デバイスにインストールされたOracle Mobile Authenticator
- RESTアーキテクチャ・スタイルの理解
- ネイティブPostmanクライアントv8.0.6以降がインストールされている
- jsonファイルOracle_Advanced_Authentication_REST_API.postman_collection.json、Oracle_Advanced_Authentication_Example_Environment.postman_environment.json
Oracle Advanced Authentication Postman Collectionのインストール
Postmanでの環境パラメータの設定
-
Postmanを開き、「ファイル」→「インポート」を選択します。
-
「インポート」ダイアログ・ボックスの「ファイル」タブで、「ファイルのアップロード」を選択します。Oracle_Advanced_Authentication_Example_Environment.postman_environment.jsonを選択し、「Open」をクリックします。
-
左側のメニューで、
をクリックします。
-
表示された環境リストで、「Oracle Advanced Authentication Example Environment」の右側にある省略記号をクリックし、「Duplicate」をクリックします。
-
元の環境の上に表示されるOracle Advanced Authentication Example Environment Copyで、省略記号をクリックして
Oracle Advanced Authentication Environment for REST APIs
に名前を変更します。 -
「初期値」および「現在の値」に次の値を入力して、新しい環境の環境変数を更新します。完了したら、タブで「保存」、「X」の順にクリックして閉じます。
- oaa-admin: Oracle Advanced Authenticationのホスト名および管理ポート(
https://oaa.example.com
など) - oaa-policy: Oracle Advanced Authenticationのホスト名およびポリシー・ポート(
https://oaa.example.com
など) - oaa-runtime: Oracle Advanced Authenticationのホスト名およびランタイム・ポート(
https://oaa.example.com
など) - RELEASENAME: Oracle Advanced Authentication設定に割り当てられた
RELEASENAME
(oaainstall
など)。これは、OAAのインストール時にcommon.deployment.name
に渡された値です。 - oaappolicyapikey: Oracle Advanced Authentication設定の
oaapolicyapikey
(a5764d4ef6b71129f38a2d8ddc88b6060653d3c8
など)。これは、OAAのインストール時にinstall.global.policyapikey
に渡された値です。 - oaaapikey: Oracle Advanced Authentication設定の
oaaapikey
(a5764d4ef6b71129f38a2d8ddc88b6060653d3c8
など)。これは、OAAのインストール時にinstall.global.uasapikey
に渡された値です。
ノート:
oaa-admin
、oaa-policy
およびoaa-runtime
(spui)のURLがわからない場合は、OAA Kubernetesクラスタで次を実行します:kubectl get pods -n <namespace> | grep 'oaa-admin\|oaa-policy\|spui'
次に、各ポッドに対して次を実行してURLを取得します:
kubectl exec -it <pod> -n <namespace> -- cat serviceurl.txt
環境は次のようになります。
ノート:前述の例のURL値は、NodePortを使用したOAAインストールを想定しているため、各ポッドのポート番号がURLに定義されています。OAAインストールでイングレスを使用する場合は、すべてのケースでイングレスURLを使用します。
- oaa-admin: Oracle Advanced Authenticationのホスト名および管理ポート(
-
「環境」ドロップダウン・リストをクリックし、リストから更新された環境を選択します。
Postmanコレクションのインポート
-
Oracle Advanced Authentication REST API Postmanコレクションをインポートするには、Postmanメイン・ページで「ファイル」→「インポート」を選択します。
-
「インポート」ダイアログ・ボックスの「ファイル」タブで、「ファイルのアップロード」を選択します。ファイルOracle_Advanced_Authentication_REST_API.postman_collection.jsonを選択し、「Open」、「Import」の順にクリックします。
左側のメニューで「コレクション」をクリックします。コレクションは次のように表示されます。
REST APIのテスト
この項では、Oracle Advanced AuthenticationのPostmanコレクション内のいくつかのリクエストを実行します。
ノート: SSL証明書の検証エラーを回避するには、「ファイル」 > 「設定」に移動し、「一般」タブで「SSL証明書の検証」を「オフ」に設定します。
API統合エージェントの作成
この項では、API統合エージェントを作成します。
-
「コレクション」タブで、「Oracle Advanced Authentication REST API」→「システム・エンティティを定義するREST API」→「agent/v1」にナビゲートします。
-
「新規API統合エージェントの作成」を選択します。このリクエストは、
/oaa-policy/agent/v1
エンドポイントへのPOSTリクエストを行い、本文の情報に基づいてAPIAgent
というAPI統合エージェントを作成します: -
「送信」をクリックします。
-
レスポンスで、
Status: 200 OK
が表示され、作成された統合エージェントに関する詳細がレスポンス本文に表示されることを確認します。次の項で使用するため、返されたagentgid
をノートにとります。
保証レベルの作成
この項では、作成した統合エージェントの保証レベルを作成します。
-
「コレクション」タブで、「Oracle Advanced Authentication REST API」→「システム・エンティティを定義するREST API」→「AssuranceLevel/v1」にナビゲートします。
-
「保証レベルの定義」を選択します。このリクエストは、
/oaa-policy/assuranceLevel/v1
エンドポイントへのPOSTリクエストを行い、AssuranceLevel1
という統合エージェントの保証レベルを作成します。本体で、前に返された値と一致するようにagentid
の値を編集します。 -
「送信」をクリックします。
-
レスポンスで、
Status: 200 OK
が表示され、作成された保証レベルの詳細がレスポンス本文に表示されることを確認します。
グループの作成
この項では、ファクタのアクション・グループとIPアドレスのグループを作成します。これらのグループは、以前に作成した統合エージェントおよび保証レベルのポリシーおよびルールに後で割り当てられます。
-
「コレクション」タブで、「Oracle Advanced Authentication REST API」→「システム・エンティティを定義するREST API」→「group/v1」にナビゲートします。
-
「新規ファクタ・グループの作成」を選択します。このリクエストは、
/oaa-policy/group/v1
エンドポイントへのPOSTリクエストを行い、FactorRuleGrp1
というエージェントのグループを作成します。本文内で、前に返された値と一致するようにagentid
の値を編集します。この例では、グループはChallengeEmail
とChallengeOMATOTP
の2つの要素を設定します。 -
「送信」をクリックします。
-
レスポンスで、
Status: 200 OK
が表示され、作成されたグループの詳細がレスポンス本文に表示されることを確認します。後でこのグループをポリシーに割り当てるために使用するため、groupid
をノートにとります。 -
group/v1の下の現在のコレクションで、「IPタイプの新規グループの作成」を選択します。このリクエストは、
/oaa-policy/group/v1
エンドポイントへのPOSTリクエストを行い、SecureIP
という統合エージェントのグループを作成します。本文内で、前に返された値と一致するようにagentgid
の値を編集します。この例では、値セクションでIPの198.51.100.1
を198.51.100.3
に設定します。 -
「送信」をクリックします。
-
レスポンスで、
Status: 200 OK
が表示され、作成されたグループの詳細がレスポンス本文に表示されることを確認します。後でこのグループをポリシーに割り当てるために使用するため、groupid
をノートにとります。
ポリシーの作成
この項では、前に作成した保証レベルと統合エージェントのポリシーを作成します。
-
「コレクション」タブで、「Oracle Advanced Authentication REST API」→「システム・エンティティを定義するREST API」→「ポリシー/v1」にナビゲートします。
-
「新規ポリシーの作成」を選択します。このリクエストは、
/oaa-policy/policy/v1
エンドポイントへのPOSTリクエストを行い、以前に作成した統合エージェントおよびPolicy1
という保証レベルのポリシーを作成します。本体で、前に返された値と一致するようにagentgid
の値を編集します。 -
「送信」をクリックします。
-
レスポンスで、
Status: 200 OK
が表示され、作成されたポリシーに関する詳細がレスポンス本文に表示されることを確認します。後でこのポリシーにルールを割り当てるため、policygid
をノートにとります。
ポリシー・ルールの作成
この項では、ポリシーのポリシー・ルールを作成します。
-
「コレクション」タブで、Oracle Advanced Authentication REST API > REST API for Define System Entities -> policy/v1 -> {policygid} -> rule > {ruleid}に移動します。
-
「ポリシーの新規ルールの定義」を選択します。このリクエストは、
/oaa-policy/policy/v1/:policygid/rule
エンドポイントへのPOSTリクエストを作成します。「パラメータ」タブで、前に返されたポリシーの値と一致するようにpolicygid
の値を編集します。本文のconditionMap
で、expression
およびvalues
の下の値を編集し、前に作成したSecureIP
グループのgroupId
に設定します。results
で、前に作成したFactorGroup1
グループのgroupId
と一致するようにaction
の値を設定します。前述のルールでは、認証リクエストを行うエンド・ユーザーのIPアドレスが
SecureIP
グループで定義されているIPアドレスである場合、認証のファクタをFactorGroup1
で定義されているものに設定します。 -
「送信」をクリックします。
-
レスポンスで、
Status: 200 OK
が表示され、作成されたルールの詳細がレスポンス本文に表示されることを確認します。後で参照できるように、rulegid
をノートにとります。
ユーザー・プリファレンスの作成
この項では、ユーザーuser1
を作成し、そのファクタ・プリファレンスを登録します。
-
「コレクション」タブで、「Oracle Advanced Authentication REST API」→「ユーザー・プリファレンスのREST API」→「プリファレンス/v1」にナビゲートします。
-
「User Preferences are create/registered」を選択します。このリクエストは、
/oaa/runtime/preferences/v1
エンドポイントへのPOSTリクエストを作成します。ボディで、作成するuserId
および対応するgroupId
を入力します。次の例では、user1
がDefault
グループに作成され、電子メールおよびOMATOTP係数のユーザーを登録します。電子メール・アドレスの値を有効な電子メール・アドレスに変更します。OMATOTPのsecret_key
を、Oracle Mobile Authenticatorアプリケーションで使用する任意の値に変更します。 -
「送信」をクリックします。
-
レスポンスで、
Status: 200 OK
が表示され、ユーザーとそのプリファレンスが正常に作成され、登録されていることを確認します。
ユーザーへのチャレンジ、チャレンジの初期化および検証
この項では、「ポリシー・ルールの作成」で前に作成したルールに対してuser1
に対するユーザー・チャレンジをテストします。ルールが検証されると、そのユーザーに登録されたファクタが返されます。認証するファクタを選択すると、初期化リクエストが送信され、そのファクターのOTPの入力を求めるプロンプトが表示されます。有効なファクタOTPが入力され、検証されます。
この項を開始する前に、「ユーザー・プリファレンスの作成」に入力されたsecret_key
値にKey
を設定して、Oracle Mobile AuthenticatorにOracleアカウントが追加されていることを確認します。「Oracle Mobile Authenticatorでのアカウントの構成」を参照してください
-
「コレクション」タブで、「Oracle Advanced Authentication REST API」→「ユーザー・チャレンジ用のREST API」→「チャレンジ・ユーザー」、「チャレンジの初期化」、「チャレンジの検証」にナビゲートします。
-
「チャレンジ・ユーザー」を選択します。このリクエストは、
/oaa/runtime/authn/v1
エンドポイントへのPOSTリクエストを作成します。「本文」に、user1
のuserId
および対応するgroupId
を入力します。次の例では、統合エージェントAPIの作成で前に作成したAPI統合エージェントに対してuser1
に対してチャレンジが行われます。このAPIエージェントのclientSecret
およびclientId
の値を入力します。ipAddr
に、前に作成したSecureIP
グループで定義されたIPを入力します。 -
「送信」をクリックします。
-
レスポンスで、
Status: 200 OK
が表示されていることを確認します。Authentication Required
を示すOAA-40001
メッセージが返されます。user1
(電子メールおよびOMATOTP)に登録されたファクタは、correlationId
とともに返されます。後続のリクエストで使用するcorrelationId
をノートにとります。 -
「チャレンジ・ユーザー」、「チャレンジの初期化」、「チャレンジの検証」で、「チャレンジの初期化」を選択します。これにより、
/oaa/runtime/authn/v1
エンドポイントへのPUTリクエストが行われます。「本文」に、前のレスポンスで返されたcorrelationId
を入力します。この例では、OMATOTP係数を使用するように選択します。 -
「送信」をクリックします。
-
レスポンスで、
Status: 200 OK
が表示されていることを確認します。OMATOTPのAuthentication Required
を示すOAA-40001
メッセージが返されます。関連するcorrelationId
のnonce
値が返されます。次のリクエストを使用するには、nonce
値をノートにとります: -
「チャレンジ・ユーザー」、「チャレンジの初期化」、「チャレンジの検証」で、「チャレンジの検証」を選択します。これにより、
/oaa/runtime/authn/v1
エンドポイントへのPUTリクエストが行われます。「本文」にcorrelationId
を入力し、前のレスポンスで返されたnonce
を入力します。ChallengeAnswer
に、Oracle Mobile Authenticatorからの有効なOTPを入力します。 -
「送信」をクリックします。
-
レスポンスで、
Status: 200 OK
が表示されていることを確認します。OTPの検証に成功すると、ユーザーがAuthenticated
であることを示すOAA-40004
メッセージが返されます。
さらに学ぶ
- Oracle Advanced認証
- OAA管理API
- OAAランタイムAPI
- マルチファクタ認証のためのOracle RADIUSエージェントとOracle Advanced Authenticationの使用
- Oracle Access ManagementとOracle Advanced認証の統合
フィードバック
このチュートリアルに関するフィードバックは、idm_user_assistance_ww_grp@oracle.comまでお問い合わせください。
謝辞
- 作成者 -ロシア・ホジソン
その他の学習リソース
docs.oracle.com/learnの他のラボを調べるか、Oracle Learning YouTubeチャネルでさらに無料の学習コンテンツにアクセスします。さらに、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerにします。
製品ドキュメントは、Oracleヘルプ・センターを参照してください。
Use Oracle Advanced Authentication REST APIs with Postman
F53376-01
February 2022
Copyright © 2022, Oracle and/or its affiliates.