Biztalk 2004 On One Virtual Machine: Friday, August 04, 2006
Biztalk 2004 On One Virtual Machine: Friday, August 04, 2006
Biztalk 2004 On One Virtual Machine: Friday, August 04, 2006
Error:
c:\depot4000\jupiter\source\private\mozart\source\setup\btscfg\btswmi.cpp(266)
: FAILED hr = c0c025b3
Solution:
The Solution is to provide the appropriate domain user accounts for BizTalk
configuration wizard, the installer should have access to the SQL Server BizTalk
databases. Initially I thought it might be some issue with the MSDTC network clients
which were already enabled, how ever it is purely based on the domain accounts
which were not yet been created on SQL Server and BizTalk machines..
Error:
Config error: Failed to deploy Biztalk system assembly... DefaultPipelines.dll
When running the config wizard for BizTalk2004 (on windows 2003) the following
error occurred:
Failed to deploy Biztalk system assembly "C:\Program Files\Microsoft BizTalk
Server 2004\Microsoft.BizTalk.DefaultPipelines.dll". Unspecified exception: Unable
to generate a temporary class (result=1).
error CS2001: Source file 'C:\WINDOWS\TEMP\dbqvusoe.0.cs' could not be found.
error CS2008: No inputs specified.
Solution:
The solution is to give the 'NETWORK SERVICE' user read and write access to the
c:\windows\temp directory.
It’s been in my mind since last year but due to the hectic schedule couldn’t make it,
Since there is not enough information available on the sFTP adapters for BizTalk,
thought would post this one, This document is more focused on the BizTalk side
rather than SSH, however I have provided some basic background information on
SSH servers and clients using the RSA key based authentication.
Requirement:
Transfer files to and from Secure Shell (SSH) Enabled servers, need to implement
using sFTP protocol,
Explanation:
BizTalk 2004/2006 doesn’t have any built in support for sFTP adapters, they only
support traditional FTP adapters, hence we are only left with two options, either we
need to develop our own custom adapters for sFTP or purchase it from other clients,
I went ahead using the /n software SFTP Adapter, this lets you add sFTP adapter
using the configuration settings, and transfer files remotely using sFTP, also has the
feature to implement RSA Key based authentication using public and private keys,
which I would be explaining later, http://www.nsoftware.com/products/biztalk/
Let me give you some background information for sFTP, where it is used, and how to
implement it.
The /n software SFTP Adapter uses the SFTP protocol to transfer files to and from
Secure Shell (SSH) Enabled servers. Using the adapter is identical to using the /n
software FTPS Adapter, requiring only that you supply a server to connect to, user
name, and password. As with the FTPS Adapter, simply bind your port to a BizTalk
Orchestration and the SFTP Adapter will take care of the rest.
1. Send and receive files to/from BizTalk Adapters and any FTP or Secure Shell
(SSH) Enabled FTP server
2. Secure Shell (SSH) data protection
3. Secure Shell (SSH) - a low-level communications protocol
providing security via strong encryption and advanced
cryptography.
4. Secure Shell Public-Key Authentication ( RSA Key )
Installations:http://www.nsoftware.com/kb/tutorials/biztalksftpadapter.aspx#instal
l
Get the sFTP adapter, go ahead with the installations, once installation is complete,
you have to get the keys and activate it,
Once installation is done we need to register the adapter, which can be done using
the BizTalk Administration Console,
sFTP configuration:
Process: RSA key based authentication
A more secure method of authentication is through the use of RSA keys. The basic
principle is as follows. Each user generates a 1024bit public/private key pair,
Any host to which the user wants to connect must be aware of his public RSA key, as
the server uses it during the authentication process. The user must place his public
key living on the originating client machine, into his own authorized_keys file on the
server.
When he wants to connect to that server, ssh will first negotiate an encrypted session,
then send the server the client's public key. The server checks that the public key is in
the user's authorized_keys. If so, the server sends the client a challenge (a random
number encrypted with the user's public key). If the client can then send back the
random number unencrypted, it has just proven that it has the private key (there is
no other way to unencrypt the challenge number), and is therefore authentic.
The user's private key is a very sensitive piece of data - with it, anyone can connect to
any host on which the corresponding public key is in the authorized_keys. Therefore,
the user's private key is never written to disk unencrypted.
Public key authentication solves this problem. You generate a key pair, consisting of
a public key (which everybody is allowed to know) and a private key (which you keep
secret and do not give to anybody). The private key is able to generate signatures. A
signature created using your private key cannot be forged by anybody who does not
have that key; but anybody who has your public key can verify that a particular
signature is genuine.
The Authentication layer uses one or more of the following authentication methods
to validate the user:
1. Password Authentication
2. RSA/DSA Public-Key Authentication
3. Kerberos Authentication
4. Host-based Client Authentication
We have focused only on the RSA Public-Key based Authentication in this process,
Procedure:
AddressURI:
Thats it!!!
SFTP:
"sftp is an interactive file transfer program, similar to ftp, which performs all
operations over an encrypted ssh transport".
SFTP is part of the OpenSSH standard. Along with SSH you have capabilities to use
commands such as SCP, SFTP, etc. So....SFTP is very secure because each packet is
encrypted and compressed while sending is taking place. It utilizes public key authentication
and compression. The Abbreviation SFTP nowadays invariably means Secure File Transfer
Protocol, however there is another protocol with the same abbreviation (Simple File Transfer
Protocol). So lets not get confused.
Why not just use FTP? Why should I use Secure FTP instead of FTP? Why is SFTP better
than FTP?
FTP (File Transfer Protocol) does not take any precautions to protect
information transmitted during a session. This includes your username, password,
and any files transmitted.
SFTP (Secure File Transfer Protocol) is a secure replacement for FTP (File Transfer
Protocol) based on the Secure Shell protocol. Unlike FTP, SFTP encrypts both commands
and data providing effective protection against common network security risks. SSH Client
and Server provide both command-line SFTP tools and a graphical user interface for
Windows users. SFTP encrypts the session, preventing the casual detection of your
username, password or anything you've transmitted.
The major reason for implementing SFTP versus FTP is security. FTP is not even remotely
secure. During an FTP session, your username and password are transmitted in clear text. If
someone is eavesdropping, it is not difficult for them to log your FTP username and
password.
In FTP all data is passed back and forth between the client and server without the use of
encryption. This makes it possible for an eavesdropper to listen in and retrieve your
confidential information including login details. With SFTP all the data is encrypted before it
is sent across the network.
SFTP is not the same as FTP/S; the latter implements the original FTP protocol through a
separately-created secure tunnel.
FTPS is a real ftp that uses TSL/SSL to encrypt the control session and if required the data
session. With FTPS the control session is always encrypted, but the data session might not be.
Why is this? Because with the control session encrypted the authentication is protected and
you always want this (normal ftp uses clear text). If you are NOT pre-encrypting the file, you
want the data session encrypted so that the file is encrypted while the data is in flight.
However, if you are pre-encrypting the file then you do not need to have the data connection
encrypted as you do not need to add the overhead of encrypting the data connection, since the
file is already encrypted. Understand that SFTP is SSH file transfer and FTPS is FTP with
SSL, FTPS is a file transport layer on top of SSL or TLS. The FTPS adds SSL-enabled FTP
send and receive capabilities, uses the FTP protocol to transfer files to and from SSL-enabled
FTP servers.
SCP (Secure Copy) is a non-interactive command-line tool for securely transmitting files
from a machine to another. It is a secure replacement for RCP and provides a similar
command-line syntax. SCP is strongly based on SFTP but is often a more suitable choice
when setting up unattended file transfers using scripts.
OpenSSH (http://www.openssh.com/)
1. OpenSSH is a free version of the SSH protocol suite. OpenSSH servers and clients are
available for both Unix and Windows.
2. OpenSSH has been ported to Windows with the popular CYGWIN utility. The project was
created by Network Simplicity (http://www.networksimplicity.com/)
SSH2 (http://www.ssh.com/)
1. SSH2 is a commercial version of SSH, with required license fees for commercial use
(noncommercial use is free). Commercial SSH clients/servers are available for both Windows
and Unix systems.
There are many client tools, you can use to connect to the SFTP servers, few of them I
was interested were Core FTP LE, putty.exe, freeSSHd.exe, FileZilla_Server-
0.9.12c.exe, Cygwin, WINSCP,
Your choice of an SSH client is highly dependant on the type of functionality required
for SSH. For example, if SSH is being deployed primarily for its file-transfer
capabilities, Core FTP/WinSCP and SSH Communications' SSH clients are probably
good choices. On the other hand, if SSH is being deployed for remote shell access via
an HTTP proxy server, the SecureCRT and PuTTY clients are probably good choices.
Lastly, if SSH is being deployed for remote access from undefined and uncontrolled
terminal locations, MindTerm is probably a good choice, since it offers SSH access
with the need of only a Web browser.