Autify で Salesforce を動かしてみよう～ vol.1 ログインへの道

# はじめに
- Autify で Salesforce を動かしてみよう、と思い記事にしてみます。
- TIPSなども記載できれば、と考えています。

#### ご了承ください
- まだまだ勉強中の部分もあります。間違っている箇所もあるかもしれません。
- Salesforce、Autify は、この時点のバージョン(2021年1月頃) での内容になります。今後、仕様変更が変わることによって、内容の通りにならない可能性もあります。ご了承ください。
 - また、URLなども変更になっている可能性もあります。

# 前回まで
- Autify で Salesforce を動かしてみよう～ vol.0
（ https://qiita.com/xx_mana/items/107eb97dcc0da26daeb8 ）
 - Autify、Salesforce とは
 - それぞれの環境の準備

# 超ミニマムなシナリオ作成から実行（お試し）
まずは Autify で動作できるか、を確認するための最小のシナリオを考えましょう。


- ログインページに移動する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/b3a2ef4d-fea1-dbe6-098d-3581cbe361b1.png)

- ユーザIDを入力する。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/4c88f602-995b-7cab-bc9a-2f46c25393c9.png)

- パスワードを入力する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/7cb0ca6a-7344-6dd5-b0e0-b05ebce041bd.png)

- ログインボタンをクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/0f2a2794-a799-e85c-8414-b02412effe27.png)

- 情報のダイアログが表示【された】ので、右上の×をクリックする。
 - 一度閉じたら次から表示されない画面・ダイアログがあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/9113c786-6508-cd60-3e5b-f64a20b993da.png)

- タブの「テスト001」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/c303fee7-6bb1-4fa2-aa5c-bc2965146ba2.png)

- 「新規」ボタンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/cd0e0d38-1f7a-1387-ed35-662f158feb70.png)

- 「テキスト」に値を入力して、「保存」ボタンをクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/dbf0e960-3a3f-81da-dfca-200312686f6a.png)

この流れをシナリオにしてみましょう。

# レコーディング
Autify でレコーディングを行いました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/c6844210-c382-2e10-3866-7efa168d6075.png)



# Autify で実行
実行、ぽちっとな！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/b0621831-a23b-bb8c-183a-78084b315522.png)

し、失敗しました😳

左が「レコーディング時の画面」、右が「Autifyの実行結果」です。
表示された画面の想定が異なっていることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/1c775a8d-d44e-4792-0aa6-7ef5a123e31d.png)

これは、想定と異なり、
Salesforce の仕組みの「多要素認証画面」が表示されていることがわかります。

# 分析する
どういうことでしょうか、分析します。

**ユーザはどのように操作するのでしょうか**

1. ユーザ名、パスワードを入力し、ログインボタンをクリックする。
1. 利用したことないブラウザからのアクセスのため、ID検証の画面が表示される。①
1. ユーザに認証コードが書かれたメールが送信される。②
1. ユーザはメールの認証コードをID検証画面に入力する。③

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/41c415c5-717b-d4d7-e188-86a98e7b2c3b.png)

**Autify上ではどう動くのでしょうか**

1.～3. までは同じですね。

1. ユーザ名、パスワードを入力し、ログインボタンをクリックする。
1. 利用したことないブラウザからのアクセスのため、ID検証の画面が表示される。①
1. ユーザに認証コードが書かれたメールが送信される。②

うーん、認証コードはどうやって入れればよいのでしょうか。
そもそもID検証の画面について、レコーディングしていませんね～。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/4cb12f37-4bdb-e162-d7e5-23a5d3f86d0c.png)

いきなり、困りましたね😭


# 考え方
考え方として、大きく２つありそうです。

① ID検証画面を乗り越えるようなレコーディングをする
② ID検証画面を表示させないようにする

#### ① ID検証画面を乗り越えるようなレコーディングをする

- ID検証画面をレコーディングできたとします。
 - 今後テストシナリオを作成する際、必ずID検証画面を通過させるレコーディングさせる必要がありそう。
 - シナリオとして煩雑になりそう…。
- ID検証画面が表示されない可能性もあります。

これらを考えると、この方法はあまりよくないかもしれません。

#### ② ID検証画面を表示させないようにする

そもそも、ID検証画面を表示させない、というのはどうでしょうか。

- ID検証画面を表示させないことで、①の問題は解消されます。

どちらかと言うと②のほうが良いような気がします。

この方法で、考えてみますが、
ID検証画面を表示させないようにすることができるのでしょうか🤔



# 解決方法
ID検証画面を表示させない方法は、SFDC に「組織が信頼するソースの IP アドレス範囲」にAutifyからのIPを含めるとよさそうです。

- ログイン時に毎回確認コードを求める画面が表示される
 - https://help.salesforce.com/articleView?id=000339699&type=1&mode=1
- 組織の信頼済み IP 範囲の設定
 - https://help.salesforce.com/articleView?id=sf.security_networkaccess.htm&type=5

では、Autify の IPアドレスはどうなっているでしょうか。

- Autify のIPアドレスを固定することはできますか？
 - https://autify.zendesk.com/hc/ja/articles/900001161983-Autify-%E3%81%AEIP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E5%9B%BA%E5%AE%9A%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B-

できるようですが「オプション契約」が必要そうです。

私の使用環境は、この契約はしていません…

さて、どうしたもんでしょうか、と調べていると、プロファイル単位で IPアドレス指定できることがわかりました。

- IDを検証、確認コードの入力を不要にする方法
 - http://salesforce-blog.com/no_check_id_code/

同じ設定をしてみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/34df58e2-128a-c707-3ba3-0284d3c371a3.png)

#### ⚠注意
- 今回 IPアドレスは 0.0.0.0 ～ 255.255.255.255 を指定しました。これによって、このプロファイルを所持するユーザのすべてのipアドレスで、ID検証が不要になりました。
 - 不要になった結果、ipアドレスでブロックしないので、セキュリティが緩くなった、と言えると思います。
- ご利用のSFDC組織自体にIP制限がかかっている可能性があります。その場合は、Autify の IPアドレス固定オプション契約で、IPの固定化をしたほうがセキュリティ上安全かと思います。


# Autify で実行・２回目
実行、ぽちっとな！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/f06e324f-e5a2-629d-35f0-b71a26accaf7.png)

通りました～
[要確認] が出てますね。

確認しましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/3e06f483-9631-06a1-6f10-8a138e965ead.png)

×ボタンに迷ったようです。
正しいので「成功とする」をクリックしておきましょう。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309141/466a3a13-87da-cbe4-0f36-e1d38e26d208.png)
データもできているようです。


これでようやく、SFDC上のアプリケーションをAutifyで検証できそうです。


# 変更履歴
- 2021/02/18 タイトルを変更しました。