Menu Close
Settings Close

Language and Page Formatting Options

5.11.5. JSON 設定の使用

ユーザープロファイル設定は、明確に定義された JSON スキーマを使用して保存されます。JSON Editor サブタブで直接ユーザープロファイル設定の編集を選択できます。

JSON 設定

user profile json config

JSON スキーマは以下のように定義されます。

{
  "attributes": [
    {
      "name": "myattribute",
      "required": {
        "roles": [ "user", "admin" ],
        "scopes": [ "foo", "bar" ]
      },
      "permissions": {
        "view": [ "admin", "user" ],
        "edit": [ "admin", "user" ]
      },
      "validations": {
        "email": {},
        "length": {
          "max": 255
        }
      },
      "annotations": {
        "myannotation": "myannotation-value"
      }
    }
  ],
  "groups": [
    {
      "name": "personalInfo",
      "displayHeader": "Personal Information"
    }
  ]
}

スキーマは、必要な数の属性をサポートします。

属性ごとに、name、オプションで requiredpermission、および annotations 設定を定義する必要があります。

5.11.5.1. 必須プロパティー

required 設定は、属性が必要であるかどうかを定義します。Red Hat Single Sign-On では、異なる条件に基づいて必要に応じて属性を設定することができます。

required 設定が空のオブジェクトとして定義されている場合には、属性は常に必要になります。

{
  "attributes": [
    {
      "name": "myattribute",
      "required": {}
  ]
}

一方、ユーザーまたは管理者または両方に必要な属性の作成を選択できます。また、Red Hat Single Sign-On での認証時に、特定のスコープが要求される場合にのみ属性にマークを付けます。

ユーザーや管理者の必要に応じて属性にマークを付けるには、roles プロパティーを以下のように設定します。

{
  "attributes": [
    {
      "name": "myattribute",
      "required": {
        "roles": ["user"]
      }
  ]
}

roles プロパティーは、user または admin によって属性が必要であるかどうかによって、値が ユーザーまたは admin のいずれかである配列を想定します。

同様に、ユーザーの認証時に 1 つ以上のスコープのセットがクライアントによって要求される場合に、属性の作成を選択できます。そのため、以下のように scopes プロパティーを使用できます。

{
  "attributes": [
    {
      "name": "myattribute",
      "required": {
        "scopes": ["foo"]
      }
  ]
}

scopes プロパティーは、クライアントスコープを表す任意の文字列を持つことができます。