Jira で NTLM 認証を使用できない

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

このページの内容は、Jira アプリケーションでサポートされていないプラットフォームに関連しています。したがって、アトラシアンは、そのためのサポートの提供を保証できません 。この資料は情報提供のみを目的としているため、お客様自身の責任でご使用ください。


症状

Jira 内で NTLM プロキシを統合しようとすると、次のいずれかが発生する可能性があります。

  1. Jira が Universal Plugin Manager を通じて Atlassian Marketplace にアクセスできなくなる
  2. Fisheye アプリ リンクが機能しない可能性がある
  3. サポート ツール (Hercules スキャン) が、必要なメタデータを取得できないため実行できなくなる
  4. 組み込みのフィードバックが機能しなくなる
  5. 「新着情報」ガジェットが情報を取得できなくなる
  6. 以下の JVM 引数が認識されない可能性がある
    -Dhttp.proxyHost
    -Dhttp.nonProxyHosts
    -Dhttp.proxyPort
    -Dhttp.proxyUser
    -Dhttp.proxyPassword
    -Dhttp.auth.ntlm.domain

atlassian-jira.log に次のエラーが返される。

2012-06-22 11:22:22,363 StreamsCompletionService::thread-3 ERROR bmills 681x247x6 1ku2b0i 10.128.49.73 /plugins/servlet/streams [apache.commons.httpclient.HttpMethodDirector] Credentials cannot be used for NTLM authentication: org.apache.commons.httpclient.UsernamePasswordCredentials
org.apache.commons.httpclient.auth.InvalidCredentialsException: Credentials cannot be used for NTLM authentication: org.apache.commons.httpclient.UsernamePasswordCredentials
	at org.apache.commons.httpclient.auth.NTLMScheme.authenticate(NTLMScheme.java:331)
	at org.apache.commons.httpclient.HttpMethodDirector.authenticateProxy(HttpMethodDirector.java:319)
	at org.apache.commons.httpclient.HttpMethodDirector.authenticate(HttpMethodDirector.java:231)
	at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:169)
	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:324)
	at com.atlassian.sal.core.net.HttpClientRequest.executeMethod(HttpClientRequest.java:479)
	at com.atlassian.sal.core.net.HttpClientRequest.executeAndReturn(HttpClientRequest.java:306)
	at com.atlassian.plugins.rest.module.jersey.JerseyRequest.executeAndReturn(JerseyRequest.java:158)
	at com.atlassian.applinks.core.auth.ApplicationLinkRequestAdaptor.execute(ApplicationLinkRequestAdaptor.java:85)
	at com.atlassian.streams.internal.AppLinksActivityProvider.fetch(AppLinksActivityProvider.java:416)
	at com.atlassian.streams.internal.AppLinksActivityProvider.access$200(AppLinksActivityProvider.java:96)
	at com.atlassian.streams.internal.AppLinksActivityProvider$1.call(AppLinksActivityProvider.java:178)
	at com.atlassian.streams.internal.AppLinksActivityProvider$1.call(AppLinksActivityProvider.java:170)
	at com.atlassian.streams.internal.FeedBuilder$ToFeedCallable$1.call(FeedBuilder.java:115)
	at com.atlassian.streams.internal.FeedBuilder$ToFeedCallable$1.call(FeedBuilder.java:110)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at com.atlassian.util.concurrent.LimitedExecutor$Runner.run(LimitedExecutor.java:96)
	at com.atlassian.sal.core.executor.ThreadLocalDelegateRunnable.run(ThreadLocalDelegateRunnable.java:34)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

原因

現在、Jira および Stash は、NTLM プロキシとの統合のすべての実装をサポートしているわけではありません。そのため、Jira の特定の領域においては、NTLM プロキシを使用すると完全には機能しません。詳細は、以下の課題を確認してください。

  • Fisheye:  FE-4164 - Getting issue details... STATUS  
  • JIRA: JRA-2398 - Getting issue details... STATUS
  • Universal Plugin Manager:  Unable to locate Jira server for this macro. It may be due to Application Link configuration.
  • Shared Access Layer:  Unable to locate Jira server for this macro. It may be due to Application Link configuration.

回避策

こちらこちらの過去のコメントでご確認いただけるように、次のような手順を利用することで成功することが報告されています。

  • Jira/Stash サーバーで Cntlm Authentication Proxy をローカルにインストールする
  • Cntlm が企業のNTLMで動作することを確認するために設定とテストを行い、パラメータを使用する

    Cntlm が NTLM で動作していることをテストする方法

    cntlm.ini でユーザー、ドメイン、およびプロキシ情報を更新し、次のコマンドでプロキシをテストします (Cntlm のインストール フォルダで実行します)。

    cntlm -c cntlm.ini -I -M http://google.ro
    

    パスワードが確認され、必要な認証情報が表示されるはずです。これは cntlm.ini に保存する必要があります。

    cntlm.ini の例

    Username            user
    Domain              domain
    
    # provide actual value if autodetection fails
    # Workstation         pc-name
    
    Proxy               my_proxy_server.com:80
    NoProxy             127.0.0.*, 192.168.*
    
    Listen              127.0.0.1:54321
    Listen              192.168.1.42:8080
    Gateway             no
    
    SOCKS5Proxy         5000
    # provide socks auth info if you want it
    # SOCKS5User          socks-user:socks-password
    
    # printed authentication info from the previous step
    Auth            NTLMv2
    PassNTLMv2      98D6986BCFA9886E41698C1686B58A09
    

    注: Linux の場合、構成ファイルは cntlm.conf です

  • Jira サーバーで使用するためにアウトバウンド プロキシを構成する」で説明されている構成が、代わりにローカルの「Cntlm」プロキシを指すようにします。これにより、そのプロキシが NTLM と通信する役割を果たします。

現在のところ、Fisheye 向けの他の回避策はありません。詳細は、FISH-436 を参照してください。


最終更新日 2021 年 7 月 23 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.