外部テレフォニープロバイダー用のOkta Workflowを構成する

このタスクでは、選択したテレフォニープロバイダーを通じてエンドユーザーにワンタイムパスコード(OTP)を送信するフローをOkta Workflowsに作成する方法について説明します。フローは次のようになります。

開始する前に

  • テレフォニーのドキュメントを参照して、規制要件、通話料金詐、技術的考慮事項を理解します。
  • Okta Workflowsをセットアップします。
  • 選択したテレフォニープロバイダーをセットアップします。次の情報をメモします。
    • アカウントSID
    • Authトークン
    • 電話番号
    • POSTリクエストを送信するためのSMSメッセージURL。たとえば、Twilio URLは次のとおりです。

      https://api.twilio.com/2010-04-01/Accounts/{yourtwilioaccountid}/Messages.json

      この例では、{yourtwilioaccountid}がご利用のTwilioアカウントIDです。

フローを作成する

  1. Admin Consoleワークフロー(Workflow) > Workflowsコンソール(Workflows console)に進みます。
  2. Workflowsコンソールフロー(Flows) > 新規フロー(New Flow)をクリックします。

APIエンドポイントイベントカードを作成する

  1. イベントを追加(Add Event)をクリックします。APIエンドポイント用のOktaアプリを検索して選択します。
  2. APIエンドポイント設定(API Endpoint settings)ウィンドウでセキュリティレベル(Security level)クライアントトークンでセキュリティを確保(Secure with client token)に設定します。
  3. クライアントトークン(Client token)フィールドは空白のままにして、閉じる(Close)をクリックします。
  4. 本文(Body)セクションで、以下のフィールドを作成します。フィールドのドロップダウンをクリックしてフィールドのタイプを変更します。
フィールド タイプ

data

オブジェクト

> userProfile

オブジェクト

> > userId

テキスト

> messageProfile

オブジェクト

> > メッセージテンプレート(msgTemplate)

テキスト

> > phoneNumber

テキスト

> > otp

テキスト

Compose関数カードを作成する

  1. 関数を追加(Add function)をクリックします。Compose関数カードを検索して選択します。
  2. このカードに、次のテキストを入力します:To=phoneNumber&From={yourphonenumber}&Body=msgTemplate
  3. phoneNumbermsgTemplateフィールドをマッピングするには、これらのフィールドをAPIエンドポイント(API Endpoint)イベントカードからドラッグアンドドロップします。
  4. {yourphonenumber}を国コードを含む独自の電話番号に置き換えます。これは、自分に割り当てられたテレフォニープロバイダーの番号です。

Construct関数カードを作成する

  1. 関数を追加(Add function)をクリックします。Object Construct関数カードを検索して追加します。
  2. このカードに、承諾(Accept)入力テキストフィールドとコンテンツタイプ(Content-Type)入力テキストフィールドを追加します。
  3. 以下のフィールドに値を入力します。
    • 承諾(Accept)application/json
    • コンテンツ型(Content-Type)application/x-www-form-urlencoded

If Error関数カードを作成する

  1. 関数を追加(Add function)をクリックします。If Error関数カードを検索して選択します。
  2. If Error関数カードがTryモードになっていることを確認します。

このカード内に次のカードを作成します。

APIコネクターカードを作成する

  1. 追加(+)メニュー内で、雲アイコンをクリックします。APIコネクター(API Connector)カードを検索して選択します。
  2. Postタイプを選択します。
  3. Postカードに、テレフォニープロバイダーのSMSメッセージURLを入力します。
  4. 出力(Output)フィールドをConstruct関数カードからリクエスト(Request) > ヘッダー(Headers)フィールドにドラッグアンドドロップします。
  5. 出力(Output)フィールドをCompose関数カードからリクエスト(Request) > 本文(Body)フィールドにドラッグアンドドロップします。
  6. リクエスト(Request) > 本文(Body)sidテキストフィールドを作成します。

成功用のCompose関数カードを作成する

  1. Postカードの横の追加(+)メニュー内で、計算機アイコンをクリックします。Compose関数カードを検索して選択します。
  2. このカードに次のコードを入力します。

    {
     "commands":[
       {
         "type":"com.okta.telephony.action",
         "value":[
           {
             "status":"SUCCESSFUL",
             "provider":"<YOURPROVIDER>",
             "transactionId":"sid"
           }
         ]
       }
     ]
    }
  3. <YOURPROVIDER>Twilioなどのテレフォニープロバイダーの名前に置き換えます。
  4. sidフィールドをPostカードからドラッグアンドドロップします。
  5. 出力(Output)フィールドのドロップダウンメニューをクリックし、名前をSuccessに変更します。
  6. If Errorカードの出力を表示(View outputs)をクリックします。
  7. Responseという出力オブジェクトフィールドを作成します。
  8. レスポンス(Response)フィールドの下で、成功(Success)フィールドをComposeカードからドラッグアンドドロップします。

エラーフィールドを追加する

  1. If Errorカードで、TryモードからIf Errorモードに切り替えます。
  2. エラー(Error)出力で、以下のフィールドを作成します。フィールドのドロップダウンをクリックしてフィールドのタイプを変更します。
フィールド タイプ

body

オブジェクト

> code

テキスト

> status

テキスト

> message

テキスト

エラー用のCompose関数カードを作成する

  1. エラー(Error)出力フィールドの横の追加(+)メニュー内で、計算機アイコンをクリックします。Compose関数カードを検索して選択します。
  2. このカードに次のコードを入力します。

    {
      "error":{
        "errorSummary":"Failed to deliver SMS to phoneNumber",
        "errorCauses":[
          {
            "errorSummary":"Couldn't deliver OTP",
            "reason":"message"
          }
        ]
      }
    }
  3. phoneNumberフィールドをAPIエンドポイント(API Endpoint)イベントカードからドラッグアンドドロップします。
  4. messageフィールドをエラー(Error)出力からドラッグアンドドロップします。
  5. 出力(Output)フィールドのドロップダウンメニューをクリックし、名前をErrorに変更します。
  6. If Errorカードのレスポンス(Response)セクションの下にエラー(Error)フィールドをドラッグアンドドロップします。

If Errorモードのカードは次のようになります。

これでIf Error関数カードが完成しました。

Return Rawカードを作成する

  1. フローで、関数を追加(Add function)をクリックします。Return Raw関数カードを検索して選択します。
  2. 出力(Output)フィールドをConstructカードからヘッダー(Headers)フィールドにドラッグアンドドロップします。
  3. If Error(Response)カードのレスポンス(Response)(If Error)フィールドを本文(Body)フィールドにドラッグアンドドロップします。
  4. フローを保存してオンにします。

テレフォニーインラインフックの情報をコピーする

  1. APIエンドポイント(APPI Endpoint)(API Endpoint)イベントカードに移動し、[</>]アイコンをクリックしてAPIエンドポイント設定を開きます。
  2. 設定ダイアログから、呼び出しURL(Invoke URL)エイリアス(Alias)クライアントトークン(Client Token)の情報をコピーします。この情報は、次の手順でテレフォニーインラインフックを作成するときに必要になります。

次の手順

外部のテレフォニーサービスプロバイダーに接続する