🦞

iOS へのプッシュ通知で使う AWS SNS の認証トークンを設定する

2024/05/14に公開

iOS には AWS SNS を使ってプッシュ通知を送ることができます。SNS で使える認証方法には、トークンベース認証と証明書ベース認証の2種類あり、本記事は、トークンベース認証の設定方法について記載します。

前置き

トークンベース認証のメリットには、通信速度の向上と運用負荷の軽減があり、公式では以下のように説明されています。

トークンベース認証は、Amazon SNS と Apple プッシュ通知サービス (APN) 間のステートレス通信を提供します。ステートレス通信は、APN で証明書の検索が必要ないため証明書ベースに比べ、より速く通信できます。
p12 証明書を使用していた際は、年に1回、証明書とエンドポイントを更新する必要がありました。.p8 キーファイルを使用することで、年に1回の更新が不要となり、運用上の負担を軽減することができます。

Amazon SNS で APN モバイルプッシュ通知のトークンベース認証に対応

.p8 は PKCS#8 で使われる拡張子です。

  • Registers application/pkcs8 media type and .p8 file extension.

RFC 5958

ちなみに .p12 については、ここで簡単に書いています。

トークンベース認証の設定

SNS に関する設定の全体像は「Apple 認証方法」に書いてあるので、このうちトークンベース認証について詳しく書きます。

以下は SNS のプラットフォームアプリケーションの作成画面の一部です。基本的には①から⑥の項目を Apple developer account と照らし合わせながら転記します。

Token を選択します。

Apple developer account からダウンロードした .p8 ファイルを選択します。info にも記載されていますが、 .p8 ファイルは認証キーを生成したときに限りダウンロードすることができます。

認証キーの生成方法についてはこちらをご覧ください。

②で .p8 ファイルを選択した場合は省略可能です。

Apple developer account の Certificates, IDs & Profiles を選択します。続けて Keys セクションを選択し、 View Key Details セクションの項目 Key ID に記載されている10桁の文字列を記入します。

Apple developer account の Membership details セクションに記載されている10桁の Team ID を記入します。

Apple developer account の Certificates, IDs & Profiles を選択します。続けて Identifiers セクションを選択し、対象アプリの IDENTIFIER を記入します。

Discussion