ServiceAlexa開発者フォーラムAlexaデザインガイドAlexaスキルマーケティングガイドラインAlexaスキルのセキュリティのテスト﻿Alexaスキルのセキュリティのテストスキルのクラウドベースのサービスは、ユーザーデータを保護するためにAmazonのセキュリティ要件を満たしている必要があります。Lambdaを使っているか、独自のエンドポイントを使っているかによって異なります。Lambdaは、アマゾンウェブサービスが提供するサービスです。Lambda関数としてホスティングされたスキルLambda関数ではリクエストがサービスに向けて行われたものであることを確認する必要があります。詳細については、Alexaから送信されたリクエストを処理するの「サービスに対するリクエストの妥当性を検証する」セクションを参照してください。独自のエンドポイントでウェブサービスとしてホスティングされたスキルウェブサービスは、接続の確立時に有効な信頼できる証明書を提示する必要があります。対応する秘密鍵を保持していなければなりません。Amazonは、Amazon認定の認証局が署名した証明書のみを信頼します。公開中のスキルに自己署名証明書は使用できません。サービスは受信するリクエストがAlexaサービスから送信されたものであることを確認する必要があります。これは、リクエストの署名を検証することで行います。詳細については、カスタムスキルをウェブサービスとしてホスティングするの「Alexaから送信されたリクエストを検証する」セクションを参照してください。Kitで提供されるJavaライブラリにあるSpeechletServletクラスのdisableRequestSignatureフラグをテストに使用できます。テスト中にこのフラグを使った場合、認定を申請するときにfalseに戻すようにしてください。サービスでは受信するリクエストがサービスに向けて行われたものであることを確認する必要があります。詳細については、Alexaから送信されたリクエストを処理するの「サービスに対するリクエストの妥当性を検証する」セクションを参照してください。アカウントリンクを使用するスキルスキルでエンドユーザーのIDを他のシステムのユーザーに結び付ける(アカウントリンク)必要がある場合、スキルが以下のいずれかに定義されたすべての手順に従っていることを確認してください。カスタムスキルのアカウントリンクスマートホームなどのドメインのアカウントリンクスキルの申請時には、認定チームがスキルのアカウントリンクと機能を検証できるよう、テスト手順の説明とともに有効なアカウント資格情報を提出します。スキルは以下のアカウントリンク基準も満たす必要があります。スキルはユーザーがAlexaアプリを使ってスキルを有効にするときに、ユーザーをログインページまたはランディングページにリダイレクトさせ、Amazonのアカウントリンク機能を使用します。Alexaアプリに表示されるスキルのプライバシーポリシーと利用規約のリンクから、それぞれ有効なウェブページに移動できる必要があります。認証システムの所有者の場合、スキルは以下の基準を満たす必要があります。ログインページを表示するドメインを所有する必要があります。ログインページはHTTPS経由で提供される必要があります。認証システムの所有者でない場合、スキルは以下の基準を満たす必要があります。スキルを有効にするときに、ユーザーがリダイレクトされるランディングページを所有している必要があります。このランディングページに、サードパーティ(3P)アカウントがスキルにアカウントをリンクする必要がある旨を明記する必要があります。ランディングページはユーザーをOAuthプロバイダーが所有するドメインのログインページにリダイレクトし、そのランディングページはHTTPS経由で提供される必要があります。することはできません。Amazonを使用している場合、スキルは以下の基準を満たす必要があります。ログインページのURLはamazon.comドメインのものであり、HTTPS経由で提供される必要があります。このログインページに、サードパーティ(3P)アカウントがスキルにアカウントをリンクする必要がある旨を明記する必要があります。スキルが収集して使用するユーザー情報を明示する必要があります。ログインページに直接記載するか、プライバシーポリシーページに記載します。Amazonにシームレスにリンクする5つの手順(英語)を参照してください。カスタムスキルでは、ユーザーが認可の必要なインテントを呼び出したがアカウントがまだリンクされていない場合、スキルはLinkAccountカードに戻ります。ロック解除や制限解除が可能なスキルスキルにユーザーにデバイスのロック解除や制限解除をさせるような機能がある場合、開発者は、その機能を使用する前に、ユーザーに最低4桁の音声コードを設定させるようにしなければなりません。ユーザーが音声コードを設定した後で、コードを設定しないというオプションを開発者が追加することもできます。音声コードを設定しないユーザーには、ユーザーが実行できるスキルの機能を制限することもできます。テスト想定される結果1.スキルを有効にしてアカウントリンクプロセスを完了します。アカウントリンクフローに機能のロック解除を行うための音声コード設定が含まれること、音声コードがセキュリティ要件を満たすことを確認します。音声コードの長さは4桁以上である必要があります。フローは、60日ごとにユーザーに音声コードリセットのリマインダーを通知する必要があります。2.音声コードが設定されないとスキルの機能を限定する場合、スキルを無効にするか、スキルをまだ有効にしていないAlexaユーザーとしてAlexaアプリにログインします。スキルを有効にします。このとき音声コードを設定しないか、プロンプトが出たら音声コードを使わないことを選択します。デバイスのロック解除または制限解除を行えるインテントを呼び出せるか試してみます。デバイスのロック解除または制限解除を行うリクエストが実行されません。ユーザーに対して、これらの機能を使うには音声コードを設定するよう指示が出ます。ロック解除/制限解除以外の機能は、音声コードなしでも正常に機能します。3.音声コードを使わない選択をしないで、ユーザーがデバイスのロック解除または制限解除を行える各インテントを呼び出します。デバイスのロック解除または制限解除を行う各リクエストは、ユーザーに音声コードを言うように依頼します。4.ユーザーがデバイスのロック解除または制限解除を行える各インテントを呼び出します。音声コードを求めるプロンプトが出たら、間違った音声コードを言います。間違った音声コードを3回以上言います。スキルは間違った音声コードを却下し、ロック解除または制限解除のリクエストを実行しません。3回連続して間違った音声コードを言った後、スキルは音声コードをリセットするようユーザーに指示します。4回目のリクエストで元の正しい音声コードを言ってもリクエストはエラーになります。プライバシーの要件スキルでは以下の行為は禁止されています。フィッシングやトロイの木馬など、悪意のあるハッキングへの参照を含む、またはこれらを含むこと。これには、デバイスのルート権限取得、Amazonや開発者のデジタル著作権管理(DRM)ソフトウェアの回避なども含まれます。スキルやスキルのメタデータに、ストーキングを含む、悪意のあるユーザーへのスパイ行為や追跡行為への参照を含む、またはこれらを含むこと。ユーザーの個人を特定できる情報や機密性の高い個人情報を悪用する行為。以下のすべてを実施することなく、エンドユーザーから個人情報を収集する行為。情報の収集と利用がプライバシー通知と適用されるすべての法律に準拠している。含まれますが、これに限定されません。機密性の高い個人情報を音声で収集したり、読み上げる行為。これにはパスポート番号、マイナンバー、住民票コード、銀行口座番号、クレジットカード番号(またはその他の国で同等のもの)が含まれますが、これに限定されません。アカウントリンク処理中に、ユーザーに4桁の音声セキュリティコードを設定できるオプションを提供することなく、以下の情報のいずれかを読み上げる行為。保険証番号スキルの説明で情報源を提供することなく、一般に公開されているスキルユーザー以外の個人情報を読み上げる行為。