web-dev-qa-db-ja.com

外部開発者によるSSMSログイン

これが私の最初の質問なので、ご容赦ください!

オンプレミスのSQL Server 2016のインスタンスにログインする必要のある外部の会社があります。

ADログインがあり、これらは関連インスタンスにアクセスできる配布グループにあります。

自己証明書を作成してSQLサーバーにインストールし、それを使用して接続を暗号化し、ラップトップ(ドメイン外)にインストールしました。

状況をテストするために、ローカルラップトップログイン、ネットワークへのVPNを使用し、「runas/netonly/user .....」を使用してSSMSを実行します。ユーザーは、リモート開発者と同じ権限を持つドメインユーザーです。

接続しようとすると、

サーバーとの接続は正常に確立されましたが、ログインプロセス中にエラーが発生しました。 (プロバイダー:SSLプロバイダー、エラー:0-証明書チェーンは信頼されていない機関によって発行されました。)

証明書は信頼されていますが。

Trust Server Certificate SSMS接続オプションで「ユーザー ''のログインに失敗しました」と表示される

証明書を購入する必要があると思っていますが、誰かが同じような状況で異なる解決策を見つけた場合は、お知らせください。

ありがとう。

1
Waster

自己証明書を作成してSQLサーバーにインストールし、それを使用して接続を暗号化し、ラップトップ(ドメイン外)にインストールしました。

「自己証明書」とは、マシン上で作成された自己署名証明書、またはドメイン(おそらくドメインコントローラー)上のプライベート認証局によって作成された証明書を意味しますか?

私はあなたが内部CAによって発行された証明書を意味していると想定しているので、CAの公開鍵をラップトップの信頼されたルート証明機関ストアにインストールして、証明書のアイデンティティをサードパーティが検証できるようにする必要があります(内部CA)。ドメインに参加しているマシンでは、これは自動的に行われますが、ラップトップはドメインに参加していないため、信頼できるCAとして内部CAがない場合があります。

また、SSMSをドメインユーザーとして実行しているため、SQL Server証明書が現在のユーザーストアではなくローカルコンピューターの証明書ストアにインストールされていることを確認してください。そうしないと、runasユーザーにはSQL Server証明書が表示されません。

最後に、証明書がMicrosoft here で定義されている要件を満たしていることを確認し、SQL ServerがSQL Server構成マネージャーで暗号化を強制するように構成されていることを確認します。

これが完了したら、ドメインに参加しているマシンまたはワークステーションからSQLに接続し、接続が暗号化されていることを確認します。

SELECT encrypt_option FROM sys.dm_exec_connections WHERE session_id = @@SPID

暗号化されている場合はtrueを、暗号化されていない場合はfalseを返します。ドメインに参加しているマシンで暗号化が機能することを確認したら、非ドメインラップトップからテストします。

1
HandyD

すべてのコメントをありがとうございました-特にHandyDは、注目されました!

答えは、ドメインコントローラーで証明書を作成することでしたが、これには少し驚きました。証明書などに精通していないのです。

DCが権威として認められるとは思いもしませんでした。

0
Waster