チュートリアル: Azure Notification Hubs で動作するように iOS アプリを設定する
このチュートリアルでは、Apple Push Notification service (APNS) を介して iOS デバイスにプッシュ通知を送信するために Azure Notification Hubs を設定し、資格情報を構成する方法について説明します。
このチュートリアルを実行することは、以降の Objective C および Swift iOS チュートリアルの前提条件であり、以下の手順を取り上げています。
- 証明書の署名要求ファイルを生成する。
- アプリをプッシュ通知用に要求する。
- アプリケーションのプロビジョニング プロファイルを作成する。
- 通知ハブを作成します。
- APNS 情報を利用して通知ハブを構成する。
前提条件
このチュートリアルを完了するには、アクティブな Azure アカウントが必要です。 アカウントがない場合は、無料試用アカウントを数分で作成することができます。 詳細については、「Azure の無料試用版サイト」を参照してください。
以下も必要となります。
- アクティブな Apple Developer アカウント。
- Xcode を実行しており、有効な開発者証明書がキーチェーンにインストールされている Mac。
- iOS バージョン 10 以降を実行している iPhone または iPad。
- Apple ポータルに登録され、自分の証明書に関連付けられているお使いの物理デバイス。
このサービスに慣れていない場合は、Azure Notification Hubs の概要に関する記事を必ずお読みください。
Note
通知ハブは、[サンドボックス] 認証モードのみを使用するように構成されます。 運用環境のワークロードにはこの認証モードを使用しないでください。
証明書の署名要求ファイルを生成する
Apple Push Notification Service (APNS) では、証明書を使用してプッシュ通知を認証します。 次の手順に従って、通知を送受信するために必要なプッシュ証明書を作成します。 これらの概念の詳細については、Apple Push Notification Service の公式ドキュメントを参照してください。
証明書署名要求 (CSR) ファイルを生成します。これは、Apple が署名済みのプッシュ証明書を生成するために使用します。
Mac で、キーチェーン アクセス ツールを実行します。 これは、Launchpad のユーティリティ フォルダーまたはその他フォルダーから開くことができます。
[キーチェーン アクセス] を選択し、 [証明書アシスタント] を展開して、 [認証局に証明書を要求] を選択します。
Note
既定では、キーチェーン アクセスによってリスト内の最初の項目が選択されます。 これは、 [証明書] カテゴリで、 [Apple Worldwide Developer Relations Certification Authority] が一覧の最初の項目ではない場合に問題になることがあります。 CSR (証明書署名要求) を生成する前に、キー以外の項目があること、または [Apple Worldwide Developer Relations Certification Authority] キーが選択されていることを確認します。
[ユーザーのメール アドレス] を選択し、 [通称] の値を入力します。 [ディスクに保存] を指定したことを確認してから、 [続ける] を選択します。 [CA のメール アドレス] は、必要がないため空白のままにします。
[名前] に CSR ファイルの名前を入力し、 [場所] で保存先を選択してから、 [保存] を選択します。
このアクションにより、選択した場所に CSR ファイルが保存されます。 既定の場所は [デスクトップ] です。 ファイル用に選択した場所を忘れないでください。
次に、アプリを Apple に登録し、プッシュ通知を有効にして、エクスポートした CSR をアップロードしてプッシュ証明書を作成します。
アプリケーションをプッシュ通知に登録する
プッシュ通知を iOS アプリに送信するには、アプリケーションを Apple に登録すると共に、プッシュ通知にも登録します。
ご自分のアプリをまだ登録していない場合は、Apple Developer Center の iOS Provisioning Portal に移動します。 自分の Apple ID を使用してポータルにサインインし、 [Identifiers](識別子) を選択します。 次に、 [+] を選択して、新しいアプリを登録します。
[Register a New Identifier](新しい識別子の登録) 画面で、 [App IDs](アプリ ID) を選択します。 その後 [続行] を選択します。
新しいアプリで次の 3 つの値を更新してから、 [Continue](続行) を選択します。
説明:アプリのわかりやすい名前を入力します。
[Bundle ID](バンドル ID) : アプリ ディストリビューション ガイドの説明のとおりに、 <組織 ID>.<製品名> の形式のバンドル ID を入力します。 <組織 ID> と <製品名> の値は Xcode プロジェクトを作成する際に使用する組織 ID と製品名に一致させる必要があります。 次のスクリーンショットでは、NotificationHubs という値が組織 ID として使用され、GetStarted という値が製品名として使用されています。 Xcode で正しい発行プロファイルが使用されるように、 [Bundle Identifier](バンドル識別子) の値はご自分の Xcode プロジェクトの値と一致させるようにしてください。
[Push Notifications](プッシュ通知) : [Capabilities](機能) セクションの [Push Notifications](プッシュ通知) オプションをオンにします。
このアクションにより、アプリ ID が生成され、その情報を確認するよう求められます。 [Continue](続行) を選択し、 [Register](登録) を選択して新しいアプリ ID を確認します。
[Register]\(登録\) を選択すると、新しいアプリ ID が [Certificates, Identifiers & Profiles]\(証明書、識別子、およびプロファイル\) ページに 1 行の項目として表示されます。
[Certificates, Identifiers & Profiles]\(証明書、識別子、およびプロファイル\) ページの [Identifiers]\(識別子\) で、先ほど作成したアプリ ID の行項目を探し、その行を選択すると [Edit your App ID Configuration]\(App ID 構成の編集\) 画面が表示されます。
Notification Hubs の証明書を作成する
注意
iOS 13 のリリースでは、トークン ベースの認証を使用したサイレント通知のみを受信できます。 APNS 資格情報に証明書ベースの認証を使用している場合は、トークンベースの認証を使用するように切り替える必要があります。
通知ハブを APNs と連携させるには、証明書が必要です。 これには、次の 2 とおりの方法があります。
Notification Hubs に直接アップロードできる .p12 ファイルを作成します。
トークンベースの認証 (より新しいアプローチ) に使用できる .p8 ファイルを作成します。
「APNS のトークンベース (HTTP/2) 認証」に記載されているように、2 番目のオプションには、証明書を使用する場合と比べて多くの利点があります。 ただし、ここでは両方のアプローチの手順を取り上げます。
オプション 1: Notification Hubs に直接アップロードできる .p12 プッシュ証明書を作成する
チェック マークが付いた [Push Notifications](プッシュ通知) オプションまで下へスクロールします。証明書を作成するために [Configure](構成) を選択します。
[Apple Push Notification service SSL Certificates](Apple Push Notification Service の SSL 証明書) ウィンドウが表示されます。 [Development SSL Certificate](開発 SSL 証明書) セクションで [Create Certificate](証明書の作成) ボタンを選択します。
[Create a new Certificate](新しい証明書の作成) 画面が表示されます。
注意
このチュートリアルでは開発証明書を使用します。 運用証明書の場合も同じ処理を行います。 通知を送信する際と同じ証明書の種類を使用するようにします。
[Choose File](ファイルの選択) を選択して、最初のタスクで CSR ファイルを保存した場所を参照し、名前をダブルクリックして証明書を読み込みます。 その後 [続行] を選択します。
ポータルで証明書が作成されたら、 [Download](ダウンロード) ボタンを選択します。 この証明書を保存し、この保存場所を覚えておいてください。
証明書がダウンロードされて、ユーザーの [ダウンロード] フォルダーに保存されます。
既定では、ダウンロードした開発証明書の名前は aps_development.cer になっています。
ダウンロードしたプッシュ証明書 aps_development.cer をダブルクリックします。 この操作では、新しい証明書が Keychain にインストールされます。
Keychain Access の [Certificates] カテゴリで、作成した新しいプッシュ証明書を右クリックします。 [書き出す] を選択し、ファイルに名前を付けて、 .p12 形式を選択します。次に、 [保存] を選択します。
パスワードを使用して証明書を保護することもできますが、これはオプションです。 パスワードの作成を省略する場合は、 [OK] をクリックします。 エクスポートした .p12 証明書のファイル名と場所を書き留めます。 これらは、APNS での認証を有効にするために使用されます。
注意
実際の .p12 ファイルの名前と場所は、このチュートリアルの図に示されているものと異なる場合があります。
オプション 2:トークンベースの認証に使用できる .p8 証明書を作成する
次の情報をメモしておきます。
- アプリ ID プレフィックス (チーム ID)
- バンドル ID
[Certificates, Identifiers & Profiles]\(証明書、識別子、およびプロファイル\) に戻って [Keys]\(キー\) をクリックします。 APNS 用に構成されたキーが既にある場合は、作成直後にダウンロードした .p8 証明書を再利用できます。 その場合、手順 3. から手順 5. は無視してかまいません。
[+] ボタン (または [Create a key](キーの作成) ボタン) をクリックして新しいキーを作成します。
[Key Name](キー名) に適切な値を入力し、 [Apple Push Notifications service (APNS)] オプションをオンにして、 [Continue](続行) をクリックし、次の画面で [Register](登録) をクリックします。
[Download](ダウンロード) をクリックして .p8 ファイル (
AuthKey_
で始まるファイル) を安全なローカル ディレクトリに移動し、 [Done](完了) をクリックします。重要
.p8 ファイルは必ず安全な場所に保管してください (さらにバックアップを保存すること)。 キーは、ダウンロード後にサーバー コピーが削除されるため、再ダウンロードすることはできません。
[Keys](キー) で、先ほど作成したキー (または既存のキーを使用するように選択した場合はそのキー) をクリックします。
[Key ID](キー ID) の値をメモしておきます。
Visual Studio Code などの適切な自分のお好みのアプリケーションで、自分の .p8 証明書を開き、キーの値をメモします。 -----BEGIN PRIVATE KEY----- と -----END PRIVATE KEY----- で挟まれた値が該当します。
-----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY-----
これは、後で Notification Hubs の構成に使用するトークン値です。
これらの手順の最後に、後出の「APNS 情報で通知ハブを構成する」で使用するための次の情報が必要になります。
- チーム ID (手順 1. を参照)
- バンドル ID (手順 1. を参照)
- キー ID (手順 7. を参照)
- トークン値(.p8 キー値、手順 8 を参照)
プロビジョニング プロファイルを作成する
iOS Provisioning Portal に戻り、[Certificates, Identifiers & Profiles]\(証明書、識別子、およびプロファイル\) を選択します。左側のメニューから [Profiles]\(プロファイル\) を選択し、+[] を選択して新しいプロファイルを作成します。 [Register a New Provisioning Profile](新しいプロビジョニング プロファイルの登録) 画面が表示されます。
[Development](開発) で、プロビジョニング プロファイルの種類として [iOS App Development](iOS アプリ開発) を選択し、 [Continue](続行) を選択します。
次に、 [App ID](アプリ ID) ドロップダウン リストで自分が作成したアプリ ID を選択し、 [Continue](続行) を選択します。
[Select certificates](証明書の選択) ウィンドウで、コード署名に使用する開発証明書を選択し、 [Continue](続行) を選択します。 この証明書は、作成したプッシュ証明書ではありません。 存在しない場合は、作成する必要があります。 証明書が存在する場合は、次の手順に進みます。 開発証明書が存在しない場合に証明書を作成するには:
- "No Certificates are available (利用可能な証明書がありません) " と表示されたら、 [Create Certificate](証明書の作成) を選択します。
- [Software](ソフトウェア) セクションで、 [Apple Development](Apple 開発) を選択します。 その後 [続行] を選択します。
- [Create a New Certificate](新しい証明書の作成) 画面で、 [Choose File](ファイルの選択) を選択します。
- 先ほど作成した証明書署名要求証明書を参照して選択し、 [Open](開く) を選択します。
- [続行] をクリックします。
- 開発証明書をダウンロードします。また、それを保存した場所を覚えておきます。
[Certificates, Identifiers & Profiles]\(証明書、識別子、およびプロファイル\) ページに戻り、左側のメニューから [Profiles]\(プロファイル\) を選択し、+[] を選択して新しいプロファイルを作成します。 [Register a New Provisioning Profile](新しいプロビジョニング プロファイルの登録) 画面が表示されます。
[Select certificates](証明書の選択) ウィンドウで、先ほど作成した開発証明書を選択します。 その後 [続行] を選択します。
次に、テストに使用するデバイスを選択し、 [Continue](続行) を選択します。
最後に、 [Provisioning Profile Name](プロビジョニング プロファイル名) でプロファイルの名前を選択し、 [Generate](生成) を選択します。
新しいプロビジョニング プロファイルが作成されたら、 [Download](ダウンロード) を選択します。 それを保存した場所を覚えておきます。
プロビジョニング プロファイルの場所を参照し、それをダブルクリックして Xcode 開発マシンにインストールします。
通知ハブを作成する
このセクションでは、通知ハブを作成し、.p12 プッシュ証明書またはトークンベースの認証を使用して、APNS での認証を構成します。 既に作成した通知ハブを使用する場合は、手順 5. に進んでください。
Azure portal にサインインします。
左側のメニューで [すべてのサービス] を選択し、 [モバイル] セクションの [Notification Hubs] を選択します。 サービス名の横にある星のアイコンを選択して、左側のメニューにある [お気に入り] セクションにサービスを追加します。 Notification Hubs を [お気に入り] に追加し、それを選択します。
[Notification Hubs] ページで、ツール バーの [追加] を選択します。
[Notification Hub] ページで、次の手順のようにします。
- [通知ハブ] に名前を入力します。
- [新しい名前空間の作成] に名前を入力します。 1 つの名前空間には、1 つ以上の通知ハブが含まれます。
- [場所] ドロップダウン リストから値を選択します。 この値では、通知ハブを作成したい場所を指定します。
- [リソース グループ] で既存のリソース グループを選択するか、新しいリソース グループを作成します。
- [作成] を選択します
[通知] (ベルのアイコン) を選択し、 [リソースに移動] を選択します。 [Notification Hubs] ページの一覧を最新の情報に更新して、お使いの通知ハブを選択することもできます。
リストから [アクセス ポリシー] を選択します。 使用可能な 2 つの接続文字列を書き留めてください。 これらは、後でプッシュ通知を処理するために必要になります。
重要
アプリケーションで DefaultFullSharedAccessSignature ポリシーを使用しないでください。 これの使用が意図されているのはバックエンドだけです。
APNS 情報を利用して通知ハブを構成する
[Notification Services] で [Apple (APNS)] を選択し、先ほど「Notification Hubs の証明書を作成する」セクションで選択した方法に応じて適切な手順に従います。
注意
[アプリケーション モード] の [Production] (運用) は、ストアからアプリを購入したユーザーにプッシュ通知を送信する場合にのみ使用します。
オプション 1: .p12 プッシュ証明書を使用する
[Certificate] を選択します。
ファイル アイコンを選択します。
先ほどエクスポートした .p12 ファイルを選択し、 [Open](開く) を選択します。
必要に応じて、適切なパスワードを指定します。
[サンドボックス] モードを選択します。
[保存] を選択します。
オプション 2:トークン ベースの認証を使用する
[トークン] を選択します。
先ほど取得した次の値を入力します。
- キー ID
- バンドル ID
- チーム ID
- トークン
[サンドボックス] を選択します。
[保存] を選択します。
これで、APNS での通知ハブの構成が完了しました。 アプリを登録してプッシュ通知を送信するために必要な接続文字列も用意できました。
次のステップ
このチュートリアルでは、Azure で通知ハブを作成して構成し、それを、Apple Push Notification Service (APNS) を使用してアプリケーションに通知を送信できるように構成しました。 次に、サンプルの iOS アプリケーションを作成し、Azure portal を通じて送信されるプッシュ通知を受信できるように Azure Notification Hubs SDK を統合します。 選択する言語に基づいた次のチュートリアルに進みます。