トークンのハッシュでセキュリティを強化する

データベースのセキュリティ侵害が発生した場合に OAuth のアクセス トークンとリフレッシュ トークンを保護するために、Edge 組織で自動トークン ハッシュを有効にできます。この機能を有効にすると、指定したアルゴリズムを使用して、新たに生成された OAuth のアクセス トークンとリフレッシュ トークンのハッシュされたバージョンが自動的に作成されます(既存のトークンをまとめてハッシュする方法については後述します)。API の呼び出しにはハッシュされていないトークンが使われ、Edge がデータベースにあるハッシュされたバージョンに照らして検証します。

Edge Cloud のお客様の場合

Edge Cloud のお客様は、Apigee サポートに連絡して、組織でのハッシュを有効にし、必要に応じて既存のトークンをまとめてハッシュすることもできます。

Edge for Private Cloud のお客様の場合

Edge for Private Cloud の管理者は、管理 API を使って以下の組織レベルの属性を設定して、トークンのハッシュを有効できます。

features.isOAuthTokenHashingEnabled = true

features.OAuthTokenHashingAlgorithm = SHA1 | SHA256 | SHA384 | SHA512 | PLAIN

すでにハッシュされた既存のトークンを有効期限が切れるまで保持する場合は、組織内で以下の属性を設定します。ハッシュ アルゴリズムは既存のアルゴリズム(たとえば、Edge の以前のデフォルトである SHA1)を選びます。トークンがハッシュされていない場合は、PLAIN を使用します。

features.isOAuthTokenFallbackHashingEnabled = true

features.OAuthTokenFallbackHashingAlgorithm = SHA1 | SHA256 | SHA384 | SHA512 | PLAIN

次に、API を呼び出してトークンのハッシュを有効にするサンプルを示します。ペイロードには、組織の既存の属性も必ずすべて含めてください。組織の既存の属性を含めないと、既存の属性はすべて上書きされ、この呼び出しで設定する属性のみとなります。

curl -u email:password -X PUT -H "Content-type:application/xml" https://host:port/v1/o/{myorg} -d \
"<Organization type="trial" name="MyOrganization">
    <Properties>
        <Property name="features.isOAuthTokenHashingEnabled">true</Property>
        <Property name="features.OAuthTokenHashingAlgorithm">SHA256</Property>
        <Property name="features.isOAuthTokenFallbackHashingEnabled">true</Property>
        <Property name="features.OAuthTokenFallbackHashingAlgorithm">SHA1</Property>
        <Property...(an existing property)
        <Property...(an existing property)
        <Property...(an existing property)
    </Properties>
</Organization>"