アトラシアンの Data Center アプリケーションで OpenID Connect を使用する
OpenID Connect は、OAuth 2.0 プロトコルを元にしたアイデンティティ レイヤーです。これにより、クライアント アプリケーションは OpenID Connect Provider が実行する認証に依存してユーザーの ID を検証できます。クライアントでは、相互にやり取り可能かつ REST のような方法で、ユーザーの基本的なプロファイル情報を OpenID Connect Provider から取得することもできます。
アトラシアンでは、Atlassian Data Center のアプリが IdP に接続してユーザーに SSO を提供できるようにする、SSO for Atlassian Data Center アプリを提供しています。
このページでは、次の製品で利用できる最新の SSO 機能を説明します。
Jira Software Data Center 8.15 以降
Bitbucket Data Center 7.12 以降
Confluence Data Center 7.12 以降
Bamboo Data Center 8.1 以降
以前のバージョンまたは Server 製品では、機能が制限される場合があります。ご利用の SSO アプリをアップグレードできるかどうかを確認するか、管理の「SSO 2.0」で SSO の機能を見つけます。
OpenID Connect は認証のみを処理します。アプリケーション アクセスや必要な認証 (ユーザーが適切なグループ / ロールに所属し、必要な権限を持っていることの確認など) は、ユーザー ディレクトリやアプリケーション自体で構成する必要があります。
OpenID Connect シングル サインオンのセットアップ
OpenID Connect シングル サインオン (SSO) のセットアップ前に、ユーザーがアトラシアン アプリケーションか選択したアイデンティティ プロバイダーのどちらにログインするかを決める必要があります。その後、ユーザーにシングル サインオン (SSO) を提供するために IdP を設定する必要があります。
アイデンティティ プロバイダーのセットアップ
アプリケーションで SSO を使用する場合、それを IdP に追加する必要があります。正確なプロセスは IdP に応じて異なりますが、通常は以下が必要です。
IdP で "アプリケーション" を定義します。
アプリケーションに関するデータ (アプリケーションの認証方法画面でアクセスできるデータを含む) を入力します。
初期設定では、アトラシアン アプリケーションは sub 要求および openid スコープでユーザー名を検索します。ユーザー名を渡すスコープ内で IdP が別の要求を使用している場合は、アトラシアン アプリケーションの [ユーザー名要求] と [カスタム スコープ] の各設定でそれらを指定します。詳細については「OpenID Connect によって Okta と統合する」をご参照ください。
アプリケーションを使用する適切なユーザー権限を提供する
セットアップ プロセスの最後に、IdP から、Atlassian アプリケーションの構成に必要なデータ セットが提供されます。
アトラシアン アプリケーションで OpenID Connect SSO を設定する
[認証方法] 画面を開くには、次の手順に従います。
Jira アプリケーションの場合は、 > [システム] > [認証方法] の順に選択します。
Bitbucket の場合は、 > [アカウント] > [認証方法] の順に選択します。
- Bamboo の場合は、 > [セキュリティ] > [認証方法] の順に選択します。
Confluence で、 > [一般設定] > [ユーザー & セキュリティ] > [認証方法] の順に選択します。
[設定を追加] を選択します。
設定に一意の名前を作成します。
[認証方法] メニューから [OpenID Connect シングル サインオン] を選択します。
次の OpenID Connect 設定を行います。
設定
詳細
発行者 URL
OpenID Provider の完全な URL。
クライアント ID
OpenID Provider で登録されたクライアント識別子。
クライアント シークレット
クライアント シークレットは、、OpenID Provider に対してクライアント アプリケーションを認識するよう、クライアント ID と組み合わせて使用されます。
ユーザー名のマッピング
IdP からの属性。ユーザーを一意に識別して Jira のユーザー名にマッピングできます。たとえば、${NameID} と入力すると、IdP からのこの属性の値がユーザー名として使用されます。IdP ドキュメントで属性のリストをご確認ください。
追加スコープ
ユーザーの詳細に対するアクセスを認証するために、認証時にスコープはアプリケーションによって使用されます。各スコープは要求と呼ばれる一連のユーザー属性を返します。
初期設定のスコープは Openid です。ユーザー名要求を取得する必要がある場合は、さらにスコープが必要です。次のリンクをアイデンティティ プロバイダーにコピー & ペーストします。
設定
詳細
リダイレクト URL
アカウント認証が成功した後に移動する場所です。
ログイン開始 URL
OpenID のプロバイダー経由 (Provider-initiated) のログインに使用される URL です。
次の設定はオプションで、自分の用途に合わせて選択できます。
設定
詳細
追加設定
[選択したアイデンティティ プロバイダーからデータを自動入力する] が選択されている場合は、アイデンティティ プロバイダーがこのオプションをサポートしていれば、承認、トークン、ユーザー情報のエンドポイントは自動で入力されます。
JIT プロビジョニング
[アプリケーションへのログイン時にユーザーを作成] が選択されている場合は、SSO 経由でログインするとユーザーが自動で作成されて更新されます。
OpenID Connect の動作
[ユーザー ログインを記憶] が選択されている場合は、ユーザーのログイン情報が記憶されるため自動でログインされます。
ログイン ページの設定
[ログイン ページに IdP を表示] が選択されている場合は、ログイン ページにアイデンティティ プロバイダーが表示されます。
[設定を保存] を選択します。
アプリケーションと OpenID Provider の両方を構成したら、SSO を使用する準備は完了です。
べスト プラクティス
OpenID Connect の認証リクエストは、限られた回数のみ有効です。アトラシアン アプリケーションを実行しているサーバーと OpenID Provider の各時刻が同期されていることをご確認ください。
アトラシアン アプリケーションのユーザーとグループがユーザー ディレクトリによって設定されている場合は、通常、OpenID Provider とアトラシアン アプリケーションの両方で同じ LDAP ディレクトリをユーザーのソースとして使用することをお勧めします。ユーザーは SSO によってログインする前に、ユーザー ディレクトリ内に存在している必要があります。
トラブルシューティング
OpenID Connect 認証の構成に失敗したり、OpenID Provider を使用してログインできないような場合、DELETE リクエスト (ユーザー ディレクトリで構成された管理者のユーザー名とパスワードを使用) を発行してログイン フォーム認証を復元できます。
curl -u admin_user:admin_password -X DELETE http://BASE_URL/rest/authconfig/1.0/sso
認証エラーが発生した場合、ユーザーには、うまくいかなかった点に関する基本的な詳細のみが表示されます。セキュリティ上の理由から、元となる問題に関する詳細は表示されません。アプリケーション ログで問題の原因を確認する必要があります。
OpenID Provider によってエラーが表示される場合があります。この場合は、アトラシアン サポートではなく OpenID Provider が提供しているサポートやツールをご利用ください。
OpenID Connect をプライマリ認証として使用していて、アプリケーションで CAPTCHA を有効にしている場合は、HTTP 基本認証を使用しているユーザー (REST リソース コール、Bitbucket における Git HTTPS の使用など) が誤ったパスワードを規定回数を超えて入力すると、ロックされる場合があります。このような場合、管理者はユーザー リスト画面でユーザーの CAPTCHA をリセットする必要があります。
エラー ページにスタック トレース情報を表示させるには、次のフラグを使用します。
-Datlassian.darkfeature.atlassian.authentication.include.stacktrace.in.error.messages=true