I dont see a way to attach a file, so will paste in text from the conf files
- Log in to post comments
I dont see a way to attach a file, so will paste in text from the conf files
Define SRVROOT "E:/Apache24" ServerRoot "${SRVROOT}"
#Listen 12.34.56.78:80 Listen 80
LoadModule actions_module modules/mod_actions.so LoadModule alias_module modules/mod_alias.so LoadModule allowmethods_module modules/mod_allowmethods.so LoadModule asis_module modules/mod_asis.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule authn_core_module modules/mod_authn_core.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authz_core_module modules/mod_authz_core.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule cgi_module modules/mod_cgi.so LoadModule dir_module modules/mod_dir.so LoadModule env_module modules/mod_env.so LoadModule include_module modules/mod_include.so LoadModule info_module modules/mod_info.so LoadModule isapi_module modules/mod_isapi.so LoadModule log_config_module modules/mod_log_config.so LoadModule mime_module modules/mod_mime.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule socache_shmcb_module modules/mod_socache_shmcb.so LoadModule ssl_module modules/mod_ssl.so LoadModule status_module modules/mod_status.so
ServerAdmin admin@example.com
ServerName localhost:80
DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs"> Options Indexes FollowSymLinks AllowOverride None Require all granted
#UseCanonicalName Off
<Files ".ht*"> Require all denied </Files>
ErrorLog "logs/error.log"
LogLevel warn
<IfModule logio_module>
# You need to enable mod_logio.c to use %I and %O
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
#
# The location and format of the access logfile (Common Logfile Format).
# If you do not define any access logfiles within a <VirtualHost>
# container, they will be logged here. Contrariwise, if you *do*
# define per-<VirtualHost> access logfiles, transactions will be
# logged therein and *not* in this file.
#
CustomLog "logs/access.log" common
#
# If you prefer a logfile with access, agent, and referer information
# (Combined Logfile Format) you can use the following directive.
#
#CustomLog "logs/access.log" combined
<Directory "${SRVROOT}/cgi-bin"> AllowOverride None Options None Require all granted </Directory>
#
# AddType allows you to add to or override the MIME configuration
# file specified in TypesConfig for specific file types.
#
#AddType application/x-gzip .tgz
#
# AddEncoding allows you to have certain browsers uncompress
# information on the fly. Note: Not all browsers support this.
#
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz
#
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
#
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
#Include conf/extra/httpd-mpm.conf
#Include conf/extra/httpd-multilang-errordoc.conf
Include conf/extra/httpd-autoindex.conf
#Include conf/extra/httpd-languages.conf
#Include conf/extra/httpd-userdir.conf
Include conf/extra/httpd-info.conf
#Include conf/extra/httpd-manual.conf
#Include conf/extra/httpd-dav.conf
#Include conf/extra/httpd-default.conf
#------------------------------------------------------
LoadModule csp_module_sa "E:/InterSystems/CSPGateway/CSPa24.dll" LoadModule cspsys_module_sa "E:/Intersystems/CSPGateway/CSPa24Sys.dll" #LoadModule cspsys_module_sa "E:/InterSystems/HSGS/CSP/bin/CSPa24Sys.dll"
#ServerTokens Prod
Alias /csp/ "E:/InterSystems/HSGS/CSP/" <Location "/csp/bin/Systems/"> SetHandler csp-handler-sa </Location> <Location "/csp/bin/RunTime/"> SetHandler csp-handler-sa </Location> <Location /csp> CSP On SetHandler csp-handler-sa </Location> <Location "/oauth2"> CSP On SetHandler csp-handler-sa </Location>
<Directory "E:/InterSystems/HSGS/csp"> CSPFileTypes csp cls zen cxw AllowOverride None Options MultiViews FollowSymLinks ExecCGI Require all granted <FilesMatch ".(log|ini|pid|exe)$"> Require all denied </FilesMatch> </Directory>
##################################################################
Listen 443 https
SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2
SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:!RC4:!LOW:!MD5:!aNULL:!eNULL:!3DES:!EXP:!PSK:!SRP:!DSS
SSLHonorCipherOrder On
SSLPassPhraseDialog builtin
#SSLSessionCache "dbm:${SRVROOT}/logs/ssl_scache" SSLSessionCache "shmcb:${SRVROOT}/logs/ssl_scache(512000)" SSLSessionCacheTimeout 300
AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl
#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire <FilesMatch ".(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory "${SRVROOT}/cgi-bin"> SSLOptions +StdEnvVars </Directory>
BrowserMatch "MSIE [2-5]"
nokeepalive ssl-unclean-shutdown
downgrade-1.0 force-response-1.0
CustomLog "${SRVROOT}/logs/ssl_request.log"
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b" env=HTTPS
#<VirtualHost default:443>
#
#<VirtualHost *:443>
#
#<VirtualHost *:443>
#
There are many ways to setup apache, and what works for your situation may vary. My used a single instance of HealthShare, and two SMART applications that were hosted locally and served via CSP applications defined on my HealthShare instance. I was running on Windows.
I used binaries from ApacheHaus,
Download here - https://www.apachehaus.com/cgi-bin/download.plx .
Unzip and read the readme.
Download the c++ runtime https://www.microsoft.com/en-us/download/details.aspx?id=49984.
Install, restart
Test apache installation http://localhost
Generate certificates. I did this from HealthShare, but you can do it with openSSL, or other tools.
Configure the httpd.conf – change the server root, load the CSP modules, define the csp alias, create location entries, and create directory entries. I’ll attach the conf file I used.
Configure the httpd-ahssl.conf – load webserver cert and key, and CA cert. I’ll attached the file I used.
Configure CSP.ini to connect to HealthShare instance, need to make sure superserver port is correct, and username and password for the CSPService. I just pasted in the encoded string from CSP.ini from the private webserver configuration
Run apache as a service. From bin directory in Apache: httpd.exe -k install [-n “ServiceName”]
I recommend starting without SSL, so comment out the #include of httpd-ahssl.conf in the httpd.conf file. Test, then put the SSL back in and test.
For the SMART apps:
I setup /csp applications one for each application. You may want to do something different depending on your situation and the applications you are using.
Test that the web server routes to the apps.
You do need to have the common name in the cert match the host name.
My demo used SMART applications that I downloaded from SMARTHealthIT.org. I created csp application definitions to launch the SMART apps I had downloaded.
I guess Cache could fill a few different roles in back end services. I'll get back to you on that.
Hello,
There are several alternatives described in the standard. Check out section 4.3 and section 5 at this link http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html
I have seen an implementation of SSO where the information that would be in a SAML token is passed in http headers. This implementation used delegated authentication to sign in the user based on these http headers. This link is to documentation for delegated authentication https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GCAS_delegated
You might also consider using OAuth if you are using a REST interface. https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GOAUTH
I'm not at all familiar with this eCQM package, but I don't see any reason it wouldn't work on IRIS. Just import the code. The system interaction and device handling is where you would be most likely to encounter issues. The VistA Kernel encapsulates these and so insulates application code from those details. You may not encounter issues with Kernel but if you do, solving them would require an advanced level of VistA skills. I think the easiest/fastest path would be to just load it up and see what breaks. It may be that you can get your work done without any issues.
I guess it depends a little on what you mean by integrate. I know of a customer that has an application on Dynamics and uses Ensemble to integrate with some back end systems. Dynamics itself is very much tied it's data model. If you want to call out to another system for data to use in Dynamics, I think you'll want to look into best practices from Microsoft. But as a messaging platform, Ensemble should support most integration needs well. If you have a specific protocol or standard in mind you might verify that it is available in the adapters that ship with Ensemble.