APIリソース

このクラスはAPIリソースをモデル化します。

Enabled
このリソースが有効であり、要求できるかどうかを示します。デフォルトはtrueです。
Name
APIの一意の名前。この値はイントロスペクションでの認証に使用され、発信アクセストークンのオーディエンスに追加されます。
DisplayName
この値は、例えば同意画面で使用できます。
Description
この値は、例えば同意画面で使用できます。
ApiSecrets
イントロスペクションエンドポイントにはAPIシークレットが使用されます。APIは、API名とシークレットを使用してイントロスペクションで認証できます。
UserClaims
アクセストークンに含める必要がある、関連するユーザークレームタイプのリスト。
Scopes
APIには少なくとも1つのスコープが必要です。各スコープは異なる設定を持つことができます。

Scopes

単純なケースでは、APIのスコープは1つだけです。しかし、APIの機能を細かく分割して、異なるクライアントが異なる部分にアクセスできるようにしたい場合があります。

Name
The unique name of the scope. This is the value a client will use for the scope parameter in the authorize/token request.
DisplayName
この値は、例えば同意画面で使用できます。
Description
この値は、例えば同意画面で使用できます。
Required
同意画面でスコープの選択を解除できるかどうかを指定します(同意画面でそのような機能を実装したい場合)。デフォルトはfalseです。
Emphasize
同意画面がこの範囲を強調するかどうかを指定します(同意画面でそのような機能を実装したい場合)。この設定は、機密または重要なスコープに使用します。デフォルトはfalseです。
ShowInDiscoveryDocument
このスコープが検出文書に表示されるかどうかを指定します。デフォルトはtrueです。
UserClaims
List of associated user claim types that should be included in the access token. The claims specified here will be added to the list of claims specified for the API.

コンビニエンスコンストラクタの動作

ApiResourceクラスに提供されたコンストラクタについてのメモ。

のデータを完全に制御するにはApiResource、パラメータなしのデフォルトのコンストラクタを使用します。APIごとに複数のスコープを設定する場合は、この方法を使用します。例えば:

new ApiResource
{
    Name = "api2",

    Scopes =
    {
        new Scope()
        {
            Name = "api2.full_access",
            DisplayName = "Full access to API 2"
        },
        new Scope
        {
            Name = "api2.read_only",
            DisplayName = "Read only access to API 2"
        }
    }
}

APIごとに1つのスコープしか必要としない簡単なシナリオでは、aを受け入れるいくつかの便利なコンストラクタnameが提供されます。例えば:

new ApiResource("api1", "Some API 1")

便利なコンストラクタの使い方は次のようになります:

new ApiResource
{
    Name = "api1",
    DisplayName = "Some API 1",

    Scopes =
    {
        new Scope()
        {
            Name = "api1",
            DisplayName = "Some API 1"
        }
    }
}