Skip to main content
Guardian.swift を使用すると、Auth0 の Guardian 多要素認証サービスを独自の iOS アプリに統合し、アプリ自体を第二の認証要素として機能させることができます。これにより、ユーザーはアプリからシームレスな のメリットをすべて利用できます。詳しくは、Apple Push Notification Service の利用を開始する をご覧ください。

要件

  • Guardianを使用するには、iOS 10以降とSwift 4.1が必要です。
  • このSDKを使用するには、テナントのGuardianサービスに独自のプッシュ通知用資格情報を設定する必要があります。設定しないと、プッシュ通知を受信できません。詳しくは、MFAのプッシュ通知を設定するをご覧ください。

Guardian iOS SDK のインストール

CocoaPods

Guardian.swift は CocoaPods から利用できます。インストールするには、Podfile に次の行を追加してください。

Carthage

Cartfile に次の行を追加します。

Guardianのプッシュ通知を有効にする

  1. Auth0 Dashboard > セキュリティ > Multi-factor Auth に移動します。
  2. Push Notification をオンにします。
  3. プッシュ通知を設定する

使用状況

Guardian は SDK の中核となるコンポーネントです。SDK を利用するには、ライブラリをインポートします:
テナントのドメインを設定します。テナント用に設定している場合は、 を使用することもできます:

登録

登録とは、第2認証要素とAuth0アカウントとのリンクです。アカウントを登録すると、アイデンティティの確認に必要な第2認証要素の提示が必要になります。まだアプリでプッシュ通知を使用していない場合や、プッシュ通知にあまりなじみがない場合は、詳しくは Apple Push Notification Service Overview を参照してください。 登録には、テナントドメインに加えて、次の情報が必要です。 情報がそろったら、デバイスを登録できます。
成功すると、登録情報を取得できます。この情報はアプリケーション内に安全に保存する必要があります。この情報には、登録識別子と、登録情報の更新または削除に使用する、デバイスに関連付けられた Guardian API 用のトークンが含まれます。

署名鍵と検証用キー

Guardian.swift では、署名鍵を生成するための便利なクラスが提供されています。
このキーはメモリ内にしか存在しませんが、Data形式で取得し、たとえば暗号化されたSQLiteDBに安全に保存できます。
ただ、iOS Keychain に保存したいだけなら:
上記の例では、キーが作成され、指定したタグの下に自動的に保存されます。取得する場合は、そのタグを使用できます。
検証用のキーは、たとえば任意の SigningKey から取得できます。

ログインリクエストを許可する

登録が完了すると、ユーザーが MFA で本人確認を行う必要があるたびに、プッシュ通知を受け取ります。Guardian には、APNs から受信したデータを解析し、すぐに使える Notification インスタンスを返すメソッドがあります。
通知インスタンスを取得したら、allow メソッドを使って認証リクエストを簡単に許可できます。また、以前に取得した登録済みデバイスの情報もいくつか必要です。登録情報が複数ある場合は、通知と同じ id (enrollmentId プロパティ) を持つものを見つける必要があります。 情報がそろったら、device パラメータには、プロトコル AuthenticatedDevice を実装する任意のオブジェクトを指定できます:
ローカル識別子はデバイスのローカル ID で、登録時にはデフォルトで UIDevice.current.identifierForVendor が使われます。あとは次を呼び出すだけです:

ログインリクエストを拒否する

認証リクエストを拒否するには、代わりに reject を呼び出します。必要に応じて、拒否理由を送信することもできます。拒否理由は Guardian のログに表示されます。

登録解除

たとえば MFA を無効にする場合など、登録を削除するには、次のリクエストを送信します。

モバイル専用のOTP登録を設定する

または を使用して、OTPをMFA認証要素として有効にできます。このオプションではQR codeは不要で、ユーザーは手動で登録できます。 ユーザーに登録を案内するには、Auth0 Dashboard > User Management > Users に移動してユーザーを選択します。次に、Details タブを開き、Multi-Factor Authentication セクションから登録招待を送信します。

リソースを接続する

Auth0 Dashboard または Guardian SDK を使って、リソースを接続できます。
Auth0 Dashboard を使用する
  1. Auth0ログインプロンプトにアクセスし、表示されたコード、または別のソースから取得した同様のBase32エンコード済みキーをコピーします。次の手順で、このコードを認証アプリに入力します。
    ワンタイムコードが表示されたログインプロンプトの例
  2. コピーしたコードを、Guardian などの認証アプリに追加します。
SDKを使用する
  1. Guardianライブラリをインポートします。
  2. コードジェネレーターを作成します。
  3. 生成されたコードを取得します。

ワンタイムコードを入力

Auth0 のログインプロンプトで、前の手順で生成したワンタイムコードを入力します。
ワンタイムコードが表示されたログインプロンプトの例
Continueを選択すると、アプリケーションがお使いのユーザーの認証要素として追加されたことを示すメッセージが表示されます。

アプリでログインする

認証要素の登録が完了すると、ユーザーはアプリを使ってログインできるようになります。まず、認証方法として Guardian アプリを選択します。
認証方法の選択画面
次に、本人確認のため、ログインプロンプトにワンタイムコードを入力します。
ユーザーにワンタイムコードの入力を求める「Verify Your Identity」画面