Api Connect - определите свою безопасность для каждого пути - PullRequest
0 голосов
/ 17 мая 2018

У меня есть приложение для работы с узлами / экспрессами, которое отображает API с помощью IBM ApiConnect в IBM Cloud.

== НАЧАЛО ОБНОВЛЕНИЯ ==

Я не использую IBM ApiConnect напрямую из службы каталогов, но я использовал опцию "Api Management" и обновил определение API

== ОБНОВЛЕНИЕ КОНЕЦ ==

Мне нужно определить два типа API безопасности: Open API и Secured Api . Первый должен быть открытым, а второй - Client Id и Client Secret.

Я не могу правильно определить это требование, кто-то может мне помочь?

== НАЧАЛО ОБНОВЛЕНИЯ ==

/ обратный вызов / знак должен быть открыт

/ услуги / продукты должны быть защищенными

== ОБНОВЛЕНИЕ КОНЕЦ ==

Это мой yaml в разделах:

Определение безопасности на уровне API

securityDefinitions:
  client_secret:
    type: apiKey
    description: ''
    in: header
    name: X-Client-Secret
  client_id:
    type: apiKey
    description: ''
    in: header
    name: X-Client-Id
security:
  - client_secret: []
    client_id: []

и, наконец, определение пути:

paths:
  /callback/sign:
    get:
      responses:
        '200':
          description: 200 OK
      security:
        - {}
    post:
      responses:
        '200':
          description: 200 OK
      parameters:
        - name: body
          required: false
          in: body
          schema:
            type: object
      security:
        - {}
  /services/products:
    get:
      responses:
        '200':
          description: 200 OK

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Если вы хотите установить безопасность по умолчанию, но затем переопределить ее для одного или нескольких путей / операций, «no security» / «open» следует кодировать как

security: []

вместо

security: - {}

0 голосов
/ 17 мая 2018

Я бы порекомендовал использовать для этого визуальный редактор.Исходя из вашего примера, вот как должен выглядеть ваш файл yaml:

  paths:
      /callback/sign:
        get:
          responses:
            '200':
              description: 200 OK
        post:
          responses:
            '200':
              description: 200 OK
          parameters:
            - name: body
              required: false
              in: body
              schema:
                type: object
      /services/products:
        get:
          responses:
            '200':
              description: 200 OK
          security:
            - client_id: []
              client_secret: []
...