• Authorization
    • Action
    • Subject
    • Template
    • istio.policy.v1beta1.Value

    Authorization

    Authorization 模版用于定义在 Istio 中策略执行的参数。启动 Mixer 可以配置此模版。

    配置例子:

    1. apiVersion: "config.istio.io/v1alpha2"
    2. kind: authorization
    3. metadata:
    4. name: authinfo
    5. namespace: istio-system
    6. spec:
    7. subject:
    8. user: source.user | request.auth.token[user] | ""
    9. groups: request.auth.token[groups]
    10. properties:
    11. iss: request.auth.token["iss"]
    12. action:
    13. namespace: destination.namespace | "default"
    14. service: destination.service | ""
    15. path: request.path | "/"
    16. method: request.method | "post"
    17. properties:
    18. version: destination.labels[version] | ""

    Action

    Action 定义了“如何访问资源”。

    字段类型描述
    namespacestring命名空间
    servicestring服务名称
    methodstring请求方法
    pathstring服务的 HTTP RestAPI
    propertiesmap<string,istio.policy.v1beta1.Value>其他属性数据

    Subject

    Subject 包括用户身份识别属性

    字段类型描述
    userstring用户名称或 ID
    groupstring认证的用户组,groups 可以从 JWT 断言或用户签名中获得。创建模版事例时可以指定。
    propertiesmap<string,istio.policy.v1beta1.Value>其他属性数据

    Template

    Authorization 模版定义 Istio 中策略执行的参数。启动 Mixer 可以使用此模版来定义谁可以做什么。在模版中,who 定义了消息主题。what 定义了操作信息。在 Mixer 检查调用期间,将根据请求属性配置这些值,并将这些值传给各个授权适配器来进行决定。

    字段类型描述
    subjectSubject主题包括用户身份识别的属性列表
    actionAction操作定义了如何访问资源

    istio.policy.v1beta1.Value

    Value 类型的字段表示该字段是动态类型,可以转换为任何 ValueType 枚举值。例如:模版中类型为 istio.policy.v1beta1.Value 的字段数据,下面两个表达式都是有效的 data: source.ip | ip("0.0.0.0"), data: request.id | "";结果类型分别为 ValueType.IP_ADDRESS 或 ValueType.STRING。

    Value 类型对象也会在请求时传递给适配器。 Value 中的一个字段与 ValueType 中的枚举值之间存在 1:1 映射的关系。 根据表达式的已评估 ValueType 值,由 Mixer 提供等效的 Value 类型的 oneof 字段并传给适配器。

    字段类型描述
    stringValuestring (oneof)STRING 类型的值
    int64Valueint64 (oneof)INT64 类型的值
    doubleValuedouble (oneof)DOUBLE 类型的值
    ipAddressValueistio.policy.v1beta1.IPAddress (oneof)IPAddress 类型的值
    timestampValueistio.policy.v1beta1.TimeStamp (oneof)TIMESTAMP 类型的值
    durationValueistio.policy.v1beta1.Duration (oneof)DURATION 类型的值
    emailAddressValueistio.policy.v1beta1.EmailAddress (oneof)EmailAddress 类型的值
    dnsNameValueistio.policy.v1beta1.DNSName (oneof)DNSName 类型的值
    uriValueistio.policy.v1beta1.Uri (oneof)Uri类型的值