Versions (relevant - OpenSearch/Dashboard/Server OS/Browser): 3.1.0
Describe the issue:
I am able to deploy the opensearch-values.yaml and opensearch-dashboards-values.yaml through argocd.
opensearch-values.yaml:
imagePullSecrets:
- name: logging-reg-jfrog
image:
repository:
tag: 2.13.0
pullPolicy: Always
persistence:
enabled: true
storageClass: “”
size: 30Gi
image:
imageTag: latest
sysctlInit:
enabled: true
image:
imageTag: latest
command: [“sysctl”, “-w”, “vm.max_map_count=262144”]
securityContext:
privileged: true
extraEnvs:
- name: DISABLE_INSTALL_DEMO_CONFIG
value: “true” - name: DISABLE_SECURITY_PLUGIN
value: “false” - name: OPENSEARCH_INITIAL_ADMIN_PASSWORD
valueFrom:
secretKeyRef:
name: opensearch-auth-secret
key: password - name: CLIENT_ID
valueFrom:
secretKeyRef:
name: os-client-id-secret
key: client-id - name: CLIENT_SECRET
valueFrom:
secretKeyRef:
name: os-client-id-secret
key: client-secret
opensearchJavaOpts: “-Xms1g -Xmx1g”
securityConfig:
enabled: true
path: /usr/share/opensearch/config/opensearch-security
actionGroupsSecret: os-action-groups-secret
configSecret: os-config-secret
internalUsersSecret: os-internal-users-secret
rolesSecret: os-roles-secret
rolesMappingSecret: os-roles-mapping-secret
tenantsSecret: os-tenants-secret
extraVolumes:
-
name: opensearch-tls
secret:
secretName: opensearch-tls -
name: saml-metadata
secret:
secretName: saml-metadata
extraVolumeMounts:
-
name: opensearch-tls
mountPath: /usr/share/opensearch/config/certs
readOnly: true -
name: saml-metadata
mountPath: /usr/share/opensearch/config/metadata_file.xml
subPath: metadata_file.xml
readOnly: true
config:
opensearch.yml: |
plugins.security.ssl.transport.enabled: true
plugins.security.ssl.transport.pemcert_filepath: /usr/share/opensearch/config/certs/tls.crt
plugins.security.ssl.transport.pemkey_filepath: /usr/share/opensearch/config/certs/tls.key
plugins.security.ssl.transport.pemtrustedcas_filepath: /usr/share/opensearch/config/certs/ca.crt
plugins.security.ssl.transport.enforce_hostname_verification: false
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemcert_filepath: /usr/share/opensearch/config/certs/tls.crt
plugins.security.ssl.http.pemkey_filepath: /usr/share/opensearch/config/certs/tls.key
plugins.security.ssl.http.pemtrustedcas_filepath: /usr/share/opensearch/config/certs/ca.crt
plugins.security.nodes_dn:
- "CN=opensearch-cluster-master.logging.svc.cluster.local"
- "CN=opensearch-cluster-master"
- "CN=opensearch-cluster-master.logging"
- "CN=opensearch-cluster-master.logging.svc"
resources:
requests:
cpu: “500m”
memory: “2Gi”
limits:
cpu: “1”
memory: “4Gi”
opensearch-dashboards-values.yaml:
imagePullSecrets:
- name: logging-reg-jfrog
image:
repository:
tag: 2.13.0
pullPolicy: Always
replicaCount: 1
opensearchHosts: “opensearch-cluster-master.logging.svc.cluster.local:9200”
resources:
requests:
cpu: “100m”
memory: “512Mi”
limits:
cpu: “100m”
memory: “512Mi”
service:
type: ClusterIP
port: 5601
ingress:
enabled: true
ingressClassName: nginx
hosts:
- host: opensearch.int.app
paths: - path: /
pathType: Prefix
backend:
service:
name: opensearch-dashboards
port:
number: 5601
tls: - secretName: opensearch-dashboards-cert
hosts: - opensearch.
extraEnvs:
- name: OPENSEARCH_USERNAME
valueFrom:
secretKeyRef:
name: opensearch-auth-secret
key: username - name: OPENSEARCH_PASSWORD
valueFrom:
secretKeyRef:
name: opensearch-auth-secret
key: password - name: CLIENT_ID
valueFrom:
secretKeyRef:
name: os-client-id-secret
key: client-id - name: CLIENT_SECRET
valueFrom:
secretKeyRef:
name: os-client-id-secret
key: client-secret
config:
opensearch_dashboards.yml: |
server.host: “0.0.0.0”
opensearch.hosts: [ “opensearch-cluster-master.logging.svc.cluster.local:9200” ]
opensearch.ssl.verificationMode: none
opensearch.username: “${OPENSEARCH_USERNAME}”
opensearch.password: “${OPENSEARCH_PASSWORD}”
opensearch_security.auth.multiple_auth_enabled: true
opensearch_security.auth.type: [“saml”,“basicauth”]
opensearch.requestHeadersWhitelist: [authorization, securitytenant]
server.xsrf.allowlist: [“/_opendistro/_security/saml/acs/idpinitiated”, “/_opendistro/_security/saml/acs”, “/_opendistro/_security/saml/logout”]
opensearch_security.multitenancy.enabled: true
opensearch_security.multitenancy.tenants.enable_global: true
opensearch_security.multitenancy.tenants.enable_private: true
opensearch_security.multitenancy.tenants.preferred: [“Private”, “Global”]
extraVolumes:
- name: opensearch-ca-cert
secret:
secretName: opensearch-tls
extraVolumeMounts:
- name: opensearch-ca-cert
mountPath: /usr/share/opensearch-dashboards/config/certs
readOnly: true
Configuration:
apiVersion: v1
kind: Secret
metadata:
name: os-config-secret
namespace: logging
type: Opaque
stringData:
config.yml: |-
_meta:
type: “config”
config_version: 2
config:
dynamic:
http:
anonymous_auth_enabled: false
authc:
basic_internal_auth_domain:
description: "Authenticate via HTTP Basic against internal users database"
http_enabled: true
transport_enabled: true
order: 0
http_authenticator:
type: basic
challenge: false
authentication_backend:
type: internal
saml_auth_domain:
http_enabled: true
transport_enabled: false
order: 1
http_authenticator:
type: saml
challenge: true
config:
idp:
metadata_file: /usr/share/opensearch/config/metadata_file.xml
entity_id: "https://sts.windows.net/xxxx"
sp:
entity_id: "opster-ad-sso"
acs: "https://opensearch.int.app.xxxx.com/_opendistro/_security/saml/acs"
kibana_url: "https://opensearch.int.app.xxxx.com"
# Use forum-recommended mapping:
roles_key: http://schemas.xmlsoap.org/ws/2008/06/identity/claims/groups
subject_key: http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
exchange_key: "f1348xxxx"
authentication_backend:
type: noop
Relevant Logs or Screenshots:
Error: failed parsing SAML config
at SecurityClient.getSamlHeader (/usr/share/opensearch-dashboards/plugins/securityDashboards/server/backend/opensearch_security_client.ts:212:15)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at /usr/share/opensearch-dashboards/plugins/securityDashboards/server/auth/types/saml/routes.ts:78:30
at Router.handle (/usr/share/opensearch-dashboards/src/core/server/http/router/router.js:174:44)
at handler (/usr/share/opensearch-dashboards/src/core/server/http/router/router.js:140:50)
at exports.Manager.execute (/usr/share/opensearch-dashboards/node_modules/@hapi/hapi/lib/toolkit.js:60:28)
at Object.internals.handler (/usr/share/opensearch-dashboards/node_modules/@hapi/hapi/lib/handler.js:46:20)
Edg/139.0.0.0",“referer”://opensearch.int.app.xxx.com/auth/saml/captureUrlFragment?nextUrl=%2F"},“res”:{“statusCode”:500,“responseTime”:77,“contentLength”:9},“message”:"GET /auth/saml/login?nextUrl=%2F&redirectHash=false 500 77ms - 9.0B”}
{“type”:“response”,“@timestamp”:"2025-09-02T12:22