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

データベースのセキュリティ侵害が発生した場合に 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>"