スコープの属性機能

概要


本ドキュメントでは、スコープの属性機能について解説します。


スコープの属性


スコープの属性とは、あるスコープに対して紐づけられる key-value 形式の任意の属性です。各属性の key、value の値は文字列として扱われます。また、一つのスコープ対して複数の属性を紐づけることができます。

設定方法


スコープの属性の設定は、以下の手順で行う事ができます。

1. サービス管理者コンソールにログインし、対象のサービスの編集画面を開きます。

2. 「スコープを作成」ボタンを押下し、スコープの編集画面を開きます。

3. 最下部の属性ボタンから属性を追加します。

4. 属性の key と value の値を入力し、作成ボタンを押下します。
コンソール上でスコープの属性を作成


特殊なスコープ属性


以下にリストアップされた属性は、Authlete では特別な意味合いを持つものとして定義されています。
属性のキー
属性の値
説明
access_token.duration
任意の数値
スコープ単位でアクセストークンの継続時間を管理したい場合に利用します。詳細は「アクセストークン・リフレッシュトークンの有効期間をスコープ毎に設定する」をご覧ください。
refresh_token.duration
任意の数値
スコープ単位でリフレッシュトークンの継続時間を管理したい場合に利用します。詳細は「アクセストークン・リフレッシュトークンの有効期間をスコープ毎に設定する」をご覧ください。
fapi
r
FAPI read-only API プロファイルを有効化したい場合に利用します。詳細は「FAPI の機能を利用する」をご覧ください。
fapi
rw
FAPI read-and-write API プロファイルを有効化したい場合に利用します。詳細は「FAPI の機能を利用する」をご覧ください。



利用方法


スコープの属性は様々な場面で活用可能です。以下の java のサンプルコードでは、Authlete の api/authorization API からレスポンスが返却されたタイミングでスコープの属性をチェックし、特定の処理を行っています。

// Call Authlete /api/authorization API.
AuthorizationResponse res = callAuthorizationAPI();

// Get scopes contained in the original authorizaiton request.
Scope[] scopes = res.getScopes(); 

if (scopes == null || scopes.length() == 0)
{
    return;
}

// Check each scope's attributes.
for (Scope scp in scopes)
{
    // Get the scope attributes of the scope.
    Pair[] attributes = scp.getAttributes();

    if (attributes == null || attributes.length() == 0)
    {
        continue;
    }

    // Check each attributes.
    for (Pair attr in attributes)
    {
        // The key of the attribute.
        String key = attr.getKey();

        // The value of the attirbute.
        String value = attr.getValue();

        // If the key is the target one.
        if ("targetkey".equals(key))
        {
            // Do something with the value.
            doSomething(value);
        }
    }
}
How did we do with this article?