Atlassian Data Center アプリケーション向け SAML シングルサインオン
セキュリティ アサーション マークアップ言語 (SAML) は、サービスに対し、アイデンティティ プロバイダー (IdP) との認証データの交換を許可する XML ベースのデータ形式です。最も一般的な使用事例は、ユーザーに対し、同じ認証情報 (通常はユーザー名とパスワード) を使用して、複数のソフトウェア アプリケーションへのサインインを許可することです。これを、シングルサインオン (SSO) と言います。
アトラシアンは、次のアプリケーションに対してユーザーへの SSO の提供のために IdP への接続を許可する、SSO 2.0 アプリを提供しています。
- Jira Software Data Center 7.2
- Jira Service Desk Data Center 7.2
- Bitbucket Data Center 4.10
- Confluence Data Center 6.1
SSO 2.0 は Jira 7.3、Confluence 6.1、および Bitbucket 4.13 以降には組み込まれています。これらのバージョンでは、Marketplace からインストールする必要はありません。
SSO 2.0 は認証のみを処理します。アプリケーション アクセスやその他の必要な認証 (ユーザーが適切なグループ / ロールに所属し、必要な権限を持っていることの確認など) は、ユーザー ディレクトリおよびアプリケーション自体で構成する必要があります。
サポートされるアイデンティティ プロバイダー
SAML SSO 2.0 をインストールしたら、 HTTP POST バインディングを使用して、SAML 2.0 Web Browser SSO プロファイルを実装する任意のアイデンティティ プロバイダーとソリューションを連携させることができます。または、認証を Crowd に委任できます。
現在、次のアイデンティティ プロバイダー (IdP) でテストを実行しています。
- Microsoft Azure Active Directory
- Microsoft Active Directory (ADFS 3.0 を使用)
- Bitium
- Okta
- OneLogin
- PingIdentity
シングルサインオンのセットアップ
SSO 2.0 をインストールしたら、ユーザーの Jira へのログイン方法として、Crowd を使用するか、任意のアイデンティティ プロバイダを使用するかを判断する必要する必要があります。その後、ユーザーにシングル サインオン (SSO) を提供するために、Data Center と IdP を構成する必要があります。
アイデンティティ プロバイダーのセットアップ
アプリケーションで SSO を提供する場合は、そのアプリケーションを IdP に追加する必要があります。正確なプロセスは IdP に応じて異なりますが、通常は以下が必要です。
- IdP で「アプリケーション」を定義する
- アプリケーションに関する情報 (アプリケーションの「認証」画面でアクセスできる情報を含む) を提供する
- IdP のユーザーの NameID 属性が、アトラシアン アプリケーションでユーザー名に設定されていることを確認する
- アプリケーションを使用する適切なユーザー パーミッションを提供する
セットアップ プロセスの最後に、IdP から、アトラシアン アプリケーションの構成に必要なデータ セットが提供されます。
アトラシアン アプリケーションで SSO 2.0 を構成する
- SSO 画面に移動します。
- Jira アプリケーションの場合、 > [システム] > [SSO 2.0 認証] を選択します。
- Bitbucket の場合、 > [アカウント] > [SSO 2.0 認証] を選択します。
- ユーザーに Crowd と IdP のどちらを使用したログインを提供するかを決定します。
- 自分の IdP を使用する場合、[SAML シングル サインオン] を選択します。
次の設定を構成する:
設定 注意 シングルサインオン発行者
この値は、SAML 設定の一部として、IdP によって提供されます。「エンティティ ID」と呼ばれることもあります。
発行者は、アプリケーションが認証リクエストを承認することになる IdP です。
アイデンティティ プロバイダー シングルサインオン URL
この値は、SAML 設定の一部として、IdP によって提供されます。
ログイン時にユーザーがリダイレクトされる URL を定義します。
X.509 証明書
この値は、SAML 設定の一部として、IdP によって提供されます。「サインイン証明書」と表されることもあります。キーは通常 '-----BEGIN CERTIFICATE-----' で開始します。
これには、受信したすべての SAML 認証リクエストの発行元がお使いの IdP であることを検証するために使用するパブリック キーが含まれます。
ログイン モード
ユーザーによるシングルサインオンの使用方法を定義します。オプション:
- セカンダリ認証として SAML を使用する – 既定のログイン方法は、標準アプリケーション ログイン フォームとなります。お使いの IdP へ移動してアプリケーションを選択するか、URL: BASE-URL/plugins/servlet/external-login を使用してログインすることができます。すべてが正しく構成され、ユーザーが SSO を使用してログインできることをテストするため、この方法をお勧めします。
- SAML をプライマリ認証として使用する – このモードでは、すべてのブラウザ ベース ユーザーはログインするため、アプリケーションのログイン画面から IdP にリダイレクトされます。引き続き以下を使用して認証することもできます:
- Basic Auth
- 専用 REST エンドポイントを介したフォーム ベースの認証
- 既存の「ログイン情報を記憶する」トークン
- Git HTTP(S) (for Bitbucket Server)
- Git SSH (for Bitbucket Server)
ユーザーのログイン情報を記録する 選択すると、ログイン情報が保存されるため、ユーザーは自動的にログインされます。 (Jira Service Desk のみ)
オンにした場合、カスタマー ポータルを使用した Service Desk の顧客からのすべてのログインは、構成済 IdP へリダイレクトされます。オフにした場合、顧客はカスタマー ポータルからログインする必要があります。 次の情報は「認証」画面で提供され、IdP の構成に必要となります。
設定名 注意 アサーション コンシューマー サービス URL IdP が SAML 認証リクエストを返す先となる URL です。
オーディエンス URL (エンティティ ID) IdP が SAML 認証リクエストを準備する URL です。
- 構成の保存をクリックします。
アプリケーションと IdP の両方を構成したら、SSO を使用する準備が整います。
べストプラクティス
- 認証プロセスのセキュリティとプライバシーを確保するため、アトラシアン アプリケーションと IdP の両方が互いの通信に HTTPS プロトコルを使用しており、構成されたアプリケーション ベースの URL が HTTPS になっていることを確認する必要があります。
- SAML 認証リクエストは、限られた回数のみ有効です。アトラシアン アプリケーションを実行しているサーバーの時刻が IdP と同期化されていることを確認する必要があります。
- お使いのアトラシアン アプリケーションのユーザーやグループが User Directories を使用して構成されている場合は通常、IdP とアトラシアン アプリケーションの両方で、同じ LDAP ディレクトリをユーザーのソースとして使用することになります。ユーザーは、SSO を使用してログインする前にユーザー ディレクトリ内に存在する必要があります。
トラブルシューティング
SAML 認証の構成で失敗したり、IdP を使用してログインできない場合は、DELETE リクエストを発行して (ユーザー ディレクトリで構成された管理者にユーザー名とパスワードを使用する)、ログイン フォーム認証を復元することができます。
curl -u admin_user:admin_password -X DELETE http://base-url/*ContextPathIfAny*/rest/authconfig/1.0/saml
- 認証エラーが発生した場合、ユーザーには、うまくいかなかった点に関する基本的な詳細のみが表示されます。セキュリティ上の理由から、元となる問題に関する詳細は表示されません。アプリケーション ログで問題の原因を確認する必要があります。
- IdP によってエラーが表示される場合があります。これらの場合、アトラシアン サポートではなく、IdP によって提供されたサポートやツールを使用する必要があります。
- SAML をプライマリ認証として使用しており、アプリケーションで CAPTCHA が有効になっている場合、HTTP 基本認証を使用しているユーザーは (たとえば、REST リソース コールや、Bitbucket で Git HTTPS を使用している場合)、間違ったパスワードを既定回数を超えて入力すると、ロックアウトされる場合があります。このような場合、ユーザー リスト画面でユーザーの CAPTCHA をリセットする必要があります。
エラー ページにスタック トレース情報を表示させるには、次のフラグを使用します。
-Datlassian.darkfeature.atlassian.authentication.include.stacktrace.in.error.messages=true