Интеграция Terraform Enterprise с Keycloak с использованием SAML - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь интегрировать Terraform Enterprise с Keycloak, используя SAML для SSO. Я слежу за процессом аутентификации, инициированным IdP. После успешной аутентификации при перенаправлении с Keycloak на TFE возникает следующая ошибка:

2020-03-30 22:51:06 [DEBUG] [b71be8e2-8e60-4077-9610-42519931802e]   saml: Auth errors: https://{my-tfe-host}/users/saml/metadata is not a valid audience for this Response - Valid audiences: terraform
2020-03-30 22:51:06 [INFO] [b71be8e2-8e60-4077-9610-42519931802e] {"method":"POST","path":"/","format":"html","status":500,"error":"Exceptions::Saml::ConfigurationError: https://{my-tfe-host}/users/saml/metadata is not a valid audience for this Response - Valid audiences: terraform","duration":33.9,"view":0.0,"db":1.25,"uuid":"b71be8e2-8e60-4077-9610-42519931802e","remote_ip":"22.247.0.16, 22.85.2.229","request_id":"b71be8e2-8e60-4077-9610-42519931802e","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:74.0) Gecko/20100101 Firefox/74.0","user":null}
2020-03-30 22:51:06 [FATAL] [b71be8e2-8e60-4077-9610-42519931802e]
Exceptions::Saml::ConfigurationError (https://{my-tfe-host}/users/saml/metadata is not a valid audience for this Response - Valid audiences: terraform):
  app/service-objects/saml/error_manager.rb:4:in `handle'
  app/controllers/concerns/has_authentication.rb:113:in `current_user'
  app/controllers/application_controller.rb:51:in `not_found'
  app/middleware/attach_rate_limit_headers.rb:11:in `call'
  app/middleware/catch_json_parse_errors.rb:10:in `call'
  app/middleware/log_started_request.rb:17:in `call'

При поиске вышеуказанной ошибки конфигурации аудитории в документации TFE / keycloak, а также в Интернете я не смог найти любое конкретное c решение, за исключением обновления URL-адреса аудитории из TFE в keycloak, но ничего о том, как и где обновлять в Keycloak.

Я создал новую область 'terraform' и клиент под этой областью в Keycloak со следующими свойствами в разделе «Настройки»:

Client ID: terraform
Client Protocol: SAML
Name ID Format: email
IDP Initiated SSO URL Name: terraform
Assertion Consumer Service POST Binding URL: https://{my-tfe-host}/users/saml/auth
Assertion Consumer Service Redirect Binding URL: <blank>
Root URL: <blank>
Valid Redirect URIs: <blank>
Base URL: <blank>
Master SAML Processing URL: <blank>
IDP Initiated SSO Relay State: <blank>
Logout Service POST Binding URL: <blank>
Logout Service Redirect Binding URL: <blank>

Я вижу следующую конфигурацию IdP, доступную в TFE, но не знаю, как и где ее установить в Keycloak.

ACS Consumer (Recipient) URL: https://{my-tfe-host}/users/saml/auth
Metadata (Audience) URL: https://{my-tfe-host}/users/saml/metadata
NameID Format: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
Single Sign-On URL: https://{my-keycloak-host}/auth/realms/terraform/protocol/saml/clients/terraform
Single Log-Out URL: https://{my-keycloak-host}/auth/realms/terraform/protocol/saml
IDP Certificate: {my-x509-certificate}
Username Attribute Name: username
Site Admin Attribute Name: SiteAdmin

Rest all the properties as default

Пожалуйста, дайте Я знаю, нужна ли какая-либо дополнительная информация, чтобы лучше понять проблему. Любая помощь или указатели, чтобы исправить это будет высоко ценится. Спасибо.

...