シングル サインオン(SSO)の設定

オートデスクのシングル サインオン(SSO)の実装は非常に柔軟性が高く、ID プロバイダ(IdP)サーバが Shotgun サーバとの双方向通信を直接実行できなくてもかまいません。サーバ間で送信される情報のフローは、クライアント アプリケーションを介して署名され、送信されます。通常、このアプリケーションに該当するのは Shotgun に接続されているブラウザです。

IdP 設定は最初に実行する必要があります。IdP から Shotgun に login_id を送信し、この ID をユーザの Shotgun ログイン名にマップする必要があります。これが、この 2 つのシステム間の主要なリンクになります。既存の Shotgun サイトを SSO に移行する場合は、IdP から送信されたログイン ID が Shotgun の既存のログイン名と一致することを確認してください。IdP から送信された login_id と Shotgun のログイン名を適切に対応付けることができない場合は、ユーザが重複する可能性があります。

既存サイトの移行中に、まず、Shotgun で使用されるログイン名を監査します。2 つのログイン セットを対応付けることができない場合、またはこの作業が複雑すぎる場合は、既存のユーザにこの問題の処理方法が提案されます。詳細は、「Shotgun 管理者」セクションを参照してください。

設定ガイドは、IdP 用と、Shotgun 管理者用の 2 つのセクションに分かれています。

IdP 管理者

Shotgun は SAML 2.0 を使用して SSO のサポートを実装しています。SAML 2.0 は数年間使用されてきた標準であり、オートデスクが認定しているほとんどの IdP プロバイダでサポートされています。

IdP システムごとに管理メカニズムは異なります。ADFS および Okta における統合の例を用意していますが、ご使用の環境ではさまざまな面で異なる可能性があります。

SAML のアトリビュート

IdP 設定で、Shotgun に渡すアトリビュートを追加する必要があります。

SAML2 の応答ペイロードに、次のアトリビュートが含まれている必要があります。名前の形式が「Unspecified」または「Basic」のアトリビュートは、次のように定義できます。

名前 タイプ 状態
login_id 文字列 必須 ユーザが Shotgun で使用するログイン ID です。
Shotgun 内で一意であり、かつセッション間で一貫性が保たれている必要があります。
firstname 文字列 必須 ユーザの名です。
lastname 文字列 必須 ユーザの姓です。
email 文字列 必須 ユーザの電子メール アドレスです。
access 文字列 ADFS: 必須
その他の IdP: Shotgun バージョン 8.11.0.4033 以降ではオプションです。旧バージョンの場合は必須です。
true または false の値のみを指定できます。
true の場合、ユーザは Shotgun にアクセスできます。
この属性は ADFS でのみ必須です。存在しない場合、Shotgun へのアクセスは暗黙的に有効です。
groups 文字列 オプション 存在しない場合、または空の場合は、ユーザの権限グループは現在の値から変更されません。新しいユーザの場合は、[サイト基本設定](Site Preferences)で定義されている既定のユーザ権限グループが使用されます。
存在する場合は、Shotgun で定義された権限グループの 1 つの名前に対応する必要があります。 名前が一致しない場合、ユーザには既定のユーザ権限グループが付与されます。
例:「Admin」

注記

  • ADFS の設定では、ユーザ名とパスワードのみを検証し、Shotgun に要求を送信するため、access 属性が必要です。他の IdP では、アクセス権が付与されている場合にのみユーザが Shotgun にアクセスできます。ユーザ名とパスワードは適切ですが、十分ではありません。
  • groups アトリビュートはオプションです。存在しない場合(または無効な場合)、ユーザの権限グループは変更されません。このアトリビュートの入力操作が複雑になった場合は、初期設定を容易にするために、少なくとも最初のうちはこのアトリビュートの入力を省略することを強くお勧めします。このアトリビュートは、Shotgun 管理者が管理できます。
  • オートデスクでは、SAML ペイロード内で提供される NameID を使用しません。代わりに、クライアントから提供される login_id アトリビュートを利用します。

login_idaccessgroups を決定する場合に使用できる方法がいくつかあります。

login_id には一意かつ一定の値を指定する必要があります。電子メール アドレスまたは名前を使用するのが適切なように見えますが、これらが変更された場合(姓が変わった場合など)に必要となる作業内容を把握することが重要です。

access および groups について、Windows 環境で一般的に行われている方法の 1 つは、Active Directory セキュリティ グループを使用することです。指定したグループ内にユーザが含まれているかどうかが、アトリビュート値に反映されます。

IdP を初めて設定する場合は、groups アトリビュートを省略することを強くお勧めします。このアトリビュートを一元管理するのがよいのか、それとも Shotgun 管理者に管理を任せるのかは、後で決定できます。

SAML エンドポイント

Shotgun サーバにより、SAML 固有のエンドポイントが 2 つ定義されます。これらのエンドポイントがアクティブになるのは、認証方式として SAML が設定されている場合、または SAML 設定をテストしている場合のみです。

Shotgun の IdP を設定している場合は、次のエンドポイントが必要になります。 次のエンドポイントは、サイトで SAML が有効になると機能し、有効でない場合はエラーが発生します。メタデータ ファイルを使用する代わりに、IdP を手動で設定することをお勧めします。

URL
https://YOUR_SITE_URL/saml/metadata Shotgun が他のエンドポイントを公開する SP エンドポイント。
https://YOUR_SITE_URL/saml/saml_login_response IdP が Shotgun に署名または暗号化された要求を送信する必要があるエンドポイント。

ID プロバイダ(IdP)設定

次の手順は ID プロバイダの設定です。利用する可能性のある各プロバイダ向けのガイドをすべて提供することはできませんが、ここでは代表的な 2 つのプロバイダにおける操作手順を簡単に説明します。

次の手順

これで IdP が設定されたので、Shotgun 管理者は Shotgun に必要な情報を設定し、テストできるようになりました。

Shotgun 管理者には、次の情報が必要です。

  • SAML 2.0 エンドポイント(HTTPS)の URL、
  • ペイロードに署名するために IdP で使用される 公開証明書、および
  • ID プロバイダ発行者の文字列

これらに使用される実際の名前は、使用している IdP によって異なることがあります。

トラブルシューティングや問題の修正に役立つように、Shotgun の設定中に使用できるようにするのが理想的です。

Shotgun 管理者

Shotgun を設定する場合は、IdP が設定されるまで待機する必要があります。IdP が設定されると、IdP 管理者から Shotgun で必要な情報が提供されます。

Shotgun を設定する

管理者としてログインしたら、右上にある設定メニューを使用して[サイト基本設定](Site Preferences)ページに移動する必要があります。

Shotgun のユーザ メニュー
Shotgun のユーザ メニュー

[認証](Authentication)ペインに進んで、このペインを開きます。

Shotgun の[認証](Authentication)ペイン
Shotgun の[認証](Authentication)ペイン

警告: テストする前に、SAML 認証を有効にしないでください。

[SAML 認証](SAML Authentication)ラジオ ボタンおよびセクションが表示されない場合は、Shotgun サポートに問い合わせて、有効にしてください。

これで、[SAML 認証](SAML Authentication)セクションを開いて、情報を入力できるようになりました。

Shotgun の[認証](Authentication)ペイン > 設定
Shotgun の[認証](Authentication)ペイン > 設定

  • SAML 2.0 エンドポイント(HTTPS)(SAML 2.0 Endpoint (HTTPS)): 認証のために Shotgun からリダイレクトされる SSO バックエンドの URL です。
  • [公開証明書](Public Certificate): IdP と通信するために必要な証明書です。
  • [ID プロバイダ発行者](Identity Provider Issuer): IdP によって定義された、サービスの エンティティ ID です。
  • [SSO 設定(YAML 形式)](SSO Configuration (YAML Format)): 追加の環境設定です。次のセクションを参照してください。

追加の環境設定を使用する必要がある場合

[SSO 設定](SSO Configuration)パネルで、YAML 形式に従う追加の設定を行うことができます。これらのオプションは、特別な場合にのみ使用されます。

次に、使用できるトークンおよびサンプルの使用に関するリストを示します。不明なトークンは単に無視されます。不適切な形式または正しくない値を指定すると、設定全体に影響が及ぶことがあります。注意してください。

暗号化

既定では、SAML ペイロードの署名には IdP 証明書のみが使用されます。SAML ペイロードを暗号化することもできます。そのためには、新しい証明書を生成して、プライベート キーを Shotgun に、対応するパブリック キーを IdP 設定に追加する必要があります。パブリック キーを IdP に追加する実際の手順は、ベンダーによって異なります。IdP のドキュメントを参照してください。Shotgun でプライベート キーを設定するには、次の YAML 構造を使用します(KEY をプライベート キーに置き換えます)。

service_provider:
  private_key: "KEY" # the key used for encryption
security:
embed_sign: true # embed the signature in the SAML header authn_requests_signed: true # authorization requests are encrypted logout_requests_signed: true # logout requests are encrypted logout_responses_signed: true # logout responses are encrypted

シングル ログ アウト(SLO)

既定では、SLO は利用されません。SLO が必要な場合は、次のトークンを使用して設定できます。

identity_provider:
  slo_target_url: https://single.logout.url

更新時に一部のフィールドを無視する

前述のように、Shotgun は IdP をユーザ情報の信頼できるソースと見なします。Shotgun 内のすべての情報は、ログインしたとき、および要求が更新されたときに、IdP から更新されます。

特定の状況下では、管理者が Shotgun で設定した情報を保護して、IdP の情報による更新を禁止しなければならないことがあります。

許可されているトークンのリストは、名、姓、電子メール、およびグループです。

ignore_updates:
  - email

自動プロビジョニング

既定値: true

自動プロビジョニングが有効な場合は、Shotgun へのアクセス権が付与されているにもかかわらず、データベース内に存在しないすべてのユーザが、IdP から提供された情報を使用して自動的に作成されます。グループが提供されない場合、ユーザには、[サイト基本設定](Site Preferences)の[詳細設定](Advanced)で指定されている Shotgun の[既定のユーザ権限グループ](Default User Permission Group)の値が割り当てられます。

自動的なユーザ作成は、通常はお勧めしません。新しいユーザには、関連プロジェクトへのアクセス権が付与されません。Shotgun 管理者による修正作業が必要になります。管理者が適切な権限および正しいログイン名を持つユーザをあらかじめ作成しておく方が、通常は効率的です。この方法に従うと、ユーザの操作が簡単になります。

autoprovision: false

SSO をアクティブにするときにメール送信をスキップする

既定値: false

SSO をアクティブまたは非アクティブにすると、すべてのアクティブなユーザに電子メールが送信されます。この電子メールは、SSO の状態に関する情報、および実行する必要があるアクションをアクティブなユーザに通知します。

ステージング サーバで初期テストを実行する場合、またはプロダクション サーバでテストを実行する場合は、アクティベーション電子メールを無効にすること強くお勧めします。アクティベーション電子メールを無効にすると、ユーザの混乱や不要なサポートの呼び出しを回避することができます。

skip_activation_email: true

セカンダリ ブラウザ ウィンドウを使用してユーザ資格情報を更新する

既定値: false

警告: このトークンは、v8.16.0.5225 以前のバージョンの Shotgun でのみ使用されます。このトークンは、そのバージョン以降廃止されました

Web ブラウザで実行される Shotgun は iframe を使用して、IdP サーバに対するユーザの要求を更新します。IdP システムによっては、クライアントの認証に iframe を使用できないことがあります。たとえば、IdP 管理者が明示的に変更しない限り、Okta の既定の環境設定では iframe の使用が拒否されます。Okta の場合、これは Shotgun だけでなく、他のすべてのアプリケーションに影響するシステム全体の設定です。IdP に同様な制限または制限事項が適用される可能性があります。

この制約を回避するために、Shotgun では、画面の左下に別のブラウザ ウィンドウが開きます。ユーザはこのウィンドウを閉じないよう求められますiframe が許可されていない場合は、この設定を使用して Shotgun を設定する必要があります。

saml_claims_renew_iframe_embedding_disabled: true

環境設定をテストする

必要な値を入力したら設定を保存しますが、まだ認証モードを [SAML 認証](SAML Authentication)に設定しないでください。 まず[テスト](Test)リンクを使用して、環境設定を検証します。通常は、Shotgun に対してポップアップ ウィンドウのオープンを許可する必要があります。

テスト中は、IdP 管理者が立ち会うことを強くお勧めします。こうしておくと、トラブルシューティングのときに役立ちます。

失敗

Shotgun テストに失敗しました(Shotgun Test Failed)
Shotgun テストに失敗しました(Shotgun Test Failed)

このメッセージが表示された場合は、問題の特定に役立つ指示、ポップアップ、または出力が表示されます。自分自身または IdP 管理者がこの問題を特定できない場合は、Shotgun サポート チケットを開いて、オートデスクの担当者がサーバ ログを参照できるようにしなければならないことがあります。

成功

Shotgun テストに成功しました(Shotgun Test Success)
Shotgun テストに成功しました(Shotgun Test Success)

テストに成功した場合は、次の手順に進むことができます。

次の手順

環境設定が機能するようになったので、処理を進めることができます。

ステージング サーバでの最初のテスト

この手順の必要性については、以前にも何回か説明しましたが、強調しておく必要があります。この手順に従うことで、すべてのツール、スクリプト、およびサードパーティ アプリケーションが Shotgun と正しく通信するようになります。プロダクション パイプラインのすべての部分が予測どおり機能していることを確認する必要があります。プロダクション サイトで SSO を有効にした後に重要になるのは、安定性です。

オートデスクでは、プロダクション サイトで SSO を有効にする前に、ステージング内のすべてのテストが成功したことを、お客様から明確かつ正確に報告していただく必要があります。こうすることにより、Support チームはお客様のサイトにおける SSO 関連の問題を監視し続けることが可能になります。

SSO を有効にする

ユーザの混乱を回避するには、ステージング サイトで電子メール通知を無効にする必要があります。通常は、SSO の有効化と無効化を何回か切り替えます。

テストの実行プランを立てる場合は、プロダクション サイトで電子メール通知を一時的に無効にしなければならないこともあります。SSO を有効にすると、ユーザが設定を変更した場合を除き、サイトで継続されているすべてのセッションが終了します。この処理は、Shotgun を操作しているユーザがほとんどいないオフピーク中に実行する必要があります

SSO を有効にした後に、すべてのアクティブなユーザに電子メールが送信されますが、この操作の前に電子メール通知を送信するよう選択することもできます。この電子メール内で、この処理を行う理由、この処理を行う時期、および問題が発生した場合の問い合わせ先についてユーザに説明することができます。

Shotgun のログイン フローでは、可能な限り初回ログイン時に問題の解決を試みます。ユーザは、電子メールに基づいて既存のアカウントをリンクするか、または古いユーザ名およびパスワードを使用して認証することができます。この方法で初回の接続を無効にすることができますが、手順が複雑になり、エラーが発生しやすくなります。誤って重複するユーザが作成されて、サポートが呼び出されたり、これらの重複ユーザの料金が請求されたりする可能性があります。

目標は、SSO への移行をユーザに対して透過的に行うことです。そのために、シームレスな移行を実現するための手順をいくつか実行できます。

既存ユーザの簡単な移行

認証プロセスの中心となるのは、IdP から提供された login_id と Shotgun の既存の login を照合することです。既存の Shotgun ユーザ ベースの監査を実行して、login 値を割り当てるために使用される一定のルールがあることを確認すると共に、一致する login_id を送信するよう IdP に依頼する必要があります。

一致が見つかった場合、ユーザは Shotgun サイトに直ちに接続します。ユーザ側で追加の手順や入力を行う必要はありません。この状態が理想的です。

Shotgun login 名に一貫性がない場合や、IdP から正しい login_id が送信されることを簡単に確認できない場合は、Shotgun 管理者が解決手順を実行することができます。

最初の解決方法 :
IdP login_id に合わせて、ユーザの Shotgun login を単に変更します。ユーザに新しいユーザ名を知らせる必要があります。SSO がオフの場合、ユーザは新しいユーザ名と古いパスワードを使用して Shotgun に接続する必要があります

2 番目の解決方法:
IdP アカウントと Shotgun アカウントをリンクします。

  1. 管理者アカウントを使用して、Shotgun サイトに接続します。
  2. [ユーザ](People)ページに移動します。
     
    Shotgun のユーザ メニュー

  3. [シングル サインオン ログイン](Single Sign-On Login)列が表示されていることを確認します。
     
    修正前の Shotgun の[ユーザ](People)

  4. 問題のあるユーザのフィールドを編集し、IdP から送信された login_id を入力します。
     
    修正後の Shotgun の[ユーザ](People)

  5. アカウントがリンクされて、問題のあるユーザが適切なユーザとしてログインできるようになりました。

Shotgun のログイン動作が何回か不規則になった場合は、次の手順を実行しなければならない可能性があります。

新しいユーザを招待および作成する

SSO が有効な場合は、2 つの方法で新しいユーザを作成することができます。いずれの場合も、新しいユーザが Shotgun でアクションを実行する前にこれらのユーザにアクセスできるよう、IdP に最新情報を伝えておく必要があります。

  1. 管理者アカウントを使用して、Shotgun サイトに接続します。
  2. [ユーザ](People)ページに移動します。
     
    Shotgun のユーザの追加

  3. 状況に応じて、次の 2 つのオプションが用意されています。
  • 最初のオプションでは、新しいユーザを招待します。これは既定のオプションです。[+ ユーザ](+ Person)ボタンをクリックすると、[招待](Invite)ダイアログ ボックスが表示されます。
     
    Shotgun のユーザの招待
    このダイアログ ボックスからユーザに招待電子メールが送信されます。Shotgun で行われる変更はありません。IdP からユーザに Shotgun へのアクセス権が既に付与されている必要があります。
     
    自動プロビジョニングfalse に設定されている場合は、管理者がユーザを作成するまで、ユーザは Shotgun を使用できません。
     
    自動プロビジョニングがまだ設定されていない場合は、最初のログイン時に、以前の既存アカウントとリンクするのか、それとも新しいユーザを作成するのかを確認するダイアログ ボックスが表示されます。
     
    以前の既存アカウントとリンクするように選択した場合は、表示されるページで、Shotgun のユーザ名と、以前のアカウントの Shotgun パスワードを使用して認証する必要があります。新しいユーザを作成するように選択した場合は、プロジェクトへのアクセス権がまだ付与されていない新しいユーザが作成されます。
     
    注: 新しいユーザを追加するために招待状を送信するのは、最適な方法でない可能性があります。
     
  • 新しいユーザは、2 番目のオプションで作成されます。[今すぐ新しいユーザを作成](Create a new Person now)をクリックすると、従来のユーザ作成ダイアログ ボックスが表示されます。
     
    Shotgun のユーザ作成
    このダイアログ ボックスで、指定したアクセス権を持つ新しいユーザを Shotgun で効率的に作成し、指定したアドレスに招待電子メールを送信することもできます。入力した情報に注意してください。ユーザが最初にログインしたときに IdP からの要求によって情報が更新される可能性があります([更新で一部のフィールドを無視](Ignore some fields in update)オプションで禁止されている場合は除きます)。
     
    [その他のフィールド](more fields)をクリックし、[シングル サインオン ログイン](Single Sign-On Login)フィールドを追加してダイアログ ボックスを変更するのが、便利な場合があります。この操作を行うと、追加情報を入力して、新しいユーザによるシームレスな接続を確立できるようになります。
     
    注: ユーザを追加する場合は、この方法をお勧めします。

SSO が有効な場合の Shotgun のログイン フロー

SSO が有効な場合は、ユーザが接続する前に、Shotgun で追加の確認を行う必要があります。これは、通常は最初の接続時に行います。次に、ログイン フローのベースとなるロジックを示します。

ログイン フロー
ログイン フロー

発生する可能性のある重要な状況は、アカウントのリンクユーザの作成です。いずれの状況でも、ユーザは一連の手順を実行する必要がありますが、これらによって操作が複雑になることがあります。

できる限りシームレスに操作するために、Shotgun 管理者がユーザを作成するか、アカウントをリンクする必要があります。このようにすると、管理者側で行う作業は増えますが、ユーザにとってはメリットとなります。詳細については、「既存ユーザの簡単な移行」を参照してください。

内部ツールおよびサードパーティ アプリケーションを使用して Shotgun サイトにアクセスする

ユーザ名/パスワードのペアを使用して Shotgun サーバとの接続を開始する内部ツールまたはスクリプトがある場合は、変更する必要があります。

使用できるオプションの一部を、次に示します。

  • Shotgun Toolkit に付属している認証モジュールを使用します(PySide/PyQt が必要)。
  • Shotgun Desktop を使用して認証を処理し、そこからセッション トークンを取得します。
  • IdP に独自の SSO ログイン フローを実装します。オートデスクから、必要となる大まかな手順、および追加の技術情報を提供することができます。

サードパーティ アプリケーションを使用する場合に、Shotgun で SSO がサポートされていなければ、開発者に個別に問い合わせる必要があります。

まとめ

既存ユーザの場合は、login_id と Shotgun の login が一致するのが理想的です。ただし、この方法が常に使用できるとは限りません。

IdP から送信される login_id の選択方法

login_id には、時間が経過しても一定であり、かつ一意であるという制約があることに注意してください。

一部のクライアントは、login_id として、ユーザの電子メール アドレスまたは firstname.lastname を使用することにしました。ユーザ名が変更された場合は、このことが問題なる可能性があります。ただし、名前の変更が頻繁に起こる可能性は低いため、この方法は実行可能な選択肢となり、Shotgun 管理者がときどき操作するだけで済みます。

他のクライアントは、従業員の ID を使用しました。この方法は、従業員の名前が変更されても対処することができますが、Shotgun 管理者がこの作業を行う際は注意が必要となります。ID がマップされる従業員が明らかでないため、入力エラーが発生する可能性があります。

追加情報

設定プロセス中に重大な問題が発生する場合は、サポートチームに問い合わせてください。

最初のオンボーディング ミーティングが終了したら、初期設定段階でのサポートやトラブルシューティングについてのサポートも受けられるようになります。

このガイドに関する推奨事項やコメントもお寄せください。ドキュメントに記載されていない IdP を使用している場合は、お客様が準拠している設定手順やスクリーンショットを追加していただけると、このガイドの改善に役立ちます。

詳細については、「Shotgun の SSO: 管理者ガイド」および「シングル サインオンのトラブルシューティング」を参照してください。

この記事は役に立ちましたか?
1人中1人がこの記事が役に立ったと言っています
フォローする