Xác thực mã thông báo JWT của Cổng API AWS

Để chính cổng API xác thực mã thông báo có trong yêu cầu, bạn tạo chính sách yêu cầu xác thực loại TOKEN_AUTHENTICATION. Mã thông báo bạn sử dụng để kiểm soát quyền truy cập vào API thường, nhưng không phải lúc nào cũng là Mã thông báo Web JSON [JWT]

Khi sử dụng chính sách TOKEN_AUTHENTICATION, bạn cho phép triển khai API sử dụng mã thông báo để xác thực và ủy quyền bằng cách bao gồm hai loại chính sách yêu cầu khác nhau trong đặc tả triển khai API

  • Chính sách yêu cầu xác thực cho toàn bộ quá trình triển khai API chỉ định việc sử dụng mã thông báo, bao gồm cả cách xác thực chúng và liệu người dùng cuối chưa được xác thực có thể truy cập các tuyến trong quá trình triển khai API hay không
  • Chính sách yêu cầu ủy quyền cho từng tuyến chỉ định các hoạt động mà người dùng cuối được phép thực hiện, tùy chọn dựa trên các giá trị được chỉ định cho yêu cầu
    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    2 của JWT

Bạn có thể thêm các chính sách yêu cầu xác thực và ủy quyền vào đặc tả triển khai API bằng cách

  • Sử dụng Bảng điều khiển .
  • Chỉnh sửa tệp JSON

Lưu ý

Trong các bản phát hành trước, bạn đã tạo các chính sách yêu cầu xác thực thuộc loại JWT_AUTHENTICATION để sử dụng JWT để xác thực. Các chính sách yêu cầu xác thực JWT_AUTHENTICATION hiện tại vẫn được hỗ trợ [xem Ghi chú về việc sử dụng chính sách yêu cầu JWT_AUTHENTICATION]. Tuy nhiên, nếu bạn đang tạo chính sách yêu cầu xác thực mới để xác thực JWT, chúng tôi khuyên bạn nên tạo chính sách yêu cầu xác thực dưới dạng chính sách TOKEN_AUTHENTICATION. Sử dụng chính sách TOKEN_AUTHENTICATION cho phép bạn.

  • Xác thực cả mã thông báo JWT và mã thông báo không phải JWT
  • Xác thực mã thông báo bằng cách sử dụng nhà cung cấp danh tính để có được điểm cuối nội quan
  • Chỉ định các chính sách lỗi xác thực, bao gồm cả việc tạo mã thông báo JWT mới trong trường hợp mã thông báo JWT không hợp lệ hoặc bị thiếu trong yêu cầu ban đầu

Điều gì xảy ra trong quá trình xác thực mã thông báo?

Khi cổng API nhận được yêu cầu từ ứng dụng khách API và bạn đã chỉ định chính sách xác thực mã thông báo, cổng API sẽ định vị mã thông báo [ví dụ: trong tiêu đề mã thông báo] và sử dụng mã thông báo đó

Bạn chỉ định cách cổng API xác thực mã thông báo mà nó đã nhận được bằng cách xác định chính sách xác thực của chính sách xác thực mã thông báo là một trong các loại sau

  • OAuth 2. 0 điểm cuối nội tâm. Chỉ định loại chính sách xác thực này nếu bạn muốn cổng API xác thực mã thông báo JWT hoặc không phải JWT với điểm cuối nội quan của nhà cung cấp danh tính. Bạn phải chỉ định URL khám phá của nhà cung cấp danh tính để lấy điểm cuối nội quan. Trong trường hợp này, cổng API chuyển thông tin đăng nhập của ứng dụng khách [id ứng dụng khách, cùng với bí mật ứng dụng khách được truy xuất từ ​​dịch vụ Vault ] cho nhà cung cấp danh tính để . Mã thông báo được xác thực mà không cần sử dụng khóa chung. Để giúp quá trình xác thực trong tương lai diễn ra nhanh hơn, bạn có thể chỉ định rằng bạn muốn cổng API lưu vào bộ đệm ẩn phản hồi từ điểm cuối xem xét nội quan, trong khoảng từ 1 giờ [mặc định] đến 24 giờ. Nếu bạn đang xác định đặc tả triển khai API trong tệp JSON và bạn muốn hành vi này, hãy bao gồm chính sách xác thực loại
    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    3.
  • JWKS từ xa. Chỉ định loại chính sách xác thực này nếu bạn muốn cổng API sử dụng các khóa xác minh công khai được lấy từ nhà cung cấp danh tính trong thời gian chạy để xác minh JWT. Trong trường hợp này, cổng API sẽ liên hệ với nhà cung cấp danh tính để xác minh JWT. Nhà cung cấp danh tính đóng vai trò là máy chủ ủy quyền. Nếu bạn đang xác định đặc tả triển khai API trong tệp JSON và bạn muốn hành vi này, hãy bao gồm chính sách xác thực loại
    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    4
  • phím tĩnh. Chỉ định loại chính sách xác thực này nếu bạn muốn cổng API sử dụng các khóa xác minh công khai do nhà cung cấp danh tính cấp [được gọi là 'khóa tĩnh'] để xác minh JWT. Trong trường hợp này, cổng API có thể xác minh JWT cục bộ trong thời gian chạy mà không cần phải liên hệ với nhà cung cấp danh tính. Kết quả là xác thực mã thông báo nhanh hơn. Nếu bạn đang xác định đặc tả triển khai API trong tệp JSON và bạn muốn hành vi này, hãy bao gồm chính sách xác thực loại
    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    5

Nếu xác thực thành công, cổng API sẽ định tuyến yêu cầu đến điểm cuối API thích hợp

Nếu xác thực không thành công do mã thông báo không hợp lệ hoặc bị thiếu trong yêu cầu ban đầu, bạn chỉ định hành vi cổng API bằng cách xác định chính sách lỗi xác thực của chính sách xác thực mã thông báo là một trong các loại sau

  • Mặc định [HTTP 401 trái phép]. Chỉ định loại chính sách lỗi xác thực này nếu bạn muốn cổng API trả về phản hồi HTTP-401 cho ứng dụng khách API. Đây là phản hồi mặc định. Nếu bạn đang xác định đặc tả triển khai API trong tệp JSON và bạn muốn hành vi này, chỉ cần không bao gồm chính sách lỗi xác thực
  • phản hồi tùy chỉnh. Chỉ định loại chính sách lỗi xác thực này nếu bạn muốn cổng API trả về phản hồi thay thế [phản hồi đã sửa đổi] cho ứng dụng khách API, thay vì phản hồi HTTP-401. Nếu bạn đang xác định đặc tả triển khai API trong tệp JSON và bạn muốn hành vi này, hãy bao gồm chính sách lỗi xác thực thuộc loại
    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    6
  • OAuth 2. 0. Chỉ định loại chính sách lỗi xác thực này nếu bạn muốn cổng API nhận mã thông báo JWT mới và hợp lệ từ nhà cung cấp danh tính cho các yêu cầu GET [trước tiên đã lưu trữ an toàn các tham số truy vấn yêu cầu ban đầu]. Đối với các yêu cầu PUT và yêu cầu POST, bạn có thể chỉ định một đường dẫn tương đối trong quá trình triển khai API hiện tại để chuyển hướng ứng dụng khách API. Sử dụng loại chính sách lỗi xác thực này, bạn cũng có thể xác định back end đăng xuất để xóa mọi cookie phiên được liên kết, thu hồi mã thông báo bằng cách gọi điểm cuối phiên kết thúc của nhà cung cấp danh tính và chuyển hướng đến URL đăng xuất sau được phép. Nếu bạn đang xác định đặc tả triển khai API trong tệp JSON và bạn muốn hành vi này, hãy bao gồm chính sách lỗi xác thực thuộc loại
    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    7

    Lưu ý rằng các chính sách lỗi xác thực thuộc loại OAuth 2. 0 hiện chỉ hỗ trợ luồng ủy quyền OpenID Connect và chỉ tạo mã thông báo JWT [xem Ghi chú về OAuth 2. 0 và Kết nối OpenID]. Trong trường hợp luồng ủy quyền OpenID Connect, hai mã thông báo có tên là

    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    8 [luôn được mã hóa JWT] và
    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    9 [có thể được mã hóa JWT] được trả về. Cổng API lưu các giá trị mã thông báo trong biến ngữ cảnh
    
    {
      "requestPolicies": {
        "authentication": {
          "type": "TOKEN_AUTHENTICATION",
          : ,
          "tokenAuthScheme": "",
          "isAnonymousAccessAllowed": ,
          "maxClockSkewInSeconds": ,
          "validationPolicy": {},
        }
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    0 và
    
    {
      "requestPolicies": {
        "authentication": {
          "type": "TOKEN_AUTHENTICATION",
          : ,
          "tokenAuthScheme": "",
          "isAnonymousAccessAllowed": ,
          "maxClockSkewInSeconds": ,
          "validationPolicy": {},
        }
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    1 tương ứng [xem Thêm biến ngữ cảnh vào chính sách và định nghĩa HTTP Back End]. Khi nhận được mã thông báo JWT
    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    8 mới, cổng API sẽ truy xuất chi tiết yêu cầu và tiếp tục xử lý yêu cầu bằng cách sử dụng mã thông báo

Vị trí mà cổng API nhận được mã thông báo tùy thuộc vào cả hai loại chính sách xác thực [một trong OAuth 2. 0, JWKS từ xa hoặc khóa tĩnh] và loại chính sách lỗi xác thực [một trong các chính sách Mặc định [HTTP 401 trái phép], phản hồi tùy chỉnh hoặc OAuth 2. 0], như sau

  • Nếu bạn chỉ định cả chính sách xác thực thuộc loại OAuth 2. 0 điểm cuối nội quan và chính sách lỗi xác thực thuộc loại OAuth 2. 0, cổng API ban đầu sẽ cố gắng lấy mã thông báo từ một hoặc một trong những điều sau đây
    • Nếu bạn đã chọn tùy chọn Sử dụng cookie cho phiên trong chính sách lỗi xác thực, từ cookie phiên
    • Mặt khác, từ tiêu đề X-APIGW-TOKEN trong yêu cầu

    Nếu cổng API không thể lấy mã thông báo từ vị trí ban đầu, thì cổng API sẽ lấy mã thông báo từ tiêu đề yêu cầu hoặc tham số truy vấn mà bạn chỉ định trong chính sách xác thực mã thông báo

    Nếu xác thực mã thông báo sau đó thành công và bạn đã chọn tùy chọn Sử dụng cookie cho phiên, thì cổng API sẽ lưu mã thông báo được tạo dưới dạng chuỗi không thể đọc được trong cookie phiên. Nếu ứng dụng khách API đưa ra yêu cầu tiếp theo, mã thông báo sẽ được lấy từ cookie phiên. Để ngăn chặn các cuộc tấn công CSRF, khi mã thông báo đã tạo được lưu trữ trong cookie phiên, cổng API cũng trả về mã thông báo CSRF trong tiêu đề phản hồi X-CSRF-TOKEN [xem Lưu ý về Bảo vệ giả mạo yêu cầu trên nhiều trang web [CSRF]]

  • Nếu bạn không chỉ định cả chính sách xác thực thuộc loại OAuth 2. 0 điểm cuối nội quan và chính sách lỗi xác thực thuộc loại OAuth 2. 0, cổng API sẽ lấy mã thông báo từ tiêu đề yêu cầu hoặc tham số truy vấn mà bạn chỉ định trong chính sách xác thực mã thông báo

Lưu ý về Mã thông báo Web JSON [JWT]

Mã thông báo bạn sử dụng để kiểm soát quyền truy cập vào API thường là Mã thông báo web JSON [JWT]. JWT là mã thông báo truy cập dựa trên JSON được gửi trong yêu cầu HTTP từ ứng dụng API tới tài nguyên. JWT được phát hành bởi các nhà cung cấp danh tính. Cổng API hỗ trợ việc sử dụng bất kỳ nhà cung cấp danh tính nào tuân thủ OAuth2, chẳng hạn như OCI IAM with Identity Domains, Oracle Identity Cloud Service [IDCS], Auth0, and Okta. If a JWT is required to access a resource, the resource validates the JWT with an authorization server using a corresponding public verification key, either by invoking a validation end-point on the authorization server or by using a local verification key provided by the authorization server.

Một JWT bao gồm

  • Tiêu đề xác định loại mã thông báo và thuật toán mật mã được sử dụng để tạo chữ ký
  • Tải trọng, chứa các tuyên bố về danh tính của người dùng cuối và các thuộc tính của chính JWT. Xác nhận quyền sở hữu là một cặp giá trị khóa, trong đó khóa là tên của xác nhận quyền sở hữu. Một trọng tải được khuyến nghị [mặc dù không bắt buộc] chứa một số xác nhận quyền sở hữu dành riêng nhất định với các tên cụ thể, chẳng hạn như thời gian hết hạn [
    
    {
      "requestPolicies": {
        "authentication": {
          "type": "TOKEN_AUTHENTICATION",
          : ,
          "tokenAuthScheme": "",
          "isAnonymousAccessAllowed": ,
          "maxClockSkewInSeconds": ,
          "validationPolicy": {},
        }
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    3], đối tượng [
    
    {
      "requestPolicies": {
        "authentication": {
          "type": "TOKEN_AUTHENTICATION",
          : ,
          "tokenAuthScheme": "",
          "isAnonymousAccessAllowed": ,
          "maxClockSkewInSeconds": ,
          "validationPolicy": {},
        }
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    4], nhà phát hành [
    
    {
      "requestPolicies": {
        "authentication": {
          "type": "TOKEN_AUTHENTICATION",
          : ,
          "tokenAuthScheme": "",
          "isAnonymousAccessAllowed": ,
          "maxClockSkewInSeconds": ,
          "validationPolicy": {},
        }
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    5] và không trước [
    
    {
      "requestPolicies": {
        "authentication": {
          "type": "TOKEN_AUTHENTICATION",
          : ,
          "tokenAuthScheme": "",
          "isAnonymousAccessAllowed": ,
          "maxClockSkewInSeconds": ,
          "validationPolicy": {},
        }
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    6]. Tải trọng cũng có thể chứa các yêu cầu tùy chỉnh với tên do người dùng xác định
  • Chữ ký, để xác thực tính xác thực của JWT [có nguồn gốc từ cơ sở64 mã hóa tiêu đề và tải trọng]

Khi sử dụng JWT để kiểm soát quyền truy cập vào API, bạn có thể chỉ định rằng các xác nhận quyền sở hữu dành riêng trong tải trọng của JWT phải có các giá trị cụ thể trước khi cổng API coi JWT là hợp lệ. Theo mặc định, cổng API xác thực JWT bằng cách sử dụng xác nhận quyền sở hữu hết hạn [


{
  "requestPolicies": {
    "authentication": {
      "type": "TOKEN_AUTHENTICATION",
      : ,
      "tokenAuthScheme": "",
      "isAnonymousAccessAllowed": ,
      "maxClockSkewInSeconds": ,
      "validationPolicy": {},
    }
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
3], đối tượng [

{
  "requestPolicies": {
    "authentication": {
      "type": "TOKEN_AUTHENTICATION",
      : ,
      "tokenAuthScheme": "",
      "isAnonymousAccessAllowed": ,
      "maxClockSkewInSeconds": ,
      "validationPolicy": {},
    }
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
4] và nhà phát hành [

{
  "requestPolicies": {
    "authentication": {
      "type": "TOKEN_AUTHENTICATION",
      : ,
      "tokenAuthScheme": "",
      "isAnonymousAccessAllowed": ,
      "maxClockSkewInSeconds": ,
      "validationPolicy": {},
    }
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
5], cùng với xác nhận quyền sở hữu không trước [

{
  "requestPolicies": {
    "authentication": {
      "type": "TOKEN_AUTHENTICATION",
      : ,
      "tokenAuthScheme": "",
      "isAnonymousAccessAllowed": ,
      "maxClockSkewInSeconds": ,
      "validationPolicy": {},
    }
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
6] nếu có. Bạn cũng có thể chỉ định các giá trị được chấp nhận cho yêu cầu tùy chỉnh. Xem Chi tiết nhà cung cấp danh tính để sử dụng cho Yêu cầu iss và aud và cho URI JWKS

Khi JWT đã được xác thực, cổng API sẽ trích xuất các yêu cầu từ tải trọng của JWT dưới dạng các cặp giá trị khóa và lưu chúng dưới dạng bản ghi trong bảng ngữ cảnh


{
  "requestPolicies": {},
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
91 để triển khai API sử dụng. Ví dụ: dưới dạng biến ngữ cảnh để sử dụng trong định nghĩa HTTP back end [xem Thêm biến ngữ cảnh vào chính sách và định nghĩa HTTP back end]. Nếu tải trọng của JWT chứa yêu cầu

{
  "requestPolicies": {},
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
2, bạn có thể sử dụng các giá trị của yêu cầu trong chính sách yêu cầu ủy quyền cho các tuyến riêng lẻ để chỉ định các hoạt động mà người dùng cuối được phép thực hiện

Ghi chú về OAuth 2. 0 và OpenID Kết nối

OAuth 2. 0 cho phép truy xuất an toàn các tài nguyên an toàn trong khi bảo vệ thông tin đăng nhập của khách hàng. OAuth 2. 0 là một giao thức linh hoạt và an toàn dựa trên SSL [Lớp cổng bảo mật] để đảm bảo dữ liệu giữa máy chủ web và trình duyệt luôn ở chế độ riêng tư. Mặc dù OAuth 2. 0 khác với JWT và được sử dụng cho các mục đích khác nhau, OAuth 2. 0 và JWT tương thích. Vì giao thức OAuth2 không chỉ định định dạng của mã thông báo, JWT có thể được tích hợp vào việc sử dụng OAuth2. Để biết thêm thông tin về OAuth 2. 0, xem OAuth 2. 0 tài liệu

OpenID Connect là một lớp nhận dạng đơn giản trên OAuth 2. 0 giao thức. Việc sử dụng OpenID Connect cho phép các cổng API xác minh danh tính của ứng dụng khách API dựa trên xác thực được thực hiện bởi máy chủ ủy quyền. OpenID Connect cũng cho phép các cổng API lấy thông tin hồ sơ cơ bản về ứng dụng khách API. Để biết thêm thông tin về OpenID Connect, hãy xem tài liệu OpenID Connect

Lưu ý về bảo vệ giả mạo yêu cầu chéo trang [CSRF]

Kẻ tấn công có thể thực hiện một cuộc tấn công CSRF bằng cách khai thác sự tồn tại của cookie trình duyệt để khiến người dùng gửi lệnh ngoài ý muốn tới ứng dụng web, chẳng hạn như cổng API. Nếu ứng dụng xác định người dùng đã được xác thực thành công do sự tồn tại của cookie trình duyệt, thì ứng dụng sẽ thực thi lệnh với những hậu quả có thể gây hại

Khi bạn xác định chính sách xác thực thuộc loại OAuth 2. 0 điểm cuối nội quan và chính sách lỗi xác thực thuộc loại OAuth 2. 0, bạn chỉ định cách cổng API lưu trữ mã thông báo JWT mới mà nó nhận được bằng cách sử dụng luồng ủy quyền OpenID Connect

  • Chọn tùy chọn Sử dụng cookie cho phiên nếu bạn muốn lưu trữ mã thông báo JWT mới trong cookie phiên. Để ngăn chặn các cuộc tấn công CSRF tiềm ẩn, khi cổng API lưu trữ mã thông báo trong cookie phiên, nó cũng trả về mã thông báo CSRF trong tiêu đề phản hồi X-CSRF-TOKEN. Các yêu cầu tiếp theo đối với cổng API [ngoài các yêu cầu GET] phải bao gồm mã thông báo CSRF trong tiêu đề yêu cầu X-CSRF-TOKEN, ngoài mã thông báo JWT trong cookie phiên
  • Không chọn tùy chọn Sử dụng cookie cho phiên nếu bạn không muốn lưu trữ mã thông báo JWT mới trong cookie phiên. Thay vào đó, cổng API trả về mã thông báo không phải con người có thể đọc được trong tiêu đề phản hồi X-APIGW-TOKEN. Các yêu cầu tiếp theo đối với cổng API phải bao gồm cùng một mã thông báo trong tiêu đề yêu cầu X-APIGW-TOKEN

Để biết thêm thông tin về CSRF, hãy tìm kiếm trực tuyến

Lưu ý về việc sử dụng chính sách yêu cầu XÁC THỰC JWT

Trong các bản phát hành trước, bạn có thể đã tạo các chính sách yêu cầu xác thực kiểu JWT_AUTHENTICATION để sử dụng JWT để xác thực

Nếu bạn đang tạo chính sách yêu cầu xác thực mới để sử dụng JWT, thì giờ đây, chúng tôi khuyên bạn nên tạo chính sách yêu cầu xác thực loại TOKEN_AUTHENTICATION thay thế [xem Sử dụng bảng điều khiển để thêm chính sách yêu cầu xác thực và ủy quyền mã thông báo và chỉnh sửa tệp JSON để thêm chính sách yêu cầu xác thực và ủy quyền mã thông báo . Chúng tôi cũng khuyên bạn nên chuyển các chính sách yêu cầu JWT_AUTHENTICATION hiện có sang chính sách TOKEN_AUTHENTICATION

Lưu ý rằng các chính sách yêu cầu JWT_AUTHENTICATION hiện tại vẫn được hỗ trợ. Cũng xin lưu ý rằng mặc dù bạn có thể tạo chính sách yêu cầu JWT_AUTHENTICATION mới [như được mô tả trong hướng dẫn ban đầu ở phần Sử dụng Chính sách yêu cầu xác thực JWT_AUTHENTICATION [không còn được đề xuất]], chúng tôi khuyên bạn nên tạo chính sách yêu cầu xác thực thuộc loại TOKEN_AUTHENTICATION thay thế

Trước khi bạn có thể kích hoạt xác thực và ủy quyền cho việc triển khai API bằng JWT

  • Nhà cung cấp danh tính tuân thủ OAuth2 [ví dụ: OCI IAM với Miền danh tính, Oracle Identity . [IDCS], Auth0] must have already been set up to issue JWTs for users allowed to access the API deployment.
  • Nếu bạn muốn sử dụng xác nhận quyền sở hữu tùy chỉnh trong chính sách ủy quyền, nhà cung cấp danh tính phải được thiết lập để thêm xác nhận quyền sở hữu tùy chỉnh vào JWT mà nó phát hành

Xem tài liệu của nhà cung cấp danh tính để biết thêm thông tin [ví dụ: tài liệu OCI IAM với Miền danh tính, tài liệu Dịch vụ Đám mây Danh tính Oracle [IDCS], tài liệu Auth0]

Để xác thực JWT bằng khóa xác minh công khai tương ứng do nhà cung cấp danh tính phát hành cung cấp

  • thuật toán ký được sử dụng để tạo chữ ký của JWT phải là một trong RS256, RS384 hoặc RS512
  • khóa xác minh công khai phải có độ dài tối thiểu là 2048 bit và không được vượt quá 4096 bit

Để xác thực mã thông báo bằng cách sử dụng điểm cuối nội quan của máy chủ ủy quyền

  • Bạn phải đã tạo và đăng ký ứng dụng khách với máy chủ ủy quyền để lấy thông tin đăng nhập của khách hàng [ID ứng dụng khách và bí mật ứng dụng khách]. Xem tài liệu máy chủ ủy quyền để biết thêm thông tin [ví dụ: tài liệu OCI IAM với Miền nhận dạng, tài liệu Dịch vụ đám mây nhận dạng Oracle [IDCS], tài liệu Auth0]
  • Bạn phải đã lưu trữ bí mật ứng dụng khách mà bạn nhận được từ máy chủ ủy quyền dưới dạng bí mật trong một kho tiền trong dịch vụ Vault [xem Tạo .
  • Bạn phải thiết lập chính sách để cấp cho các cổng API trong nhóm động quyền truy cập bí mật vault chứa bí mật ứng dụng khách [xem Tạo chính sách để cấp cho cổng API quyền truy cập vào thông tin xác thực được lưu trữ dưới dạng bí mật trong dịch vụ Vault]

To add authentication and authorization request policies to an API deployment specification using the Console .

  1. Tạo hoặc cập nhật triển khai API bằng cách sử dụng Bảng điều khiển , chọn tùy chọn Từ đầu và nhập chi tiết trên trang Thông tin cơ bản.

    Để biết thêm thông tin, hãy xem Triển khai API trên Cổng API bằng cách Tạo Triển khai API và Cập nhật Cổng API và Triển khai API

  2. Click Next to display the Authentication page
  3. Chọn Xác thực đơn để chỉ định rằng bạn muốn sử dụng một máy chủ xác thực duy nhất cho tất cả các yêu cầu

    Các hướng dẫn này giả sử bạn muốn sử dụng một máy chủ xác thực duy nhất. Ngoài ra, nếu bạn muốn sử dụng nhiều máy chủ xác thực, hãy chọn Đa xác thực và làm theo hướng dẫn trong Sử dụng bảng điều khiển để thêm nhiều máy chủ xác thực vào cùng một triển khai API

  4. Chọn hoặc bỏ chọn Kích hoạt truy cập ẩn danh. hộp kiểm để chỉ định liệu người dùng cuối không được xác thực [nghĩa là ẩn danh] có thể truy cập các tuyến trong quá trình triển khai API hay không

    Theo mặc định, tùy chọn này không được chọn. Nếu bạn không bao giờ muốn người dùng ẩn danh có thể truy cập các tuyến đường, đừng chọn tùy chọn này. Lưu ý rằng nếu bạn chọn tùy chọn này, bạn cũng phải chỉ định rõ ràng mọi tuyến đường được phép truy cập ẩn danh bằng cách chọn Ẩn danh làm Loại ủy quyền trong chính sách ủy quyền của mỗi tuyến đường

  5. Chọn OAuth 2. 0 / OpenID Connect từ danh sách tùy chọn Loại xác thực và chỉ định
    • Vị trí mã thông báo. Liệu mã thông báo được chứa trong tiêu đề yêu cầu hay tham số truy vấn
    • Chi tiết mã thông báo xác thực. Tùy thuộc vào việc mã thông báo được chứa trong tiêu đề yêu cầu hay tham số truy vấn, hãy chỉ định

      • Tên tiêu đề mã thông báo. và Sơ đồ xác thực. Nếu mã thông báo được chứa trong tiêu đề yêu cầu, hãy nhập tên của tiêu đề [ví dụ:
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        93] và lược đồ xác thực HTTP [hiện chỉ hỗ trợ
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        94]
      • Tên tham số mã thông báo. Nếu mã thông báo được chứa trong một tham số truy vấn, hãy nhập tên của tham số truy vấn
  6. Chỉ định cách bạn muốn cổng API xác thực mã thông báo
    1. Nếu bạn muốn cổng API xác thực cả mã thông báo JWT và mã thông báo không phải JWT bằng OAuth 2. 0 điểm cuối nội quan của máy chủ ủy quyền bằng thông tin đăng nhập của ứng dụng khách [bao gồm bí mật ứng dụng khách được truy xuất từ ​​kho tiền trong dịch vụ Vault ], chọn OAuth 2. 0 điểm cuối nội quan từ danh sách Loại và chỉ định.

      • ID khách hàng. ID khách hàng để gửi đến điểm cuối nội quan. Bạn có được ID khách hàng bằng cách tạo và đăng ký ứng dụng khách với máy chủ ủy quyền. Ví dụ,
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        95. Xem Điều kiện tiên quyết để xác thực mã thông báo
      • Vault in Vault có chứa bí mật của khách hàng để gửi đến điểm cuối nội quan. Bạn có được bí mật ứng dụng khách bằng cách tạo và đăng ký ứng dụng khách với máy chủ ủy quyền. Xem Điều kiện tiên quyết để xác thực mã thông báo.
      • Vault secret in : The name of a vault secret that contains the client secret to send to the introspection endpoint.
      • Số phiên bản bí mật của Vault. Phiên bản bí mật vault chứa bí mật máy khách để gửi đến điểm cuối nội quan
      • URL khám phá. URL nổi tiếng của máy chủ ủy quyền mà từ đó cổng API sẽ lấy các điểm cuối siêu dữ liệu ủy quyền. Ví dụ,
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        96

        Note the URL must be routable from the subnet containing the API gateway on which the API is deployed

      • Thời lượng bộ đệm tối đa tính bằng giờ. Số giờ [từ 1 đến 24] mà cổng API sẽ lưu vào bộ nhớ cache phản hồi từ điểm cuối nội quan
      • Độ lệch đồng hồ tối đa tính bằng giây. [Tùy chọn] Chênh lệch thời gian tối đa giữa đồng hồ hệ thống của máy chủ ủy quyền đã cấp mã thông báo và cổng API. Giá trị bạn nhập ở đây được tính đến khi cổng API xác thực JWT để xác định xem nó có còn hợp lệ hay không, sử dụng xác nhận quyền sở hữu không trước [
        
        {
          "requestPolicies": {
            "authentication": {
              "type": "TOKEN_AUTHENTICATION",
              : ,
              "tokenAuthScheme": "",
              "isAnonymousAccessAllowed": ,
              "maxClockSkewInSeconds": ,
              "validationPolicy": {},
            }
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        6] [nếu có] và xác nhận quyền sở hữu hết hạn [
        
        {
          "requestPolicies": {
            "authentication": {
              "type": "TOKEN_AUTHENTICATION",
              : ,
              "tokenAuthScheme": "",
              "isAnonymousAccessAllowed": ,
              "maxClockSkewInSeconds": ,
              "validationPolicy": {},
            }
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        3] trong JWT. Giá trị tối thiểu [và mặc định] là
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        99, giá trị tối đa là
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        80
      • Tắt xác minh SSL. Có tắt xác minh SSL khi giao tiếp với máy chủ ủy quyền hay không. Theo mặc định, tùy chọn này không được chọn. Oracle khuyên bạn không nên chọn tùy chọn này vì nó có thể ảnh hưởng đến việc xác thực mã thông báo. Cổng API tin tưởng các chứng chỉ từ nhiều Tổ chức phát hành chứng chỉ được cấp cho OCI IAM với Danh tính . Oracle Identity Cloud Service [IDCS], Auth0, and Okta.
    2. Nếu bạn muốn cổng API xác thực JWT bằng cách truy xuất các khóa xác minh công khai từ nhà cung cấp danh tính khi chạy, hãy chọn JWKS Từ xa từ danh sách Loại và chỉ định

      • URI JWKS. The URI from which to retrieve the JSON Web Key Set [JWKS] to use to verify the signature on JWTs. Ví dụ: https. //www. somejwksprovider. com/oauth2/v3/certs. For more information about the URI to specify, see Identity Provider Details to Use for iss and aud Claims, and for the JWKS URI

        Lưu ý những điều dưới đây

        • URI phải có thể định tuyến được từ mạng con chứa cổng API mà API được triển khai trên đó

        • Các URI yêu cầu xác thực hoặc ủy quyền để trả lại JWKS không được hỗ trợ
        • Nếu cổng API không truy xuất được JWKS, thì tất cả yêu cầu triển khai API sẽ trả về mã phản hồi HTTP 500. Tham khảo nhật ký thực thi của cổng API để biết thêm thông tin về lỗi [xem Thêm nhật ký vào triển khai API]
        • Một số tham số chính nhất định phải có trong JWKS để xác minh chữ ký của JWT [xem Tham số chính cần thiết để xác minh chữ ký JWT]
        • JWKS có thể chứa tối đa mười khóa
      • Thời lượng bộ đệm tối đa tính bằng giờ. Số giờ [từ 1 đến 24] mà cổng API sẽ lưu JWKS vào bộ đệm sau khi truy xuất
      • Tắt xác minh SSL. Có tắt xác minh SSL khi giao tiếp với nhà cung cấp danh tính hay không. Theo mặc định, tùy chọn này không được chọn. Oracle khuyên bạn không nên chọn tùy chọn này vì nó có thể ảnh hưởng đến xác thực JWT. API Gateway trusts certificates from multiple Certificate Authorities issued for OCI IAM with Identity Domains, Oracle Identity Cloud Service [IDCS], Auth0, and Okta.
    3. Nếu bạn muốn cổng API xác thực JWT bằng các khóa xác minh công khai do nhà cung cấp danh tính cấp [cho phép cổng API xác minh JWT cục bộ mà không phải liên hệ với nhà cung cấp danh tính], hãy chọn Khóa tĩnh từ danh sách Loại và chỉ định tối đa mười mã khóa tĩnh.

      • Key ID. Mã định danh của khóa tĩnh được sử dụng để ký JWT. Giá trị phải khớp với xác nhận quyền sở hữu
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        81 trong tiêu đề JWT. Ví dụ,
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        82
      • định dạng khóa. The format of the static key, as either a JSON Web Key or a PEM-encoded Public Key

        • khóa web JSON. Nếu khóa tĩnh là Khóa Web JSON, hãy dán khóa vào trường này

          For example

          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          1

          Note that certain parameters must be present in the static key to verify the JWT's signature [see Key Parameters Required to Verify JWT Signatures]. Ngoài ra, xin lưu ý rằng

          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          83 hiện là loại khóa duy nhất được hỗ trợ [
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          84]

        • Khóa công khai được mã hóa PEM. If the static key is a PEM-encoded public key, paste the key into this field. Ví dụ

          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          4

          Lưu ý rằng các điểm đánh dấu

          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          85 và
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          86 là bắt buộc

      • chìa khóa khác. Click to add additional keys [up to a maximum of ten]
  7. [Tùy chọn] Chỉ định chi tiết bổ sung để xác thực mã thông báo JWT
    1. In the Issuers section, specify values that are allowed in the issuer [

      
      {
        "requestPolicies": {
          "authentication": {
            "type": "TOKEN_AUTHENTICATION",
            : ,
            "tokenAuthScheme": "",
            "isAnonymousAccessAllowed": ,
            "maxClockSkewInSeconds": ,
            "validationPolicy": {},
          }
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      5] claim of a JWT being used to access the API deployment

      • Tổ chức phát hành được phép. Specify the URL [or a text string] for an identity provider that is allowed in the issuer [
        
        {
          "requestPolicies": {
            "authentication": {
              "type": "TOKEN_AUTHENTICATION",
              : ,
              "tokenAuthScheme": "",
              "isAnonymousAccessAllowed": ,
              "maxClockSkewInSeconds": ,
              "validationPolicy": {},
            }
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        5] claim of a JWT to be used to access the API deployment. Ví dụ: để bật JWT do OCI IAM cấp với Miền nhận dạng được sử dụng để truy cập triển khai API, hãy nhập
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        89. See Identity Provider Details to Use for iss and aud Claims, and for the JWKS URI.
      • Tổ chức phát hành khác. Click to add additional identity providers [up to a maximum of five]
    2. Trong phần Đối tượng, hãy chỉ định các giá trị được phép trong đối tượng [

      
      {
        "requestPolicies": {
          "authentication": {
            "type": "TOKEN_AUTHENTICATION",
            : ,
            "tokenAuthScheme": "",
            "isAnonymousAccessAllowed": ,
            "maxClockSkewInSeconds": ,
            "validationPolicy": {},
          }
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      4] xác nhận quyền sở hữu JWT đang được sử dụng để truy cập triển khai API

      • Đối tượng được phép. Chỉ định một giá trị được phép trong yêu cầu đối tượng [
        
        {
          "requestPolicies": {
            "authentication": {
              "type": "TOKEN_AUTHENTICATION",
              : ,
              "tokenAuthScheme": "",
              "isAnonymousAccessAllowed": ,
              "maxClockSkewInSeconds": ,
              "validationPolicy": {},
            }
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        4] của JWT để xác định người nhận dự định của mã thông báo. Ví dụ: đối tượng có thể là, nhưng không nhất thiết phải là tên máy chủ của cổng API. See Identity Provider Details to Use for iss and aud Claims, and for the JWKS URI
      • Đối tượng khác. Nhấp để thêm đối tượng bổ sung [tối đa năm đối tượng]
    3. Xác nhận yêu cầu.  [Optional] In addition to the values for the audience

      
      {
        "requestPolicies": {
          "authentication": {
            "type": "TOKEN_AUTHENTICATION",
            : ,
            "tokenAuthScheme": "",
            "isAnonymousAccessAllowed": ,
            "maxClockSkewInSeconds": ,
            "validationPolicy": {},
          }
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      4 and issuer
      
      {
        "requestPolicies": {
          "authentication": {
            "type": "TOKEN_AUTHENTICATION",
            : ,
            "tokenAuthScheme": "",
            "isAnonymousAccessAllowed": ,
            "maxClockSkewInSeconds": ,
            "validationPolicy": {},
          }
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      5 claims that you already specified, you can specify names and values for one or more additional claims to validate in a JWT. Note that any key names and values you enter are simply handled as strings, and must match exactly with names and values in the JWT. Khớp mẫu và các kiểu dữ liệu khác không được hỗ trợ

      • Yêu cầu bồi thường là bắt buộc. Chỉ định xem yêu cầu trong trường Khóa yêu cầu có phải được đưa vào JWT hay không
      • Yêu cầu chìa khóa. [Tùy chọn] Chỉ định tên của một xác nhận quyền sở hữu có thể có hoặc phải có trong JWT. Nếu yêu cầu phải được đưa vào JWT, hãy chọn Bắt buộc. Tên khiếu nại bạn chỉ định có thể là tên khiếu nại dành riêng, chẳng hạn như khiếu nại chủ đề [
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        44] hoặc tên khiếu nại tùy chỉnh do nhà cung cấp danh tính cụ thể cấp
      • Claim values. [Optional] Specify an acceptable value for the claim in the Claim key field. Click the plus sign [+] to enter another acceptable value. Nếu bạn chỉ định một hoặc nhiều giá trị được chấp nhận cho xác nhận quyền sở hữu, thì cổng API sẽ xác thực rằng xác nhận quyền sở hữu có một trong các giá trị mà bạn chỉ định

      Note that you can specify a claim in a JWT without specifying a value for it. To do so, enter the claim's name in the Claim key field, leave the Claim values field blank, and set Claim is required as appropriate

  8. Chỉ định cách bạn muốn cổng API xử lý phản hồi xác thực không thành công [được trả lại sau nỗ lực xác thực mã thông báo bị thiếu hoặc không hợp lệ không thành công] bằng cách thiết lập chính sách lỗi xác thực
    1. Nếu bạn muốn cổng API gửi mã trạng thái HTTP 401 và tiêu đề
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      45 trong phản hồi [phản hồi mặc định cho mã thông báo bị thiếu hoặc không hợp lệ], hãy chọn Mặc định [HTTP 401 trái phép]
    2. Nếu bạn muốn cổng API sử dụng luồng ủy quyền OpenID Connect để nhận mã thông báo truy cập JWT mới, hãy chọn OAuth 2. 0. Note that this option is only available if you selected OAuth 2. 0 nội quan từ danh sách Loại xác thực trước đó. chỉ định

      • phạm vi. Một hoặc nhiều phạm vi truy cập để đưa vào khiếu nại
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        2 được gửi tới máy chủ ủy quyền. Để sử dụng luồng ủy quyền OpenID Connect, bạn phải bao gồm
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        47 làm một trong các phạm vi. Ví dụ:
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        47,
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        49,
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        00
      • loại phản hồi. The type of response required from the authorization flow. Enter
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        01 as the response type
      • Đường dẫn chuyển hướng dự phòng. [tùy chọn] Đường dẫn tương đối trong quá trình triển khai API hiện tại để chuyển hướng ứng dụng khách API nếu yêu cầu ban đầu là yêu cầu PUT hoặc yêu cầu POST. Ví dụ:
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        02

        If the original request was a GET request, request processing resumes with a new JWT access token, so a fallback path is not used

      • đường dẫn đăng xuất. [optional] A relative path to a logout back end in the current API deployment. The path you specify must match the route path defined for the logout back end. For example,
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        03

        An API client can call the logout back end to revoke tokens. Một cuộc gọi đến phần cuối đăng xuất có thể bao gồm URL sau đăng xuất dưới dạng tham số truy vấn có tên là

        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        04. Xem Thêm Đăng xuất dưới dạng Back End của Cổng API

      • Phản hồi hết hạn sau vài giây. [optional] The length of time to cache the JWT token generated by the authorization flow. The default is 3600 seconds
      • Use OAuth2 introspection endpoint client credentials. Chỉ định xem có sử dụng cùng thông tin chi tiết ứng dụng khách mà bạn đã chỉ định trước đó cho OAuth 2 hay không. 0 nội quan để nhận mã thông báo truy cập JWT mới [thường là như vậy]. If you do not want to use the details you previously specified, enter different client details to use to obtain a new JWT access token from the authorization server, as follows
        • ID khách hàng. ID khách hàng để gửi đến điểm cuối nội quan. For example,
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          95
        • Vault trong Vault service that contains the client secret to send to the introspection endpoint.
        • Vault secret in : The name of the vault secret that contains the client secret to send to the introspection endpoint.
        • Số phiên bản bí mật của Vault. Phiên bản bí mật vault chứa bí mật máy khách để gửi đến điểm cuối nội quan

      Bạn có thể tùy ý chọn lưu trữ trong cookie các mã thông báo và giá trị thu được trong các luồng ủy quyền OpenID, bằng cách chọn Hiển thị tùy chọn nâng cao và chọn

      • Sử dụng cookie cho phiên. [optional] Specify how to store newly generated JWT tokens as non-human-readable strings at the end of an OpenID Connect authorization flow
        • Chọn tùy chọn này nếu bạn muốn lưu trữ mã thông báo JWT mới trong cookie phiên. Để ngăn chặn các cuộc tấn công CSRF tiềm ẩn, khi cổng API lưu trữ mã thông báo trong cookie phiên, nó cũng trả về mã thông báo CSRF trong tiêu đề phản hồi X-CSRF-TOKEN. Các yêu cầu tiếp theo đối với cổng API [ngoài các yêu cầu GET] phải bao gồm mã thông báo CSRF trong tiêu đề yêu cầu X-CSRF-TOKEN, ngoài mã thông báo JWT trong cookie phiên
        • Do not select this option if you do not want to store the new JWT token in a session cookie. Thay vào đó, cổng API trả về mã thông báo không phải con người có thể đọc được trong tiêu đề phản hồi X-APIGW-TOKEN. Các yêu cầu tiếp theo đối với cổng API phải bao gồm cùng một mã thông báo trong tiêu đề yêu cầu X-APIGW-TOKEN

        Xem Ghi chú về Bảo vệ giả mạo yêu cầu trên nhiều trang web [CSRF]

      • Sử dụng cookie cho các bước trung gian. [tùy chọn] Chỉ định cách lưu trữ các giá trị bước trung gian của luồng ủy quyền [ví dụ: tham số yêu cầu]. Chọn tùy chọn này để lưu trữ các giá trị trong cookie của trình duyệt. Bỏ chọn tùy chọn này để lưu trữ các giá trị với cổng API
      • Sử dụng PKCE. [tùy chọn] Chỉ định có sử dụng PKCE [Proof Key for Code Exchange] để tăng cường bảo mật hay không. PKCE là một OAuth 2. 0 để ngăn chặn CSRF [Cross-Site Request Forgery] và các cuộc tấn công chèn mã ủy quyền. PKCE không phải là sự thay thế cho bí mật ứng dụng khách và PKCE được khuyến nghị ngay cả khi sử dụng bí mật ứng dụng khách. Để biết thêm thông tin về PKCE, hãy xem OAuth 2. 0 tài liệu
    3. Nếu bạn muốn tùy chỉnh phản hồi đối với nỗ lực xác thực mã thông báo bị thiếu hoặc không hợp lệ không thành công, hãy chọn Phản hồi tùy chỉnh và chỉ định mã trạng thái [và nội dung thư tùy chọn] để quay lại ứng dụng khách API
      • Mã trạng thái HTTP. Nhập mã trạng thái HTTP thay thế. Ví dụ:
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        06
      • Nội dung thư. Nhập nội dung thư. Ví dụ:
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        07Nội dung thư có thể bao gồm bất kỳ biến ngữ cảnh nào [ngoại trừ
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        08]
      • Tùy chọn, sửa đổi các tiêu đề của phản hồi mà cổng API trả về ứng dụng khách API bằng cách chỉ định chính sách phản hồi chuyển đổi tiêu đề. Để biết thêm thông tin về các chính sách chuyển đổi tiêu đề, hãy xem Thêm chính sách phản hồi chuyển đổi tiêu đề
  9. Nhấp vào Tiếp theo để nhập thông tin chi tiết cho từng tuyến đường trong quá trình triển khai API trên trang Tuyến đường

  10. Trong phần Tuyến 1, hãy chỉ định tuyến đầu tiên trong quá trình triển khai API ánh xạ một đường dẫn và một hoặc nhiều phương thức tới một dịch vụ phụ trợ

    • Con đường. Đường dẫn cho lệnh gọi API sử dụng các phương thức được liệt kê đến dịch vụ back-end. Lưu ý rằng đường dẫn tuyến đường bạn chỉ định

      • có liên quan đến tiền tố đường dẫn triển khai
      • phải được đặt trước dấu gạch chéo [ / ] và có thể chỉ là dấu gạch chéo đơn đó
      • có thể chứa nhiều dấu gạch chéo lên [miễn là chúng không liền kề] và có thể kết thúc bằng dấu gạch chéo lên
      • có thể bao gồm các ký tự chữ hoa và chữ thường
      • có thể bao gồm các ký tự đặc biệt
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        09
      • có thể bao gồm các tham số và ký tự đại diện [xem Thêm tham số đường dẫn và ký tự đại diện vào đường dẫn định tuyến]
    • phương pháp. Một hoặc nhiều phương thức được dịch vụ back-end chấp nhận, được phân tách bằng dấu phẩy. Ví dụ:
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      00
    • Thêm một chương trình phụ trợ hoặc Thêm nhiều chương trình phụ trợ. Định tuyến tất cả các yêu cầu đến cùng một mặt sau hay định tuyến các yêu cầu đến các mặt sau khác nhau theo biến ngữ cảnh và quy tắc bạn nhập

      Các hướng dẫn này giả định rằng bạn muốn sử dụng một chương trình phụ trợ duy nhất, vì vậy hãy chọn Thêm một chương trình phụ trợ duy nhất. Ngoài ra, nếu bạn muốn sử dụng các phần cuối khác nhau, hãy chọn Thêm nhiều phần phụ trợ và làm theo hướng dẫn trong Sử dụng bảng điều khiển để thêm lựa chọn phần cuối động vào Đặc tả triển khai API

    • loại phụ trợ. Loại dịch vụ back-end, là một trong
      • HTTP. Đối với phần cuối HTTP, bạn cũng cần chỉ định URL, chi tiết thời gian chờ và có tắt xác minh SSL hay không [xem Thêm URL HTTP hoặc HTTPS làm phần cuối của Cổng API]
      • Các hàm của Oracle. Đối với phần cuối Hàm OCI , bạn cũng cần chỉ định ứng dụng và chức năng [xem Thêm một hàm trong Chức năng OCI dưới dạng nền cuối Cổng API].
      • Phản hồi chứng khoán. Đối với phần cuối của phản hồi về kho, bạn cũng cần chỉ định mã trạng thái HTTP, nội dung trong phần nội dung của phản hồi và một hoặc nhiều trường tiêu đề HTTP [xem Thêm phản hồi về kho dưới dạng Back End của Cổng API]
      • Đăng xuất. Đối với back-end đăng xuất, bạn cũng cần chỉ định danh sách các URL được phép mà yêu cầu có thể được chuyển hướng tới để thu hồi mã thông báo và dữ liệu tùy chọn để chuyển tới URL đăng xuất [xem Thêm Đăng xuất dưới dạng Back End của Cổng API]
  11. Để chỉ định chính sách ủy quyền áp dụng cho một tuyến đường riêng lẻ, hãy nhấp vào Hiển thị chính sách yêu cầu tuyến đường, nhấp vào nút Thêm bên cạnh Ủy quyền và chỉ định

    • Loại ủy quyền. Cách cấp quyền truy cập vào tuyến đường. chỉ định

      • Không tí nào. Chỉ cấp quyền truy cập cho người dùng cuối đã được xác thực thành công, miễn là JWT có yêu cầu
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        2 bao gồm ít nhất một trong các phạm vi truy cập mà bạn chỉ định trong trường Phạm vi được phép. Trong trường hợp này, tùy chọn Bật truy cập ẩn danh của chính sách xác thực không có hiệu lực
      • Vô danh. Cấp quyền truy cập cho tất cả người dùng cuối, ngay cả khi họ chưa được xác thực thành công bằng JWT. Trong trường hợp này, bạn phải chọn tùy chọn Cho phép truy cập ẩn danh của chính sách xác thực
      • chỉ xác thực. Chỉ cấp quyền truy cập cho người dùng cuối đã được xác thực thành công bằng JWT. Trong trường hợp này, tùy chọn Bật truy cập ẩn danh của chính sách xác thực không có hiệu lực
    • Phạm vi được phép. Nếu bạn đã chọn Bất kỳ làm Loại ủy quyền, hãy nhập danh sách được phân tách bằng dấu phẩy gồm một hoặc nhiều chuỗi tương ứng với phạm vi truy cập trong JWT. Quyền truy cập sẽ chỉ được cấp cho người dùng cuối đã được xác thực thành công nếu JWT có yêu cầu
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      2 bao gồm một trong các phạm vi truy cập mà bạn chỉ định. Ví dụ,
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      03

    Lưu ý

    Nếu bạn không bao gồm chính sách ủy quyền cho một tuyến đường cụ thể, quyền truy cập sẽ được cấp như thể chính sách đó tồn tại và Loại ủy quyền được đặt thành Chỉ xác thực. Nói cách khác, bất kể cài đặt tùy chọn Bật Truy cập Ẩn danh của chính sách xác thực là gì.

    • chỉ người dùng cuối được xác thực mới có thể truy cập tuyến đường
    • tất cả người dùng cuối được xác thực có thể truy cập tuyến đường bất kể phạm vi truy cập trong yêu cầu bồi thường
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      2 của JWT
    • người dùng cuối ẩn danh không thể truy cập tuyến đường

  12. Nhấp vào Áp dụng thay đổi, sau đó nhấp vào Tiếp theo để xem lại chi tiết bạn đã nhập để triển khai API
  13. Nhấp vào Tạo hoặc Lưu thay đổi để tạo hoặc cập nhật triển khai API
  14. [Tùy chọn] Xác nhận API đã được triển khai thành công bằng cách gọi API đó [xem Gọi một API được triển khai trên Cổng API]

Để thêm các chính sách yêu cầu xác thực và ủy quyền vào đặc tả triển khai API trong tệp JSON

  1. Sử dụng trình chỉnh sửa JSON ưa thích của bạn, chỉnh sửa đặc tả triển khai API hiện có mà bạn muốn thêm chức năng xác thực và ủy quyền hoặc tạo đặc tả triển khai API mới [xem Tạo Đặc tả triển khai API]

    Ở mức tối thiểu, đặc tả triển khai API sẽ bao gồm phần

    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    05 chứa

    • Một con đường. Ví dụ,
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      06
    • Một hoặc nhiều phương pháp. Ví dụ:
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      07
    • Định nghĩa về back-end. Ví dụ: URL hoặc OCID của hàm trong Hàm OCI .

    Ví dụ: đặc tả triển khai API cơ bản sau đây xác định một hàm Hello World serverless đơn giản trong Các hàm OCI dưới dạng một back-end duy nhất.

    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    8

  2. Chèn phần

    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    08 trước phần
    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    05 [nếu chưa có] để tạo chính sách yêu cầu
    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    400 áp dụng cho tất cả các tuyến trong đặc tả triển khai API. Ví dụ

    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }

  3. Thêm chính sách yêu cầu

    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    400 như sau

    ________số 8

    ở đâu

    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      402 chỉ định rằng bạn muốn sử dụng mã thông báo để xác thực
    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      403 cho biết đó là tiêu đề yêu cầu chứa mã thông báo [và nếu có, tên của tiêu đề] hay tham số truy vấn chứa mã thông báo [và nếu có, tên của tham số truy vấn]. Lưu ý rằng bạn có thể chỉ định
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      404 hoặc
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      405, nhưng không thể chỉ định cả hai. Ví dụ:
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      406
    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      407 là tên của sơ đồ xác thực sẽ sử dụng nếu mã thông báo được chứa trong tiêu đề yêu cầu. Ví dụ:
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      408
    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      409 tùy chọn cho biết liệu người dùng cuối không được xác thực [nghĩa là ẩn danh] có thể truy cập các tuyến trong đặc tả triển khai API hay không. Nếu bạn không bao giờ muốn người dùng cuối ẩn danh có thể truy cập các tuyến đường, hãy đặt thuộc tính này thành
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      410. Nếu bạn không đưa thuộc tính này vào chính sách
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      400, giá trị mặc định của
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      410 sẽ được sử dụng. Lưu ý rằng nếu bạn bao gồm thuộc tính này và đặt nó thành
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      413, thì bạn cũng phải chỉ định rõ ràng mọi tuyến đường cho phép truy cập ẩn danh bằng cách đặt thuộc tính
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      414 thành
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      415 trong chính sách
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      416 của mỗi tuyến đường
    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      417 tùy ý chỉ định chênh lệch thời gian tối đa giữa đồng hồ hệ thống của nhà cung cấp danh tính đã cấp JWT và cổng API. Giá trị bạn chỉ định được tính đến khi cổng API xác thực JWT để xác định xem nó có còn hợp lệ hay không, sử dụng yêu cầu không trước [
      
      {
        "requestPolicies": {
          "authentication": {
            "type": "TOKEN_AUTHENTICATION",
            : ,
            "tokenAuthScheme": "",
            "isAnonymousAccessAllowed": ,
            "maxClockSkewInSeconds": ,
            "validationPolicy": {},
          }
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      6] [nếu có] và yêu cầu hết hạn [
      
      {
        "requestPolicies": {
          "authentication": {
            "type": "TOKEN_AUTHENTICATION",
            : ,
            "tokenAuthScheme": "",
            "isAnonymousAccessAllowed": ,
            "maxClockSkewInSeconds": ,
            "validationPolicy": {},
          }
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      3] trong JWT. Tối thiểu [và mặc định] là
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      99, tối đa là
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      80
    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      422 chỉ định chính sách xác thực để xác thực mã thông báo, như được mô tả trong các bước sau
  4. Nếu bạn muốn cổng API xác thực cả mã thông báo JWT và mã thông báo không phải JWT bằng OAuth 2. 0 điểm cuối nội quan của máy chủ ủy quyền bằng cách sử dụng thông tin đăng nhập của ứng dụng khách [bao gồm bí mật ứng dụng khách được truy xuất từ ​​kho tiền trong dịch vụ Vault ], hãy thêm chính sách xác thực sau vào
    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    423 trống .
    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    9

    ở đâu

    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      424 chỉ định rằng bạn muốn xác thực mã thông báo bằng OAuth 2. 0 điểm cuối nội quan của máy chủ ủy quyền bằng cách sử dụng thông tin đăng nhập của ứng dụng khách [bao gồm cả bí mật của ứng dụng khách được truy xuất từ ​​kho tiền trong dịch vụ Vault ].
    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      425 chỉ định chi tiết về bí mật của khách hàng để truy xuất từ ​​kho tiền trong dịch vụ Vault .
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        426 chỉ định ID khách hàng để gửi đến điểm cuối nội quan. Bạn có được ID khách hàng bằng cách tạo và đăng ký ứng dụng khách với máy chủ ủy quyền. Ví dụ,
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        95. Xem Điều kiện tiên quyết để xác thực mã thông báo
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        428 chỉ định OCID của bí mật vault chứa bí mật máy khách để gửi đến điểm cuối nội quan. Ví dụ:
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        429
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        430 chỉ định phiên bản bí mật vault chứa bí mật máy khách để gửi đến điểm cuối nội quan. Ví dụ:
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        431
    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      432 chỉ định URL nổi tiếng của máy chủ ủy quyền mà từ đó cổng API sẽ lấy các điểm cuối siêu dữ liệu ủy quyền. Ví dụ,
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      96. Lưu ý rằng URL phải được định tuyến từ mạng con chứa cổng API mà API được triển khai trên đó
    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      434 cho biết có nên tắt xác minh SSL khi giao tiếp với máy chủ ủy quyền hay không. Oracle khuyến nghị không đặt tùy chọn này thành
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      413 vì nó có thể ảnh hưởng đến xác thực JWT. Cổng API tin cậy các chứng chỉ từ nhiều Tổ chức phát hành chứng chỉ được cấp cho OCI IAM với Danh tính . Oracle Identity Cloud Service [IDCS], Auth0, and Okta.
    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      436 chỉ định số giờ [từ 1 đến 24] mà cổng API sẽ lưu vào bộ nhớ đệm phản hồi từ điểm cuối kiểm tra nội bộ
    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      437 chỉ định chi tiết bổ sung để xác thực mã thông báo
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        438 là URL [hoặc chuỗi văn bản] cho máy chủ ủy quyền được cho phép trong yêu cầu của nhà phát hành [
        
        {
          "requestPolicies": {
            "authentication": {
              "type": "TOKEN_AUTHENTICATION",
              : ,
              "tokenAuthScheme": "",
              "isAnonymousAccessAllowed": ,
              "maxClockSkewInSeconds": ,
              "validationPolicy": {},
            }
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        5] về JWT được sử dụng để truy cập triển khai API. Ví dụ: để cho phép JWT do OCI IAM cấp với Miền nhận dạng được sử dụng để truy cập triển khai API, hãy chỉ định
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        89. Bạn có thể chỉ định một hoặc nhiều máy chủ ủy quyền [tối đa là năm]. Xem Chi tiết nhà cung cấp danh tính để sử dụng cho Yêu cầu iss và aud và cho URI JWKS.
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        441 là một giá trị được phép trong yêu cầu đối tượng [
        
        {
          "requestPolicies": {
            "authentication": {
              "type": "TOKEN_AUTHENTICATION",
              : ,
              "tokenAuthScheme": "",
              "isAnonymousAccessAllowed": ,
              "maxClockSkewInSeconds": ,
              "validationPolicy": {},
            }
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        4] của JWT để xác định người nhận mã thông báo dự định. Ví dụ: đối tượng có thể là, nhưng không nhất thiết phải là tên máy chủ của cổng API. Bạn có thể chỉ định một đối tượng hoặc nhiều đối tượng [tối đa là năm đối tượng]. Xem Chi tiết nhà cung cấp danh tính để sử dụng cho Yêu cầu iss và aud và cho URI JWKS
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        443 tùy chọn chỉ định tên và giá trị xác nhận quyền sở hữu bổ sung cho một hoặc nhiều xác nhận quyền sở hữu bổ sung để xác thực trong JWT [tối đa là mười]
        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          444 is the name of a claim that can be, or must be, included in a JWT. The claim name you specify can be a reserved claim name such as the subject [
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          44] claim, or a custom claim name issued by a particular authorization server
        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          446 [tùy chọn] chỉ ra một hoặc nhiều giá trị được chấp nhận cho yêu cầu bồi thường
        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          447 cho biết liệu yêu cầu có phải được đưa vào JWT hay không

        Lưu ý rằng bất kỳ tên khóa và giá trị nào bạn nhập chỉ được xử lý dưới dạng chuỗi và phải khớp chính xác với tên và giá trị trong JWT. Khớp mẫu và các kiểu dữ liệu khác không được hỗ trợ

    Ví dụ: chính sách

    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    400 sau đây định cấu hình cổng API để xác thực mã thông báo trong tiêu đề yêu cầu Ủy quyền bằng thông tin đăng nhập của ứng dụng khách [bao gồm cả bí mật ứng dụng khách được truy xuất từ ​​kho tiền trong Vault< . 0 điểm cuối nội quan]. service] passed to an OAuth 2.0 introspection endpoint]:

    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    8

  5. Nếu bạn muốn cổng API xác thực JWT bằng cách truy xuất các khóa xác minh công khai từ nhà cung cấp danh tính khi chạy, hãy thêm chính sách xác thực sau vào phần

    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    423 trống

    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    4

    ở đâu

    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      450 chỉ định rằng bạn muốn định cấu hình cổng API để truy xuất tối đa mười khóa xác minh công khai từ nhà cung cấp danh tính khi chạy
    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      451 chỉ định URI để truy xuất Bộ khóa Web JSON [JWKS] để sử dụng để xác minh chữ ký trên JWT. Để biết thêm thông tin về URI để chỉ định, hãy xem Chi tiết nhà cung cấp danh tính để sử dụng cho các Khiếu nại iss và aud và cho URI JWKS. Lưu ý những điều dưới đây
      • URI phải có thể định tuyến được từ mạng con chứa cổng API mà API được triển khai trên đó
      • Các URI yêu cầu xác thực hoặc ủy quyền để trả lại JWKS không được hỗ trợ
      • Nếu cổng API không truy xuất được JWKS, thì tất cả yêu cầu triển khai API sẽ trả về mã phản hồi HTTP 500. Tham khảo nhật ký thực thi của cổng API để biết thêm thông tin về lỗi [xem Thêm nhật ký vào triển khai API]
      • Một số tham số chính nhất định phải có trong JWKS để xác minh chữ ký của JWT [xem Tham số chính cần thiết để xác minh chữ ký JWT]
      • JWKS có thể chứa tối đa mười khóa
    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      434 cho biết có nên tắt xác minh SSL khi giao tiếp với nhà cung cấp danh tính hay không. Oracle khuyến nghị không đặt tùy chọn này thành
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      413 vì nó có thể ảnh hưởng đến xác thực JWT. Cổng API tin tưởng các chứng chỉ từ nhiều Tổ chức phát hành chứng chỉ được cấp cho OCI IAM với Danh tính . Oracle Identity Cloud Service [IDCS], Auth0, and Okta.
    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      436 chỉ định số giờ [từ 1 đến 24] cổng API sẽ lưu JWKS vào bộ đệm sau khi truy xuất
    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      437 chỉ định chi tiết bổ sung để xác thực mã thông báo
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        438 là URL [hoặc chuỗi văn bản] cho nhà cung cấp danh tính được cho phép trong yêu cầu của nhà phát hành [
        
        {
          "requestPolicies": {
            "authentication": {
              "type": "TOKEN_AUTHENTICATION",
              : ,
              "tokenAuthScheme": "",
              "isAnonymousAccessAllowed": ,
              "maxClockSkewInSeconds": ,
              "validationPolicy": {},
            }
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        5] về JWT được sử dụng để truy cập triển khai API. Ví dụ: để bật JWT do OCI IAM cấp với Miền nhận dạng được sử dụng để truy cập triển khai API, hãy nhập
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        89. Bạn có thể chỉ định một hoặc nhiều nhà cung cấp danh tính [tối đa là năm]. Xem Chi tiết nhà cung cấp danh tính để sử dụng cho Yêu cầu iss và aud và cho URI JWKS.
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        441 là một giá trị được phép trong yêu cầu đối tượng [
        
        {
          "requestPolicies": {
            "authentication": {
              "type": "TOKEN_AUTHENTICATION",
              : ,
              "tokenAuthScheme": "",
              "isAnonymousAccessAllowed": ,
              "maxClockSkewInSeconds": ,
              "validationPolicy": {},
            }
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        4] của JWT để xác định người nhận mã thông báo dự định. Ví dụ: đối tượng có thể là, nhưng không nhất thiết phải là tên máy chủ của cổng API. Bạn có thể chỉ định một đối tượng hoặc nhiều đối tượng [tối đa là năm đối tượng]. Xem Chi tiết nhà cung cấp danh tính để sử dụng cho Yêu cầu iss và aud và cho URI JWKS
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        461 tùy chọn chỉ định tên và giá trị xác nhận quyền sở hữu bổ sung cho một hoặc nhiều xác nhận quyền sở hữu bổ sung để xác thực trong JWT [tối đa là mười]
        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          444 là tên của một xác nhận quyền sở hữu có thể hoặc phải được đưa vào JWT. Tên khiếu nại bạn chỉ định có thể là tên khiếu nại dành riêng, chẳng hạn như khiếu nại chủ đề [
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          44] hoặc tên khiếu nại tùy chỉnh do nhà cung cấp danh tính cụ thể cấp
        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          446 [tùy chọn] chỉ ra một hoặc nhiều giá trị được chấp nhận cho yêu cầu bồi thường
        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          447 cho biết liệu yêu cầu có phải được đưa vào JWT hay không

        Lưu ý rằng bất kỳ tên khóa và giá trị nào bạn nhập chỉ được xử lý dưới dạng chuỗi và phải khớp chính xác với tên và giá trị trong JWT. Khớp mẫu và các kiểu dữ liệu khác không được hỗ trợ

    Ví dụ: chính sách

    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    400 sau đây định cấu hình cổng API để xác thực JWT trong tiêu đề yêu cầu Ủy quyền bằng cách truy xuất các khóa xác minh công khai từ nhà cung cấp danh tính khi chạy

    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    0

  6. Nếu bạn muốn cổng API xác thực JWT bằng các khóa xác minh công khai do nhà cung cấp danh tính cấp [cho phép cổng API xác minh JWT cục bộ mà không phải liên hệ với nhà cung cấp danh tính], hãy thêm chính sách xác thực sau vào phần

    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    423 trống

    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    0

    ở đâu

    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      468 chỉ định rằng bạn muốn định cấu hình cổng API với tối đa 10 khóa xác minh công khai đã được nhà cung cấp danh tính cấp [cho phép cổng API xác minh JWT cục bộ mà không cần phải liên hệ với nhà cung cấp danh tính]
    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      469 chỉ định mã định danh của khóa tĩnh được sử dụng để ký JWT. Các chi tiết cần cung cấp tùy thuộc vào định dạng của khóa do nhà cung cấp danh tính cấp [bất kể định dạng nào, bạn có thể chỉ định tối đa mười khóa]
      • Nếu khóa tĩnh là Khóa web JSON, hãy chỉ định

        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        470, chỉ định mã định danh của khóa tĩnh được sử dụng để ký JWT làm giá trị của tham số
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        471 và cung cấp giá trị cho các tham số khác để xác minh chữ ký của JWT

        For example

        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        40

        Note that certain parameters must be present in the static key to verify the JWT's signature [see Key Parameters Required to Verify JWT Signatures]. Ngoài ra, xin lưu ý rằng

        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        83 hiện là loại khóa duy nhất được hỗ trợ [
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        84]

      • Nếu khóa tĩnh là khóa công khai được mã hóa PEM, hãy chỉ định

        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        474, chỉ định mã định danh của khóa tĩnh được sử dụng để ký JWT dưới dạng giá trị của
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        471 và cung cấp khóa dưới dạng giá trị của
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        476

        For example

        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        41

        Lưu ý rằng các điểm đánh dấu

        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        85 và
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        86 là bắt buộc

    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      434 cho biết có nên tắt xác minh SSL khi giao tiếp với nhà cung cấp danh tính hay không. Oracle khuyến nghị không đặt tùy chọn này thành
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      413 vì nó có thể ảnh hưởng đến xác thực JWT. Cổng API tin tưởng các chứng chỉ từ nhiều Tổ chức phát hành chứng chỉ được cấp cho OCI IAM với Danh tính . Oracle Identity Cloud Service [IDCS], Auth0, and Okta.
    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      436 chỉ định số giờ [từ 1 đến 24] cổng API sẽ lưu JWKS vào bộ đệm sau khi truy xuất
    • 
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      437 chỉ định chi tiết bổ sung để xác thực mã thông báo
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        438 là URL [hoặc chuỗi văn bản] cho nhà cung cấp danh tính được cho phép trong yêu cầu của nhà phát hành [
        
        {
          "requestPolicies": {
            "authentication": {
              "type": "TOKEN_AUTHENTICATION",
              : ,
              "tokenAuthScheme": "",
              "isAnonymousAccessAllowed": ,
              "maxClockSkewInSeconds": ,
              "validationPolicy": {},
            }
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        5] về JWT được sử dụng để truy cập triển khai API. Ví dụ: để bật JWT do OCI IAM cấp với Miền nhận dạng được sử dụng để truy cập triển khai API, hãy nhập
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        89. Bạn có thể chỉ định một hoặc nhiều nhà cung cấp danh tính [tối đa là năm]. Xem Chi tiết nhà cung cấp danh tính để sử dụng cho Yêu cầu iss và aud và cho URI JWKS.
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        441 là một giá trị được phép trong yêu cầu đối tượng [
        
        {
          "requestPolicies": {
            "authentication": {
              "type": "TOKEN_AUTHENTICATION",
              : ,
              "tokenAuthScheme": "",
              "isAnonymousAccessAllowed": ,
              "maxClockSkewInSeconds": ,
              "validationPolicy": {},
            }
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        4] của JWT để xác định người nhận mã thông báo dự định. Ví dụ: đối tượng có thể là, nhưng không nhất thiết phải là tên máy chủ của cổng API. Bạn có thể chỉ định một đối tượng hoặc nhiều đối tượng [tối đa là năm đối tượng]. Xem Chi tiết nhà cung cấp danh tính để sử dụng cho Yêu cầu iss và aud và cho URI JWKS
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        461 tùy chọn chỉ định tên và giá trị xác nhận quyền sở hữu bổ sung cho một hoặc nhiều xác nhận quyền sở hữu bổ sung để xác thực trong JWT [tối đa là mười]
        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          444 là tên của một xác nhận quyền sở hữu có thể hoặc phải được đưa vào JWT. Tên khiếu nại bạn chỉ định có thể là tên khiếu nại dành riêng, chẳng hạn như khiếu nại chủ đề [
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          44] hoặc tên khiếu nại tùy chỉnh do nhà cung cấp danh tính cụ thể cấp
        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          446 [tùy chọn] chỉ ra một hoặc nhiều giá trị được chấp nhận cho yêu cầu bồi thường
        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          447 cho biết liệu yêu cầu có phải được đưa vào JWT hay không

        Lưu ý rằng bất kỳ tên khóa và giá trị nào bạn nhập chỉ được xử lý dưới dạng chuỗi và phải khớp chính xác với tên và giá trị trong JWT. Khớp mẫu và các kiểu dữ liệu khác không được hỗ trợ

    Ví dụ: chính sách

    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    400 sau đây định cấu hình cổng API bằng khóa xác minh công khai đã được nhà cung cấp danh tính cấp để xác thực JWT trong tiêu đề yêu cầu Ủy quyền

    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    42

  7. [Tùy chọn] Bạn có thể chỉ định cách bạn muốn cổng API xử lý phản hồi xác thực không thành công [được trả lại sau nỗ lực xác thực mã thông báo bị thiếu hoặc không hợp lệ không thành công] bằng cách thiết lập chính sách xác thực lỗi
    1. Nếu bạn muốn cổng API gửi mã trạng thái HTTP 401 và tiêu đề
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      45 trong phản hồi [phản hồi mặc định cho mã thông báo bị thiếu hoặc không hợp lệ], không xác định chính sách lỗi xác thực
    2. Nếu bạn muốn cổng API sử dụng luồng ủy quyền OpenID Connect để nhận mã thông báo truy cập JWT mới, hãy xác định chính sách lỗi xác thực thuộc loại

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      7. Lưu ý rằng tùy chọn này chỉ khả dụng nếu bạn đã chỉ định một
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      423 thuộc loại
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      3 trước đó. chỉ định

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      43

      ở đâu

      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        498 chỉ định một hoặc nhiều phạm vi truy cập để đưa vào khiếu nại
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        2 được gửi tới máy chủ ủy quyền. Để sử dụng luồng ủy quyền OpenID Connect, bạn phải bao gồm
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        47 làm một trong các phạm vi. Ví dụ:
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        801
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        802 chỉ định chi tiết ứng dụng khách sẽ sử dụng để nhận mã thông báo truy cập JWT mới từ máy chủ ủy quyền, như sau
        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          803 chỉ định xem có nên sử dụng các chi tiết khách hàng giống hoặc khác với những chi tiết được chỉ định trong
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          423 trước đó hay không. Nếu bạn muốn sử dụng các chi tiết khách hàng giống như trước đây [thường là như vậy], hãy chỉ định
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          805 và không cung cấp thêm chi tiết. Nếu bạn muốn sử dụng các chi tiết khách hàng khác nhau, hãy chỉ định
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          806 và đặt giá trị cho
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          807,
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          808 và
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          809
        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          426 chỉ định ID khách hàng để gửi đến điểm cuối nội quan. Chỉ được sử dụng nếu
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          806. Ví dụ,
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          95
        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          428 chỉ định OCID của bí mật vault chứa bí mật máy khách để gửi đến điểm cuối nội quan. Chỉ được sử dụng nếu
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          806. Ví dụ:
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          429
        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          430 chỉ định phiên bản bí mật vault chứa bí mật máy khách để gửi đến điểm cuối nội quan. Chỉ được sử dụng nếu
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          806. Ví dụ:
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          431
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        819 chỉ định rằng bạn muốn sử dụng cùng một URL như đã chỉ định trong
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        423 trước đó làm URL nổi tiếng của máy chủ ủy quyền mà từ đó cổng API sẽ lấy các điểm cuối siêu dữ liệu ủy quyền
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        821 chỉ định khoảng thời gian lưu trữ mã thông báo JWT được tạo bởi luồng ủy quyền. Mặc định là 1
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        822 chỉ định cách lưu trữ mã thông báo JWT mới được tạo dưới dạng chuỗi không thể đọc được ở cuối luồng ủy quyền OpenID Connect
        • Đặt tùy chọn này thành
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          413 nếu bạn muốn lưu trữ mã thông báo JWT mới trong cookie phiên. Để ngăn chặn các cuộc tấn công CSRF tiềm ẩn, khi cổng API lưu trữ mã thông báo trong cookie phiên, nó cũng trả về mã thông báo CSRF trong tiêu đề phản hồi X-CSRF-TOKEN. Các yêu cầu tiếp theo [ngoài các yêu cầu GET] phải bao gồm mã thông báo CSRF trong tiêu đề yêu cầu X-CSRF-TOKEN, ngoài mã thông báo JWT trong cookie phiên
        • Đặt tùy chọn này thành
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          410 nếu bạn không muốn lưu trữ mã thông báo JWT mới trong cookie phiên. Thay vào đó, cổng API trả về mã thông báo không phải con người có thể đọc được trong tiêu đề phản hồi X-APIGW-TOKEN. Các yêu cầu tiếp theo đối với cổng API phải bao gồm cùng một mã thông báo trong tiêu đề yêu cầu X-APIGW-TOKEN

        Xem Ghi chú về Bảo vệ giả mạo yêu cầu trên nhiều trang web [CSRF]

      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        825 chỉ định cách lưu trữ các giá trị bước trung gian của luồng ủy quyền [ví dụ: tham số yêu cầu]. Đặt tùy chọn này thành
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        413 để lưu trữ các giá trị trong cookie của trình duyệt. Đặt tùy chọn này thành
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        410 để lưu trữ các giá trị bằng cổng API
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        828 chỉ định có sử dụng PKCE [Proof Key for Code Exchange] để tăng cường bảo mật hay không. PKCE là một OAuth 2. 0 để ngăn chặn CSRF [Cross-Site Request Forgery] và các cuộc tấn công chèn mã ủy quyền. PKCE không phải là sự thay thế cho bí mật ứng dụng khách và PKCE được khuyến nghị ngay cả khi sử dụng bí mật ứng dụng khách. Để biết thêm thông tin về PKCE, hãy xem OAuth 2. 0 tài liệu
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        829 chỉ định loại phản hồi được yêu cầu từ luồng ủy quyền. Chỉ định
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        01 làm loại phản hồi
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        831 tùy chọn chỉ định đường dẫn tương đối trong triển khai API hiện tại để chuyển hướng ứng dụng khách API nếu yêu cầu ban đầu là yêu cầu PUT hoặc yêu cầu POST. Ví dụ:
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        02

        If the original request was a GET request, request processing resumes with a new JWT access token, so a fallback path is not used

      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        833tùy chọn chỉ định đường dẫn tương đối đến phần cuối đăng xuất trong quá trình triển khai API hiện tại. Đường dẫn bạn chỉ định phải khớp với đường dẫn tuyến đường được xác định cho phần cuối đăng xuất. Ví dụ:
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        834

        An API client can call the logout back end to revoke tokens. Một cuộc gọi đến phần cuối đăng xuất có thể bao gồm URL sau đăng xuất dưới dạng tham số truy vấn có tên là

        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        04. Xem Thêm Đăng xuất dưới dạng Back End của Cổng API

      For example

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      44

    3. Nếu bạn muốn tùy chỉnh phản hồi đối với nỗ lực xác thực mã thông báo bị thiếu hoặc không hợp lệ không thành công, hãy xác định chính sách lỗi xác thực thuộc loại
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      6 và chỉ định mã trạng thái [và nội dung thông báo tùy chọn] để trả về ứng dụng khách API, như sau

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      45

      ở đâu

      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        837. chỉ định mã trạng thái HTTP thay thế. Ví dụ:
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        06
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        839. [tùy chọn] chỉ định nội dung thư. Ví dụ:
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        07 Nội dung thư có thể bao gồm bất kỳ biến ngữ cảnh nào [ngoại trừ
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        08]
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        842. [tùy chọn] sửa đổi các tiêu đề của phản hồi mà cổng API trả về ứng dụng khách API bằng cách chỉ định chính sách phản hồi chuyển đổi tiêu đề. Để biết thêm thông tin về các chính sách chuyển đổi tiêu đề, hãy xem Thêm chính sách phản hồi chuyển đổi tiêu đề

      For example

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      46

  8. Thêm chính sách yêu cầu

    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    416 cho từng tuyến trong đặc tả triển khai API

    1. Chèn phần

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      08 sau phần
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      845 của tuyến đầu tiên, nếu phần này chưa tồn tại. Ví dụ

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      47

    2. Thêm chính sách

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      416 sau vào phần
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      08 mới

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      48

      ở đâu

      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        848 cho biết cách cấp quyền truy cập vào tuyến đường

        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          849. Chỉ cấp quyền truy cập cho người dùng cuối đã được xác thực thành công. Trong trường hợp này, thuộc tính
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          850 trong chính sách
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          400 của đặc tả triển khai API không có hiệu lực
        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          852. Chỉ cấp quyền truy cập cho người dùng cuối đã được xác thực thành công, với điều kiện là yêu cầu
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          2 của JWT bao gồm một trong các phạm vi truy cập mà bạn chỉ định trong thuộc tính
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          854. Trong trường hợp này, thuộc tính
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          850 trong chính sách
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          400 của đặc tả triển khai API không có hiệu lực
        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          415. Cấp quyền truy cập cho tất cả người dùng cuối, ngay cả khi họ chưa được xác thực thành công. Trong trường hợp này, bạn phải đặt rõ ràng thuộc tính
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          850 thành
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          413 trong chính sách
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          400 của đặc tả triển khai API
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        861 là danh sách được phân tách bằng dấu phẩy gồm một hoặc nhiều chuỗi tương ứng với phạm vi truy cập được bao gồm trong yêu cầu bồi thường
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        2 của JWT. Trong trường hợp này, bạn phải đặt thuộc tính
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        414 thành
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        852 [thuộc tính
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        865 bị bỏ qua nếu thuộc tính
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        414 được đặt thành
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        849 hoặc
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        415]. Cũng lưu ý rằng nếu bạn chỉ định nhiều hơn một phạm vi, thì quyền truy cập vào tuyến đường sẽ được cấp nếu bất kỳ phạm vi nào bạn chỉ định được bao gồm trong yêu cầu bồi thường
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        2 của JWT

      Ví dụ: chính sách yêu cầu sau xác định tuyến đường

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      06 chỉ cho phép người dùng cuối được xác thực với phạm vi
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      03 truy cập vào tuyến đường đó

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      49

    3. Thêm chính sách yêu cầu
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      416 cho tất cả các tuyến còn lại trong đặc tả triển khai API

    Lưu ý

    Nếu bạn không bao gồm chính sách

    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    416 cho một tuyến đường cụ thể, quyền truy cập sẽ được cấp như thể chính sách đó tồn tại và thuộc tính
    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    414 được đặt thành
    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    849. Nói cách khác, bất kể cài đặt của thuộc tính
    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    876 trong chính sách
    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    400 của đặc tả triển khai API.

    • chỉ người dùng cuối được xác thực mới có thể truy cập tuyến đường
    • tất cả người dùng cuối được xác thực có thể truy cập tuyến đường bất kể phạm vi truy cập trong yêu cầu bồi thường
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      2 của JWT
    • người dùng cuối ẩn danh không thể truy cập tuyến đường

  9. Lưu tệp JSON chứa thông số kỹ thuật triển khai API
  10. Sử dụng đặc tả triển khai API khi bạn tạo hoặc cập nhật triển khai API theo các cách sau

    • bằng cách chỉ định tệp JSON trong Bảng điều khiển khi bạn chọn tùy chọn Tải lên API hiện có
    • bằng cách chỉ định tệp JSON trong yêu cầu tới Cổng API API REST

    Để biết thêm thông tin, hãy xem Triển khai API trên Cổng API bằng cách Tạo Triển khai API và Cập nhật Cổng API và Triển khai API

  11. [Tùy chọn] Xác nhận API đã được triển khai thành công bằng cách gọi API đó [xem Gọi một API được triển khai trên Cổng API]

Nhà cung cấp danh tính đã phát hành JWT xác định các giá trị được phép mà bạn phải chỉ định cho yêu cầu của nhà phát hành [


{
  "requestPolicies": {
    "authentication": {
      "type": "TOKEN_AUTHENTICATION",
      : ,
      "tokenAuthScheme": "",
      "isAnonymousAccessAllowed": ,
      "maxClockSkewInSeconds": ,
      "validationPolicy": {},
    }
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
5] và đối tượng [

{
  "requestPolicies": {
    "authentication": {
      "type": "TOKEN_AUTHENTICATION",
      : ,
      "tokenAuthScheme": "",
      "isAnonymousAccessAllowed": ,
      "maxClockSkewInSeconds": ,
      "validationPolicy": {},
    }
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
4] trong JWT. Nhà cung cấp danh tính nào đã cấp JWT cũng xác định URI để truy xuất Bộ khóa Web JSON [JWKS] để xác minh chữ ký trên JWT

Lưu ý những điều dưới đây

  • Các URI yêu cầu xác thực hoặc ủy quyền để trả lại JWKS không được hỗ trợ
  • Bất kể nhà cung cấp danh tính nào, JWKS có thể chứa tối đa mười khóa

Sử dụng bảng sau để tìm hiểu những gì cần chỉ định cho JWT do OCI IAM cấp với Miền nhận dạng, Oracle Identity Cloud Service [IDCS], Okta, and Auth0 identity providers.

Nhà cung cấp danh tính

Người phát hành [


{
  "requestPolicies": {
    "authentication": {
      "type": "TOKEN_AUTHENTICATION",
      : ,
      "tokenAuthScheme": "",
      "isAnonymousAccessAllowed": ,
      "maxClockSkewInSeconds": ,
      "validationPolicy": {},
    }
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
5] khiếu nại

Đối tượng [


{
  "requestPolicies": {
    "authentication": {
      "type": "TOKEN_AUTHENTICATION",
      : ,
      "tokenAuthScheme": "",
      "isAnonymousAccessAllowed": ,
      "maxClockSkewInSeconds": ,
      "validationPolicy": {},
    }
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
4] yêu cầu bồi thường

Định dạng của URI để truy xuất JWKS

OCI IAM với Miền nhận dạnghttps. //xác thực. đám mây tiên tri. com

Khách hàng cụ thể

Xem tài liệu Quản lý ứng dụng trong OCI IAM với Miền nhận dạng

///admin/v1/SigningCert/jwk

IDCShttps. //xác thực. đám mây tiên tri. com/

Khách hàng cụ thể

See Validating Access Tokens in the Oracle Identity Cloud Service documentation

///admin/v1/SigningCert/jwk

Để có được JWKS mà không cần đăng nhập vào Dịch vụ đám mây nhận dạng Oracle, hãy xem Thay đổi cài đặt mặc định trong tài liệu Dịch vụ đám mây nhận dạng Oracle

Okta//.com

Khách hàng cụ thể

Đối tượng được định cấu hình cho Máy chủ ủy quyền trong Bảng điều khiển dành cho nhà phát triển Okta. See Additional validation for access tokens in the Okta documentation

//.com/oauth2/ /v1/keys

Xem tài liệu Okta

Auth0//.auth0.com/

Khách hàng cụ thể

Xem Đối tượng trong tài liệu Auth0

//.auth0.com/.well-known/jwks.json

Để xác minh chữ ký trên JWT, các cổng API yêu cầu có các tham số chính sau trong JWKS được trả về từ URI hoặc Khóa Web JSON tĩnh mà bạn chỉ định

Tham số chínhGhi chú


{
  "requestPolicies": {},
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
81Số nhận dạng của khóa được sử dụng để ký JWT. The value must match the

{
  "requestPolicies": {},
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
81 claim in the JWT header. Ví dụ,

{
  "requestPolicies": {},
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
82.

{
  "requestPolicies": {},
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
84Loại khóa được sử dụng để ký JWT. Lưu ý rằng RSA hiện là loại khóa duy nhất được hỗ trợ.

{
  "requestPolicies": {},
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
887 hoặc

{
  "requestPolicies": {},
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
888

If the


{
  "requestPolicies": {},
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
887 parameter is present, then it must be set to

{
  "requestPolicies": {},
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
890. Nếu có tham số

{
  "requestPolicies": {},
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
891 thì

{
  "requestPolicies": {},
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
892 phải là một trong các giá trị hợp lệ


{
  "requestPolicies": {},
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
893Mô-đun khóa công khai.

{
  "requestPolicies": {},
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
894The public key exponent.

{
  "requestPolicies": {},
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
895The signing algorithm [if present] must be set to one of RS256, RS384 or RS512

Lưu ý

Trong các bản phát hành trước, bạn có thể đã tạo các chính sách yêu cầu xác thực kiểu JWT_AUTHENTICATION để sử dụng JWT để xác thực.

Nếu bạn đang tạo chính sách yêu cầu xác thực mới để sử dụng JWT, thì giờ đây, chúng tôi khuyên bạn nên tạo chính sách yêu cầu xác thực loại TOKEN_AUTHENTICATION thay thế [xem Sử dụng bảng điều khiển để thêm chính sách yêu cầu xác thực và ủy quyền mã thông báo và chỉnh sửa tệp JSON để thêm chính sách yêu cầu xác thực và ủy quyền mã thông báo . Chúng tôi cũng khuyên bạn nên chuyển các chính sách yêu cầu JWT_AUTHENTICATION hiện có sang chính sách TOKEN_AUTHENTICATION

Note that existing JWT_AUTHENTICATION request policies are currently still supported. Cũng xin lưu ý rằng mặc dù bạn có thể tạo chính sách yêu cầu JWT_AUTHENTICATION mới bằng cách xác định đặc tả triển khai API trong tệp JSON [như được mô tả trong hướng dẫn ban đầu trong phần này], chúng tôi khuyên bạn nên tạo chính sách yêu cầu xác thực thuộc loại TOKEN_AUTHENTICATION để thay thế

When using an authentication request policy of type JWT_AUTHENTICATION, before an end user can access an API deployment that uses JWTs for authentication and authorization, they must obtain a JWT from an identity provider

Khi gọi một API được triển khai trên một cổng API, ứng dụng API sẽ cung cấp JWT dưới dạng tham số truy vấn hoặc trong tiêu đề của yêu cầu. The API gateway validates the JWT using a corresponding public verification key provided by the issuing identity provider. Bằng cách sử dụng chính sách yêu cầu xác thực JWT_AUTHENTICATION của quá trình triển khai API, bạn có thể định cấu hình cách cổng API xác thực JWT

  • Bạn có thể định cấu hình cổng API để truy xuất các khóa xác minh công khai từ nhà cung cấp danh tính khi chạy. In this case, the identity provider acts as the authorization server
  • Bạn có thể định cấu hình trước cổng API bằng các khóa xác minh công khai do nhà cung cấp danh tính cấp [được gọi là "khóa tĩnh"], cho phép cổng API xác minh JWT cục bộ trong thời gian chạy mà không cần phải liên hệ với nhà cung cấp danh tính. Kết quả là xác thực mã thông báo nhanh hơn

Để thêm chính sách yêu cầu ủy quyền và xác thực JWT_AUTHENTICATION mới vào đặc tả triển khai API trong tệp JSON

  1. Thêm chính sách yêu cầu

    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    400 áp dụng cho tất cả các tuyến trong đặc tả triển khai API

    1. Chèn phần

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      08 trước phần
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      05, nếu phần này chưa tồn tại. Ví dụ

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }

    2. Thêm chính sách

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      400 sau vào phần
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      08 mới

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      81

      ở đâu

      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        409 tùy chọn cho biết liệu người dùng cuối không được xác thực [nghĩa là ẩn danh] có thể truy cập các tuyến trong đặc tả triển khai API hay không. Nếu bạn không bao giờ muốn người dùng cuối ẩn danh có thể truy cập các tuyến đường, hãy đặt thuộc tính này thành
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        410. Nếu bạn không đưa thuộc tính này vào chính sách
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        400, giá trị mặc định của
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        410 sẽ được sử dụng. Lưu ý rằng nếu bạn bao gồm thuộc tính này và đặt nó thành
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        413, thì bạn cũng phải chỉ định rõ ràng mọi tuyến đường cho phép truy cập ẩn danh bằng cách đặt thuộc tính
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        414 thành
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        415 trong chính sách
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        416 của mỗi tuyến đường
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        438 là URL [hoặc chuỗi văn bản] của một nhà cung cấp danh tính được cho phép trong xác nhận quyền sở hữu JWT của nhà phát hành [
        
        {
          "requestPolicies": {
            "authentication": {
              "type": "TOKEN_AUTHENTICATION",
              : ,
              "tokenAuthScheme": "",
              "isAnonymousAccessAllowed": ,
              "maxClockSkewInSeconds": ,
              "validationPolicy": {},
            }
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        5] được sử dụng để truy cập vào quá trình triển khai API. Ví dụ: để bật JWT do OCI IAM cấp với Miền nhận dạng được sử dụng để truy cập triển khai API, hãy nhập
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        89. Bạn có thể chỉ định một hoặc nhiều nhà cung cấp danh tính [tối đa là năm]. Xem Chi tiết nhà cung cấp danh tính để sử dụng cho Yêu cầu iss và aud và cho URI JWKS.
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        403 cho biết liệu đó là tiêu đề yêu cầu có chứa JWT [và nếu có, tên của tiêu đề] hay tham số truy vấn có chứa JWT [và nếu có, tên của tham số truy vấn]. Lưu ý rằng bạn có thể chỉ định
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        404 hoặc
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        405, nhưng không thể chỉ định cả hai
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        407 là tên của sơ đồ xác thực sẽ sử dụng nếu JWT được chứa trong tiêu đề yêu cầu. For example,
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        408
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        441 là một giá trị được phép trong yêu cầu đối tượng [
        
        {
          "requestPolicies": {
            "authentication": {
              "type": "TOKEN_AUTHENTICATION",
              : ,
              "tokenAuthScheme": "",
              "isAnonymousAccessAllowed": ,
              "maxClockSkewInSeconds": ,
              "validationPolicy": {},
            }
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        4] của JWT để xác định người nhận mã thông báo dự định. Ví dụ: đối tượng có thể là, nhưng không nhất thiết phải là tên máy chủ của cổng API. Bạn có thể chỉ định một đối tượng hoặc nhiều đối tượng [tối đa là năm đối tượng]. Xem Chi tiết nhà cung cấp danh tính để sử dụng cho Yêu cầu iss và aud và cho URI JWKS
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        19 indicates how you want the API gateway to validate JWTs using public verification keys. Chỉ định
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        4 để định cấu hình cổng API nhằm truy xuất tối đa mười khóa xác minh công khai từ nhà cung cấp danh tính khi chạy. Specify
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        5 to configure the API gateway with up to ten public verification keys already issued by an identity provider [enabling the API gateway to verify JWTs locally without having to contact the identity provider]
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        22 cung cấp thông tin chi tiết về xác thực JWT, tùy theo việc bạn đã chỉ định
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        23 hay
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        24 làm giá trị của
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        25 như sau

        • If you specified

          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          26 to configure the API gateway to validate JWTs by retrieving public verification keys from the identity provider at runtime, provide details as follows

          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          82

          ở đâu

          • 
            {
              "requestPolicies": {},
              "routes": [
                {
                  "path": "/hello",
                  "methods": ["GET"],
                  "backend": {
                     "type": "ORACLE_FUNCTIONS_BACKEND",
                     "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                  }
                }
              ]
            }
            451 chỉ định URI để truy xuất Bộ khóa Web JSON [JWKS] để sử dụng để xác minh chữ ký trên JWT. Để biết thêm thông tin về URI để chỉ định, hãy xem Chi tiết nhà cung cấp danh tính để sử dụng cho các Khiếu nại iss và aud và cho URI JWKS. Lưu ý những điều dưới đây
            • URI phải có thể định tuyến được từ mạng con chứa cổng API mà API được triển khai trên đó
            • Các URI yêu cầu xác thực hoặc ủy quyền để trả lại JWKS không được hỗ trợ
            • Nếu cổng API không truy xuất được JWKS, thì tất cả yêu cầu triển khai API sẽ trả về mã phản hồi HTTP 500. Tham khảo nhật ký thực thi của cổng API để biết thêm thông tin về lỗi [xem Thêm nhật ký vào triển khai API]
            • Một số tham số chính nhất định phải có trong JWKS để xác minh chữ ký của JWT [xem Tham số chính cần thiết để xác minh chữ ký JWT]
            • JWKS có thể chứa tối đa mười khóa
          • 
            {
              "requestPolicies": {},
              "routes": [
                {
                  "path": "/hello",
                  "methods": ["GET"],
                  "backend": {
                     "type": "ORACLE_FUNCTIONS_BACKEND",
                     "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                  }
                }
              ]
            }
            436 chỉ định số giờ [từ 1 đến 24] cổng API sẽ lưu JWKS vào bộ đệm sau khi truy xuất
          • 
            {
              "requestPolicies": {},
              "routes": [
                {
                  "path": "/hello",
                  "methods": ["GET"],
                  "backend": {
                     "type": "ORACLE_FUNCTIONS_BACKEND",
                     "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                  }
                }
              ]
            }
            434 cho biết có nên tắt xác minh SSL khi giao tiếp với nhà cung cấp danh tính hay không. Oracle khuyến nghị không đặt tùy chọn này thành
            
            {
              "requestPolicies": {},
              "routes": [
                {
                  "path": "/hello",
                  "methods": ["GET"],
                  "backend": {
                     "type": "ORACLE_FUNCTIONS_BACKEND",
                     "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                  }
                }
              ]
            }
            413vì nó có thể ảnh hưởng đến xác thực JWT. API Gateway trusts certificates from multiple Certificate Authorities issued for OCI IAM with Identity Domains, Oracle Identity Cloud Service [IDCS], Auth0, and Okta.

          For example

          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          83

        • If you specified

          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          31, the details to provide depend on the format of the key already issued by the identity provider [regardless of format, you can specify up to ten keys]

          • Nếu khóa tĩnh là Khóa web JSON, hãy chỉ định

            
            {
              "requestPolicies": {},
              "routes": [
                {
                  "path": "/hello",
                  "methods": ["GET"],
                  "backend": {
                     "type": "ORACLE_FUNCTIONS_BACKEND",
                     "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                  }
                }
              ]
            }
            470, chỉ định mã định danh của khóa tĩnh được sử dụng để ký JWT làm giá trị của tham số
            
            {
              "requestPolicies": {},
              "routes": [
                {
                  "path": "/hello",
                  "methods": ["GET"],
                  "backend": {
                     "type": "ORACLE_FUNCTIONS_BACKEND",
                     "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                  }
                }
              ]
            }
            471 và cung cấp giá trị cho các tham số khác để xác minh chữ ký của JWT

            For example

            
            {
              "requestPolicies": {},
              "routes": [
                {
                  "path": "/hello",
                  "methods": ["GET"],
                  "backend": {
                     "type": "ORACLE_FUNCTIONS_BACKEND",
                     "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                  }
                }
              ]
            }
            84

            Note that certain parameters must be present in the static key to verify the JWT's signature [see Key Parameters Required to Verify JWT Signatures]. Ngoài ra, xin lưu ý rằng

            
            {
              "requestPolicies": {},
              "routes": [
                {
                  "path": "/hello",
                  "methods": ["GET"],
                  "backend": {
                     "type": "ORACLE_FUNCTIONS_BACKEND",
                     "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                  }
                }
              ]
            }
            83 hiện là loại khóa duy nhất được hỗ trợ [
            
            {
              "requestPolicies": {},
              "routes": [
                {
                  "path": "/hello",
                  "methods": ["GET"],
                  "backend": {
                     "type": "ORACLE_FUNCTIONS_BACKEND",
                     "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                  }
                }
              ]
            }
            84]

          • Nếu khóa tĩnh là khóa công khai được mã hóa PEM, hãy chỉ định

            
            {
              "requestPolicies": {},
              "routes": [
                {
                  "path": "/hello",
                  "methods": ["GET"],
                  "backend": {
                     "type": "ORACLE_FUNCTIONS_BACKEND",
                     "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                  }
                }
              ]
            }
            474, chỉ định mã định danh của khóa tĩnh được sử dụng để ký JWT dưới dạng giá trị của
            
            {
              "requestPolicies": {},
              "routes": [
                {
                  "path": "/hello",
                  "methods": ["GET"],
                  "backend": {
                     "type": "ORACLE_FUNCTIONS_BACKEND",
                     "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                  }
                }
              ]
            }
            471 và cung cấp khóa dưới dạng giá trị của
            
            {
              "requestPolicies": {},
              "routes": [
                {
                  "path": "/hello",
                  "methods": ["GET"],
                  "backend": {
                     "type": "ORACLE_FUNCTIONS_BACKEND",
                     "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                  }
                }
              ]
            }
            476

            For example

            
            {
              "requestPolicies": {},
              "routes": [
                {
                  "path": "/hello",
                  "methods": ["GET"],
                  "backend": {
                     "type": "ORACLE_FUNCTIONS_BACKEND",
                     "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                  }
                }
              ]
            }
            85

            Lưu ý rằng các điểm đánh dấu

            
            {
              "requestPolicies": {},
              "routes": [
                {
                  "path": "/hello",
                  "methods": ["GET"],
                  "backend": {
                     "type": "ORACLE_FUNCTIONS_BACKEND",
                     "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                  }
                }
              ]
            }
            85 và
            
            {
              "requestPolicies": {},
              "routes": [
                {
                  "path": "/hello",
                  "methods": ["GET"],
                  "backend": {
                     "type": "ORACLE_FUNCTIONS_BACKEND",
                     "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                  }
                }
              ]
            }
            86 là bắt buộc

      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        461 tùy chọn chỉ định tên và giá trị xác nhận quyền sở hữu bổ sung cho một hoặc nhiều xác nhận quyền sở hữu bổ sung để xác thực trong JWT [tối đa là mười]
        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          444 là tên của một xác nhận quyền sở hữu có thể hoặc phải được đưa vào JWT. Tên khiếu nại bạn chỉ định có thể là tên khiếu nại dành riêng, chẳng hạn như khiếu nại chủ đề [
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          44] hoặc tên khiếu nại tùy chỉnh do nhà cung cấp danh tính cụ thể cấp
        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          446 [tùy chọn] chỉ ra một hoặc nhiều giá trị được chấp nhận cho yêu cầu bồi thường
        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          447 cho biết liệu yêu cầu có phải được đưa vào JWT hay không

        Lưu ý rằng bất kỳ tên khóa và giá trị nào bạn nhập chỉ được xử lý dưới dạng chuỗi và phải khớp chính xác với tên và giá trị trong JWT. Khớp mẫu và các kiểu dữ liệu khác không được hỗ trợ

      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        417 tùy ý chỉ định chênh lệch thời gian tối đa giữa đồng hồ hệ thống của nhà cung cấp danh tính đã cấp JWT và cổng API. The value you specify is taken into account when the API gateway validates the JWT to determine whether it is still valid, using the not before [
        
        {
          "requestPolicies": {
            "authentication": {
              "type": "TOKEN_AUTHENTICATION",
              : ,
              "tokenAuthScheme": "",
              "isAnonymousAccessAllowed": ,
              "maxClockSkewInSeconds": ,
              "validationPolicy": {},
            }
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        6] claim [if present] and the expiration [
        
        {
          "requestPolicies": {
            "authentication": {
              "type": "TOKEN_AUTHENTICATION",
              : ,
              "tokenAuthScheme": "",
              "isAnonymousAccessAllowed": ,
              "maxClockSkewInSeconds": ,
              "validationPolicy": {},
            }
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        3] claim in the JWT. The minimum [and default] is
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        99, the maximum is
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        80

      Ví dụ: chính sách

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      400 sau đây định cấu hình cổng API bằng khóa xác minh công khai đã được nhà cung cấp danh tính cấp để xác thực JWT trong tiêu đề yêu cầu Ủy quyền

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      86

  2. Thêm chính sách yêu cầu

    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    416 cho từng tuyến trong đặc tả triển khai API

    1. Chèn phần

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      08 sau phần
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      845 của tuyến đầu tiên, nếu phần này chưa tồn tại. Ví dụ

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      87

    2. Thêm chính sách

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      416 sau vào phần
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      08

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      88

      ở đâu

      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        848 cho biết cách cấp quyền truy cập vào tuyến đường

        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          849. Chỉ cấp quyền truy cập cho người dùng cuối đã được xác thực thành công. Trong trường hợp này, thuộc tính
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          850 trong chính sách
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          400 của đặc tả triển khai API không có hiệu lực
        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          852. Chỉ cấp quyền truy cập cho người dùng cuối đã được xác thực thành công, với điều kiện là yêu cầu
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          2 của JWT bao gồm một trong các phạm vi truy cập mà bạn chỉ định trong thuộc tính
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          854. Trong trường hợp này, thuộc tính
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          850 trong chính sách
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          400 của đặc tả triển khai API không có hiệu lực
        • 
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          415. Cấp quyền truy cập cho tất cả người dùng cuối, ngay cả khi họ chưa được xác thực thành công. Trong trường hợp này, bạn phải đặt rõ ràng thuộc tính
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          850 thành
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          413 trong chính sách
          
          {
            "requestPolicies": {},
            "routes": [
              {
                "path": "/hello",
                "methods": ["GET"],
                "backend": {
                   "type": "ORACLE_FUNCTIONS_BACKEND",
                   "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
                }
              }
            ]
          }
          400 của đặc tả triển khai API
      • 
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        861 là danh sách được phân tách bằng dấu phẩy gồm một hoặc nhiều chuỗi tương ứng với phạm vi truy cập được bao gồm trong yêu cầu bồi thường
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        2 của JWT. Trong trường hợp này, bạn phải đặt thuộc tính
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        414 thành
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        852 [thuộc tính
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        865 bị bỏ qua nếu thuộc tính
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        414 được đặt thành
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        849 hoặc
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        415]. Cũng lưu ý rằng nếu bạn chỉ định nhiều hơn một phạm vi, thì quyền truy cập vào tuyến đường sẽ được cấp nếu bất kỳ phạm vi nào bạn chỉ định được bao gồm trong yêu cầu bồi thường
        
        {
          "requestPolicies": {},
          "routes": [
            {
              "path": "/hello",
              "methods": ["GET"],
              "backend": {
                 "type": "ORACLE_FUNCTIONS_BACKEND",
                 "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
              }
            }
          ]
        }
        2 của JWT

      Ví dụ: chính sách yêu cầu sau xác định tuyến đường

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      06 chỉ cho phép người dùng cuối được xác thực với phạm vi
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      03 truy cập vào tuyến đường đó

      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      89

    3. Thêm chính sách yêu cầu
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      416 cho tất cả các tuyến còn lại trong đặc tả triển khai API

    Lưu ý

    Nếu bạn không bao gồm chính sách

    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    416 cho một tuyến đường cụ thể, quyền truy cập sẽ được cấp như thể chính sách đó tồn tại và thuộc tính
    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    414 được đặt thành
    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    849. Nói cách khác, bất kể cài đặt của thuộc tính
    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    876 trong chính sách
    
    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
             "type": "ORACLE_FUNCTIONS_BACKEND",
             "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
    400 của đặc tả triển khai API.

    • chỉ người dùng cuối được xác thực mới có thể truy cập tuyến đường
    • tất cả người dùng cuối được xác thực có thể truy cập tuyến đường bất kể phạm vi truy cập trong yêu cầu bồi thường
      
      {
        "requestPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
      2 của JWT
    • người dùng cuối ẩn danh không thể truy cập tuyến đường

  3. Lưu tệp JSON chứa thông số kỹ thuật triển khai API
  4. Sử dụng đặc tả triển khai API khi bạn tạo hoặc cập nhật triển khai API theo các cách sau

    • bằng cách chỉ định tệp JSON trong Bảng điều khiển khi bạn chọn tùy chọn Tải lên API hiện có
    • bằng cách chỉ định tệp JSON trong yêu cầu tới Cổng API API REST

    Để biết thêm thông tin, hãy xem Triển khai API trên Cổng API bằng cách Tạo Triển khai API và Cập nhật Cổng API và Triển khai API

  5. [Tùy chọn] Xác nhận API đã được triển khai thành công bằng cách gọi API đó [xem Gọi một API được triển khai trên Cổng API]

This section shows an example of an existing JWT_AUTHENTICATION request policy migrated to a TOKEN_AUTHENTICATION policy

One way to approach the migration is to create an empty TOKEN_AUTHENTICATION request policy, and then populate it with values from the JWT_AUTHENTICATION request policy

Trước khi di chuyển

The original JWT_AUTHENTICATION request policy, before migration


{
  "requestPolicies": {},
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
         "type": "ORACLE_FUNCTIONS_BACKEND",
         "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}
89

Sau khi di chuyển

Chính sách yêu cầu TOKEN_AUTHENTICATION mới được phổ biến với các giá trị từ chính sách yêu cầu JWT_AUTHENTICATION ban đầu

How to implement JWT in AWS API Gateway?

Định cấu hình điểm cuối HTTP bằng trình ủy quyền JWT .
Chuyển đến bảng điều khiển quản lý Cổng API và chọn Tạo API. .
Chọn API HTTP và chọn Xây dựng. .
Trong Tạo và định cấu hình tích hợp, hãy nhập JWTAuth cho tên API, rồi chọn Xem lại và tạo. .
Khi bạn đã tạo API JWTAuth, hãy chọn Tuyến đường ở khung bên trái

Làm cách nào mã thông báo JWT được xác thực trong Microservices?

Mỗi microservice sẽ xác thực JWT mà nó nhận được và sau đó đối với các lệnh gọi dịch vụ xuôi dòng, nó có thể tự tạo JWT mới được ký và gửi cùng với yêu cầu. Ngoài ra, một cách tiếp cận khác là sử dụng JWT lồng nhau — vì vậy JWT mới cũng sẽ mang JWT trước đó.

Cổng API có xử lý xác thực không?

API Gateway hỗ trợ nhiều phương thức xác thực phù hợp với các ứng dụng và trường hợp sử dụng khác nhau. API Gateway sử dụng phương thức xác thực mà bạn chỉ định trong cấu hình dịch vụ của mình để xác thực các yêu cầu gửi đến trước khi chuyển chúng đến chương trình phụ trợ API của bạn.

JWT có tốt cho xác thực API không?

Xác thực API dựa trên JWT là một lựa chọn tốt để bảo mật các vi dịch vụ trong một tổ chức hoặc chia sẻ API với một số loại ứng dụng bên ngoài nhất định . Mã thông báo JWT thường không thể hủy bỏ. Để thu hồi mã thông báo JWT, bạn thường phải cuộn các bí mật của khách hàng đó - điều này sẽ vô hiệu hóa TẤT CẢ mã thông báo JWT hiện được phát hành.

Chủ Đề